renalware-core 2.0.0.pre.rc6 → 2.0.0.pre.rc7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -1
  3. data/app/controllers/renalware/events/investigations_controller.rb +10 -0
  4. data/app/controllers/renalware/transplants/donor_dashboards_controller.rb +1 -7
  5. data/app/controllers/renalware/transplants/recipient_dashboards_controller.rb +1 -21
  6. data/app/models/renalware/events/investigation.rb +31 -0
  7. data/app/models/renalware/feeds/hl7_message.rb +29 -34
  8. data/app/models/renalware/feeds/message_parser.rb +2 -1
  9. data/app/models/renalware/pathology/create_observation_requests.rb +25 -0
  10. data/app/models/renalware/pathology/message_listener.rb +7 -5
  11. data/app/models/renalware/pathology/{message_param_parser.rb → observation_requests_attributes_builder.rb} +31 -27
  12. data/app/models/renalware/patients/practice_search_query.rb +1 -1
  13. data/app/policies/renalware/events/investigation_policy.rb +8 -0
  14. data/app/presenters/renalware/pathology/observation_presenter.rb +1 -1
  15. data/app/presenters/renalware/transplants/consent_presenter.rb +1 -1
  16. data/app/presenters/renalware/transplants/donor_dashboard_presenter.rb +35 -0
  17. data/app/presenters/renalware/transplants/mdm_presenter.rb +2 -0
  18. data/app/presenters/renalware/transplants/patient_presenter.rb +2 -0
  19. data/app/presenters/renalware/transplants/recipient_dashboard_presenter.rb +39 -0
  20. data/app/presenters/renalware/transplants/wait_list_registration_presenter.rb +2 -0
  21. data/app/views/renalware/api/ukrdc/patients/_documents.xml.builder +12 -9
  22. data/app/views/renalware/api/ukrdc/patients/_sending_facility.xml.builder +4 -4
  23. data/app/views/renalware/api/ukrdc/patients/lab_orders/_lab_order.xml.builder +1 -1
  24. data/app/views/renalware/api/ukrdc/patients/lab_orders/_result_item.xml.builder +1 -1
  25. data/app/views/renalware/api/ukrdc/patients/show.xml.builder +1 -5
  26. data/app/views/renalware/events/events/_event.html.slim +7 -1
  27. data/app/views/renalware/events/events/_table.html.slim +2 -1
  28. data/app/views/renalware/events/events/cell/_investigation.html.slim +9 -0
  29. data/app/views/renalware/events/events/inputs/_investigation.html.slim +4 -0
  30. data/app/views/renalware/events/events/toggled_cell/_investigation.html.slim +11 -0
  31. data/app/views/renalware/events/investigations/_list.html.slim +12 -0
  32. data/app/views/renalware/events/investigations/edit.html.slim +13 -0
  33. data/app/views/renalware/transplants/donor_dashboards/show.html.slim +27 -20
  34. data/app/views/renalware/transplants/recipient_dashboards/_page_actions.html.slim +4 -0
  35. data/app/views/renalware/transplants/recipient_dashboards/show.html.slim +22 -17
  36. data/config/locales/renalware/events/investigation.en.yml +58 -0
  37. data/config/locales/renalware/transplants/donor_dashboard.en.yml +1 -0
  38. data/config/locales/renalware/transplants/recipient_dashboards.en.yml +1 -0
  39. data/config/routes.rb +5 -0
  40. data/db/migrate/20180119121243_create_trigger_to_preprocess_hl7_msg.rb +5 -3
  41. data/db/migrate/20180125201356_make_obs_set_trigger_change_updated_at.rb +191 -0
  42. data/db/migrate/20180126142314_add_uuid_to_letters.rb +6 -0
  43. data/db/seeds/default/events/event_types.csv +1 -0
  44. data/lib/renalware/configuration.rb +1 -0
  45. data/lib/renalware/version.rb +1 -1
  46. data/lib/test_support/text_editor_helpers.rb +6 -0
  47. data/spec/factories/events/events.rb +24 -1
  48. data/spec/factories/events/events_types.rb +17 -2
  49. data/spec/support/database_functions_spec_helper.rb +6 -0
  50. metadata +18 -4
  51. data/app/models/renalware/pathology/create_observations.rb +0 -22
data/config/routes.rb CHANGED
@@ -308,6 +308,11 @@ Renalware::Engine.routes.draw do
308
308
  controller: "events/swabs",
309
309
  defaults: { slug: :swabs }
310
310
 
311
+ resources :investigations,
312
+ only: [:new, :create, :edit, :update],
313
+ controller: "events/investigations",
314
+ defaults: { slug: :investigations }
315
+
311
316
  # Here we could enable new event by any other slug
312
317
  # eg patient_new_specific_event(slug: "transplant_biopsies")
313
318
  # get "events/:slug/new",
@@ -1,6 +1,8 @@
1
1
  class CreateTriggerToPreprocessHL7Msg < ActiveRecord::Migration[5.1]
2
2
  def up
3
- sql = <<-SQL
3
+ # Note that we need to use a quoted heredoc ('SQL') here in order to preserve our
4
+ # SQL escaping e.g. E'\\S\\' which would otherwise be interpreted by Ruby as E'\S\'
5
+ sql = <<-'SQL'
4
6
  /* Create a function for the trigger to call */
5
7
  CREATE FUNCTION preprocess_hl7_message() RETURNS trigger AS
6
8
  $body$
@@ -17,11 +19,11 @@ class CreateTriggerToPreprocessHL7Msg < ActiveRecord::Migration[5.1]
17
19
  To get around this we need to convert instances of \S\ with another escape sequence eg «
18
20
  and manually map this back to a ^ in the job handler ruby code.
19
21
 
20
- So here, if this delayed_job is destinated to be picked up by a Feed job handler
22
+ So here, if this delayed_job is destined to be picked up by a Feed job handler
21
23
  make sure we convert the Mirth escape sequence \S\ to \\S\\
22
24
  */
23
25
  IF position('Feed' in NEW.handler) > 0 THEN
24
- NEW.handler = replace(NEW.handler, '\S\', '\\S\\');
26
+ NEW.handler = replace(NEW.handler, E'\\S\\', E'\\\\S\\\\');
25
27
  END IF;
26
28
 
27
29
  RETURN NEW;
@@ -0,0 +1,191 @@
1
+ class MakeObsSetTriggerChangeUpdatedAt < ActiveRecord::Migration[5.1]
2
+ def up
3
+ sql = <<-SQL
4
+ CREATE OR REPLACE FUNCTION update_current_observation_set_from_trigger() RETURNS TRIGGER AS $body$
5
+ -- TC 14/12/2017
6
+ -- This function is called by a trigger when a row is inserted or updated in
7
+ -- pathology_observations. Its purpose is to keep current_observation_sets up to date
8
+ -- with the latest observations for any patient.
9
+ -- The current_observation_sets table maintains a jsonb hash into which we insert or replace
10
+ -- the observation, keyed by OBX code.
11
+ -- e.g. .. {"HGB": { "result": 123.1, "observed_at": '2017-12-12-01:01:01'}, ..
12
+ DECLARE
13
+ a_patient_id bigint;
14
+ a_code text;
15
+ current_observed_at timestamp;
16
+ current_result text;
17
+ new_observed_at timestamp;
18
+ BEGIN
19
+ RAISE NOTICE 'TRIGGER called on %',TG_TABLE_NAME ;
20
+
21
+ /*
22
+ If inserting or updating, we _could_ assume the last observation to be inserted is
23
+ the most 'recent' one (with the latest observed_at date).
24
+ However the order of incoming messages is not guaranteed, so we have two options:
25
+ 1. Refresh the entire current_observation_set for the patient
26
+ 2. Check the current observed_at date in the jsonb and only update if we have a more
27
+ recent one
28
+ We have gone for 2.
29
+ */
30
+
31
+ IF (TG_OP = 'INSERT' OR TG_OP = 'UPDATE') THEN
32
+
33
+ -- Note we could re-generate the entire current pathology for the patient using
34
+ -- select refresh_current_observation_set(a_patient_id);
35
+ -- which is safer but uses more resources, so avoiding this for now.
36
+
37
+ -- Find and store patient_id into local variable
38
+ select request.patient_id into a_patient_id
39
+ from pathology_observation_requests request
40
+ where request.id = NEW.request_id;
41
+
42
+ -- Find and store the obx code into local variable
43
+ select description.code into a_code
44
+ from pathology_observation_descriptions description
45
+ where description.id = NEW.description_id;
46
+
47
+ -- Important! Create the observation_set if it doesn't exist yet
48
+ -- ignore the error if the row already exists
49
+ insert into pathology_current_observation_sets (patient_id)
50
+ values (a_patient_id)
51
+ ON CONFLICT DO NOTHING;
52
+
53
+ -- We are going to compare the current and new observed_at dates
54
+ -- so need to cast them to a timestamp
55
+ select cast(New.observed_at as timestamp) into new_observed_at;
56
+
57
+ -- Get the most recent date and value for this observation
58
+ -- and store to variables.
59
+ select
60
+ cast(values -> a_code ->> 'observed_at' as timestamp),
61
+ values -> a_code ->> 'result'
62
+ into current_observed_at, current_result from
63
+ pathology_current_observation_sets
64
+ where patient_id = a_patient_id;
65
+
66
+ -- Output some info to helps us debug. This can be removed later.
67
+ RAISE NOTICE ' Request id % Patient id % Code %', NEW.request_id, a_patient_id, a_code;
68
+ RAISE NOTICE ' Last %: % at %', a_code, current_result, current_observed_at;
69
+ RAISE NOTICE ' New %: % at %', a_code, NEW.result, new_observed_at;
70
+
71
+ IF current_observed_at IS NULL OR new_observed_at >= current_observed_at THEN
72
+ -- The new pathology_observation row contain a more recent result that the old one.
73
+ -- (note there may not be an old one if the patient has neve had this obs before).
74
+
75
+ RAISE NOTICE ' Updating pathology_current_observation_sets..';
76
+
77
+ -- Update the values jsonb column with the new hash for this code, e.g.
78
+ -- .. {"HGB": { "result": 123.1, "observed_at": '2017-12-12-01:01:01'}, ..
79
+ -- Note the `set values` below actually reads in the jsonb, updates it,
80
+ -- and wites the whole thing back.
81
+ update pathology_current_observation_sets
82
+ set updated_at = CURRENT_TIMESTAMP,
83
+ values = jsonb_set(
84
+ values,
85
+ ('{'||a_code||'}')::text[], -- defined in the fn path::text[]
86
+ jsonb_build_object('result', NEW.result, 'observed_at', new_observed_at),
87
+ true)
88
+ where patient_id = a_patient_id;
89
+ END IF;
90
+ END IF;
91
+ RETURN NULL ;
92
+ END $body$ LANGUAGE plpgsql VOLATILE COST 100;
93
+ -- End function
94
+ SQL
95
+ ActiveRecord::Base.connection.execute(sql)
96
+ end
97
+
98
+ def down
99
+ sql = <<-SQL
100
+ CREATE OR REPLACE FUNCTION update_current_observation_set_from_trigger() RETURNS TRIGGER AS $body$
101
+ -- TC 14/12/2017
102
+ -- This function is called by a trigger when a row is inserted or updated in
103
+ -- pathology_observations. Its purpose is to keep current_observation_sets up to date
104
+ -- with the latest observations for any patient.
105
+ -- The current_observation_sets table maintains a jsonb hash into which we insert or replace
106
+ -- the observation, keyed by OBX code.
107
+ -- e.g. .. {"HGB": { "result": 123.1, "observed_at": '2017-12-12-01:01:01'}, ..
108
+ DECLARE
109
+ a_patient_id bigint;
110
+ a_code text;
111
+ current_observed_at timestamp;
112
+ current_result text;
113
+ new_observed_at timestamp;
114
+ BEGIN
115
+ RAISE NOTICE 'TRIGGER called on %',TG_TABLE_NAME ;
116
+
117
+ /*
118
+ If inserting or updating, we _could_ assume the last observation to be inserted is
119
+ the most 'recent' one (with the latest observed_at date).
120
+ However the order of incoming messages is not guaranteed, so we have two options:
121
+ 1. Refresh the entire current_observation_set for the patient
122
+ 2. Check the current observed_at date in the jsonb and only update if we have a more
123
+ recent one
124
+ We have gone for 2.
125
+ */
126
+
127
+ IF (TG_OP = 'INSERT' OR TG_OP = 'UPDATE') THEN
128
+
129
+ -- Note we could re-generate the entire current pathology for the patient using
130
+ -- select refresh_current_observation_set(a_patient_id);
131
+ -- which is safer but uses more resources, so avoiding this for now.
132
+
133
+ -- Find and store patient_id into local variable
134
+ select request.patient_id into a_patient_id
135
+ from pathology_observation_requests request
136
+ where request.id = NEW.request_id;
137
+
138
+ -- Find and store the obx code into local variable
139
+ select description.code into a_code
140
+ from pathology_observation_descriptions description
141
+ where description.id = NEW.description_id;
142
+
143
+ -- Important! Create the observation_set if it doesn exist yet
144
+ -- ignore the error id the row already exists
145
+ insert into pathology_current_observation_sets (patient_id)
146
+ values (a_patient_id)
147
+ ON CONFLICT DO NOTHING;
148
+
149
+ -- We are going to compare the current and new observed_at dates
150
+ -- so need to cast them to a timestamp
151
+ select cast(New.observed_at as timestamp) into new_observed_at;
152
+
153
+ -- Get the most recent date and value for this observation
154
+ -- and store to variables.
155
+ select
156
+ cast(values -> a_code ->> 'observed_at' as timestamp),
157
+ values -> a_code ->> 'result'
158
+ into current_observed_at, current_result from
159
+ pathology_current_observation_sets
160
+ where patient_id = a_patient_id;
161
+
162
+ -- Output some info to helps us debug. This can be removed later.
163
+ RAISE NOTICE ' Request id % Patient id % Code %', NEW.request_id, a_patient_id, a_code;
164
+ RAISE NOTICE ' Last %: % at %', a_code, current_result, current_observed_at;
165
+ RAISE NOTICE ' New %: % at %', a_code, NEW.result, new_observed_at;
166
+
167
+ IF current_observed_at IS NULL OR new_observed_at >= current_observed_at THEN
168
+ -- The new pathology_observation row contain a more recent result that the old one.
169
+ -- (note there may not be an old one if the patient has neve had this obs before).
170
+
171
+ RAISE NOTICE ' Updating pathology_current_observation_sets..';
172
+
173
+ -- Update the values jsonb column with the new hash for this code, e.g.
174
+ -- .. {"HGB": { "result": 123.1, "observed_at": '2017-12-12-01:01:01'}, ..
175
+ -- Note the `set values` below actually reads in the jsonb, updates it,
176
+ -- and wites the whole thing back.
177
+ update pathology_current_observation_sets
178
+ set values = jsonb_set(
179
+ values,
180
+ ('{'||a_code||'}')::text[], -- defined in the fn path::text[]
181
+ jsonb_build_object('result', NEW.result, 'observed_at', new_observed_at),
182
+ true)
183
+ where patient_id = a_patient_id;
184
+ END IF;
185
+ END IF;
186
+ RETURN NULL ;
187
+ END $body$ LANGUAGE plpgsql VOLATILE COST 100;
188
+ SQL
189
+ ActiveRecord::Base.connection.execute(sql)
190
+ end
191
+ end
@@ -0,0 +1,6 @@
1
+ class AddUuidToLetters < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :letter_letters, :uuid, :uuid, default: "uuid_generate_v4()", null: false
4
+ add_index :letter_letters, :uuid, using: :btree
5
+ end
6
+ end
@@ -4,3 +4,4 @@
4
4
  "Swab","Renalware::Events::Swab","swabs"
5
5
  "Plasma Exchange",,
6
6
  "PD Line Change",,"pd_line_changes"
7
+ "Investigation","Renalware::Events::Investigation","investigations"
@@ -47,6 +47,7 @@ module Renalware
47
47
  config_accessor(:fallback_email_address_for_test_messages) do
48
48
  ENV["FALLBACK_EMAIL_ADDRESS_FOR_TEST_MESSAGES"]
49
49
  end
50
+ config_accessor(:ukrdc_sending_facility_name) { "NOT_CONFIGURED" }
50
51
  end
51
52
 
52
53
  def self.config
@@ -1,3 +1,3 @@
1
1
  module Renalware
2
- VERSION = "2.0.0.pre.rc6".freeze
2
+ VERSION = "2.0.0.pre.rc7".freeze
3
3
  end
@@ -3,4 +3,10 @@ module TextEditorHelpers
3
3
  def fill_in_trix_editor(id, value)
4
4
  find(:xpath, "//*[@id='#{id}']", visible: false).set(value)
5
5
  end
6
+
7
+ # A simplified version of the helper, requires JavaScript, and will end up
8
+ # having <div>value</div> in the trix-saved content, but that is normal
9
+ def fill_trix_editor(with:)
10
+ find("trix-editor").click.set(with)
11
+ end
6
12
  end
@@ -2,7 +2,7 @@ FactoryBot.define do
2
2
  factory :event, class: "Renalware::Events::Event" do
3
3
  accountable
4
4
  patient
5
- event_type factory: :events_type
5
+ event_type factory: :access_clinic_event_type
6
6
  date_time { Time.zone.now }
7
7
  description "Needs blood sample taken."
8
8
  notes "Would like son to accompany them on clinic visit."
@@ -20,5 +20,28 @@ FactoryBot.define do
20
20
  }
21
21
  }
22
22
  end
23
+
24
+ factory :investigation, class: "Renalware::Events::Investigation" do
25
+ event_type factory: :investigation_event_type
26
+ document {
27
+ {
28
+ modality: "other",
29
+ type: Renalware::Events::Investigation::Document.type.values.first,
30
+ result: "result"
31
+ }
32
+ }
33
+
34
+ trait :transplant_recipient do
35
+ before :create do |investigation|
36
+ investigation.document.modality = "transplant_recipient"
37
+ end
38
+ end
39
+
40
+ trait :transplant_donor do
41
+ before :create do |investigation|
42
+ investigation.document.modality = "transplant_donor"
43
+ end
44
+ end
45
+ end
23
46
  end
24
47
  end
@@ -1,6 +1,10 @@
1
1
  FactoryBot.define do
2
- factory :events_type, class: "Renalware::Events::Type" do
3
- name "Access--Clinic"
2
+ factory :event_type, class: "Renalware::Events::Type" do
3
+ initialize_with { Renalware::Events::Type.find_or_create_by(name: name) }
4
+
5
+ factory :access_clinic_event_type do
6
+ name "Access--Clinic"
7
+ end
4
8
 
5
9
  factory :swab_event_type do
6
10
  name "Swab"
@@ -8,9 +12,20 @@ FactoryBot.define do
8
12
  slug "swabs"
9
13
  end
10
14
 
15
+ factory :biopsy_event_type do
16
+ name "Renal biopsy"
17
+ event_class_name "Renalware::Events::Biopsy"
18
+ end
19
+
11
20
  factory :pd_line_change_event_type do
12
21
  name "PD Line Change"
13
22
  slug "pd_line_changes"
14
23
  end
24
+
25
+ factory :investigation_event_type do
26
+ name "Investigation"
27
+ slug "investigations"
28
+ event_class_name "Renalware::Events::Investigation"
29
+ end
15
30
  end
16
31
  end
@@ -0,0 +1,6 @@
1
+ module DatabaseFunctionsSpecHelper
2
+ def toggle_all_triggers(option)
3
+ arg = (option == :off) ? "replica" : "DEFAULT"
4
+ ActiveRecord::Base.connection.execute("SET session_replication_role = #{arg};")
5
+ end
6
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: renalware-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre.rc6
4
+ version: 2.0.0.pre.rc7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Airslie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-25 00:00:00.000000000 Z
11
+ date: 2018-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -1037,6 +1037,7 @@ files:
1037
1037
  - app/controllers/renalware/directory/people_controller.rb
1038
1038
  - app/controllers/renalware/drugs/drugs_controller.rb
1039
1039
  - app/controllers/renalware/events/events_controller.rb
1040
+ - app/controllers/renalware/events/investigations_controller.rb
1040
1041
  - app/controllers/renalware/events/swabs_controller.rb
1041
1042
  - app/controllers/renalware/events/types_controller.rb
1042
1043
  - app/controllers/renalware/hd/base_controller.rb
@@ -1322,6 +1323,7 @@ files:
1322
1323
  - app/models/renalware/events/biopsy.rb
1323
1324
  - app/models/renalware/events/event.rb
1324
1325
  - app/models/renalware/events/event_query.rb
1326
+ - app/models/renalware/events/investigation.rb
1325
1327
  - app/models/renalware/events/line_change_event_query.rb
1326
1328
  - app/models/renalware/events/patient_listener.rb
1327
1329
  - app/models/renalware/events/simple.rb
@@ -1492,7 +1494,7 @@ files:
1492
1494
  - app/models/renalware/pathology/all_observation_codes.rb
1493
1495
  - app/models/renalware/pathology/clinic.rb
1494
1496
  - app/models/renalware/pathology/consultant.rb
1495
- - app/models/renalware/pathology/create_observations.rb
1497
+ - app/models/renalware/pathology/create_observation_requests.rb
1496
1498
  - app/models/renalware/pathology/current_key_observation_set.rb.dead
1497
1499
  - app/models/renalware/pathology/current_observation.rb
1498
1500
  - app/models/renalware/pathology/current_observation_set.rb
@@ -1501,7 +1503,6 @@ files:
1501
1503
  - app/models/renalware/pathology/lab.rb
1502
1504
  - app/models/renalware/pathology/measurement_unit.rb
1503
1505
  - app/models/renalware/pathology/message_listener.rb
1504
- - app/models/renalware/pathology/message_param_parser.rb
1505
1506
  - app/models/renalware/pathology/observation.rb
1506
1507
  - app/models/renalware/pathology/observation_date_range.rb
1507
1508
  - app/models/renalware/pathology/observation_description.rb
@@ -1509,6 +1510,7 @@ files:
1509
1510
  - app/models/renalware/pathology/observation_for_patient_observation_description_query.rb
1510
1511
  - app/models/renalware/pathology/observation_for_patient_request_description_query.rb
1511
1512
  - app/models/renalware/pathology/observation_request.rb
1513
+ - app/models/renalware/pathology/observation_requests_attributes_builder.rb
1512
1514
  - app/models/renalware/pathology/observations_for_descriptions_query.rb
1513
1515
  - app/models/renalware/pathology/observations_jsonb_serializer.rb
1514
1516
  - app/models/renalware/pathology/observations_within_date_range_query.rb
@@ -1689,6 +1691,7 @@ files:
1689
1691
  - app/policies/renalware/drugs/drug_policy.rb
1690
1692
  - app/policies/renalware/events/biopsy_policy.rb
1691
1693
  - app/policies/renalware/events/event_policy.rb
1694
+ - app/policies/renalware/events/investigation_policy.rb
1692
1695
  - app/policies/renalware/events/simple_policy.rb
1693
1696
  - app/policies/renalware/events/swab_policy.rb
1694
1697
  - app/policies/renalware/feeds/file_policy.rb
@@ -1822,8 +1825,10 @@ files:
1822
1825
  - app/presenters/renalware/system/users_presenter.rb
1823
1826
  - app/presenters/renalware/time_of_day_presenter.rb
1824
1827
  - app/presenters/renalware/transplants/consent_presenter.rb
1828
+ - app/presenters/renalware/transplants/donor_dashboard_presenter.rb
1825
1829
  - app/presenters/renalware/transplants/mdm_presenter.rb
1826
1830
  - app/presenters/renalware/transplants/patient_presenter.rb
1831
+ - app/presenters/renalware/transplants/recipient_dashboard_presenter.rb
1827
1832
  - app/presenters/renalware/transplants/wait_list_registration_presenter.rb
1828
1833
  - app/presenters/renalware/ukrdc/pathology_observation_presenter.rb
1829
1834
  - app/presenters/renalware/ukrdc/patient_presenter.rb
@@ -2004,10 +2009,12 @@ files:
2004
2009
  - app/views/renalware/events/events/_list.html.slim
2005
2010
  - app/views/renalware/events/events/_table.html.slim
2006
2011
  - app/views/renalware/events/events/cell/_biopsy.html.slim
2012
+ - app/views/renalware/events/events/cell/_investigation.html.slim
2007
2013
  - app/views/renalware/events/events/cell/_simple.html.slim
2008
2014
  - app/views/renalware/events/events/cell/_swab.html.slim
2009
2015
  - app/views/renalware/events/events/index.html.slim
2010
2016
  - app/views/renalware/events/events/inputs/_biopsy.html.slim
2017
+ - app/views/renalware/events/events/inputs/_investigation.html.slim
2011
2018
  - app/views/renalware/events/events/inputs/_simple.html.slim
2012
2019
  - app/views/renalware/events/events/inputs/_swab.html.slim
2013
2020
  - app/views/renalware/events/events/new.html.slim
@@ -2016,8 +2023,11 @@ files:
2016
2023
  - app/views/renalware/events/events/simple/_list.html.slim
2017
2024
  - app/views/renalware/events/events/simple/_table.html.slim
2018
2025
  - app/views/renalware/events/events/toggled_cell/_biopsy.html.slim
2026
+ - app/views/renalware/events/events/toggled_cell/_investigation.html.slim
2019
2027
  - app/views/renalware/events/events/toggled_cell/_simple.html.slim
2020
2028
  - app/views/renalware/events/events/toggled_cell/_swab.html.slim
2029
+ - app/views/renalware/events/investigations/_list.html.slim
2030
+ - app/views/renalware/events/investigations/edit.html.slim
2021
2031
  - app/views/renalware/events/swabs/_list.html.slim
2022
2032
  - app/views/renalware/events/swabs/edit.html.slim
2023
2033
  - app/views/renalware/events/swabs/new.html.slim
@@ -2651,6 +2661,7 @@ files:
2651
2661
  - config/locales/renalware/errors.en.yml
2652
2662
  - config/locales/renalware/events/biopsy.en.yml
2653
2663
  - config/locales/renalware/events/events.yml
2664
+ - config/locales/renalware/events/investigation.en.yml
2654
2665
  - config/locales/renalware/events/swab.en.yml
2655
2666
  - config/locales/renalware/feeds/file.en.yml
2656
2667
  - config/locales/renalware/hd/accesses.en.yml
@@ -3055,6 +3066,8 @@ files:
3055
3066
  - db/migrate/20180112151706_create_low_clearance_profiles.rb
3056
3067
  - db/migrate/20180112151813_create_low_clearance_versions.rb
3057
3068
  - db/migrate/20180119121243_create_trigger_to_preprocess_hl7_msg.rb
3069
+ - db/migrate/20180125201356_make_obs_set_trigger_change_updated_at.rb
3070
+ - db/migrate/20180126142314_add_uuid_to_letters.rb
3058
3071
  - db/seeds.rb
3059
3072
  - db/seeds/default/accesses/access_pd_catheter_insertion_techniques.csv
3060
3073
  - db/seeds/default/accesses/access_pd_catheter_insertion_techniques.rb
@@ -3350,6 +3363,7 @@ files:
3350
3363
  - spec/factories/transplants/registrations.rb
3351
3364
  - spec/support/capybara.rb
3352
3365
  - spec/support/capybara_helper.rb
3366
+ - spec/support/database_functions_spec_helper.rb
3353
3367
  - spec/support/date_helpers.rb
3354
3368
  - spec/support/devise_spec_helper.rb
3355
3369
  - spec/support/drugs_spec_helper.rb