his_emr_api_lab 2.1.7.pre.alpha → 2.1.7.pre.beta.0
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.
- checksums.yaml +4 -4
- data/app/services/lab/orders_service.rb +30 -20
- data/lib/lab/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b15bb82b3ff39714e8f48a1a8102bc9c0347d5498f2e8fae7d8e5c446d0d15f5
|
|
4
|
+
data.tar.gz: 159e9321795329ae186bf7d4a88aa492f63634ed5b5a236fb6a634da0dbd8342
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e2632b305212c9f09bc2347f6d2a14d873b781e02311c1f52309f52db418ea194124fcc2065f7258865204bd918a56888e29c4d40656f08cf99b8d6184b75b0a
|
|
7
|
+
data.tar.gz: 6e4f055b0412a7300c11abcb955c732302b5429db0aec611a888df507c5f547328715a7831f9411a181695549f698cb04430b5a4f564f3f9e42d23b25af2034e
|
|
@@ -102,14 +102,16 @@ module Lab
|
|
|
102
102
|
|
|
103
103
|
if reason_for_test
|
|
104
104
|
Rails.logger.debug("Updating reason for test on order ##{order.order_id}")
|
|
105
|
-
update_reason_for_test(order, Concept.find(reason_for_test)&.id,
|
|
105
|
+
update_reason_for_test(order, Concept.find(reason_for_test)&.id,
|
|
106
|
+
force_update: params.fetch('force_update', false))
|
|
106
107
|
end
|
|
107
108
|
|
|
108
109
|
Lab::LabOrderSerializer.serialize_order(order)
|
|
109
110
|
end
|
|
110
111
|
|
|
111
112
|
def void_order(order_id, reason)
|
|
112
|
-
order = Lab::LabOrder.includes(%i[requesting_clinician reason_for_test target_lab comment_to_fulfiller],
|
|
113
|
+
order = Lab::LabOrder.includes(%i[requesting_clinician reason_for_test target_lab comment_to_fulfiller],
|
|
114
|
+
tests: [:result])
|
|
113
115
|
.find(order_id)
|
|
114
116
|
|
|
115
117
|
order.requesting_clinician&.void(reason)
|
|
@@ -160,13 +162,15 @@ module Lab
|
|
|
160
162
|
last_order_date: Lab::LabOrder.last&.start_date&.to_date,
|
|
161
163
|
lab_orders: []
|
|
162
164
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
165
|
+
if include_data
|
|
166
|
+
data[:lab_orders] = orders.map do |order|
|
|
167
|
+
Lab::LabOrderSerializer.serialize_order(
|
|
168
|
+
order, requesting_clinician: order.requesting_clinician,
|
|
169
|
+
reason_for_test: order.reason_for_test,
|
|
170
|
+
target_lab: order.target_lab
|
|
171
|
+
)
|
|
172
|
+
end
|
|
173
|
+
end
|
|
170
174
|
data
|
|
171
175
|
end
|
|
172
176
|
|
|
@@ -174,14 +178,14 @@ module Lab
|
|
|
174
178
|
|
|
175
179
|
def create_rejection_notification(order_params)
|
|
176
180
|
order = find_order order_params['tracking_number']
|
|
177
|
-
data = {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
181
|
+
data = { type: 'LIMS',
|
|
182
|
+
specimen: ConceptName.find_by(concept_id: order.concept_id)&.name,
|
|
183
|
+
accession_number: order&.accession_number,
|
|
184
|
+
order_date: order&.start_date,
|
|
185
|
+
arv_number: find_arv_number(order.patient_id),
|
|
186
|
+
patient_id: result.person_id,
|
|
187
|
+
ordered_by: order&.provider&.person&.name,
|
|
188
|
+
rejection_reason: order_params['comments'] }.as_json
|
|
185
189
|
NotificationService.new.create_notification('LIMS', data)
|
|
186
190
|
end
|
|
187
191
|
|
|
@@ -235,7 +239,9 @@ module Lab
|
|
|
235
239
|
encounter.encounter_datetime = order_params[:date] || Date.today
|
|
236
240
|
encounter.visit = Visit.find_by_uuid(visit) if Encounter.column_names.include?('visit_id')
|
|
237
241
|
encounter.provider_id = User.current&.person&.id if Encounter.column_names.include?('provider_id')
|
|
238
|
-
|
|
242
|
+
if Encounter.column_names.include?('program_id') && order_params[:program_id].present?
|
|
243
|
+
encounter.program_id = order_params[:program_id]
|
|
244
|
+
end
|
|
239
245
|
encounter.save!
|
|
240
246
|
encounter.reload
|
|
241
247
|
end
|
|
@@ -259,7 +265,8 @@ module Lab
|
|
|
259
265
|
order.date_created = params[:date]&.to_date || Date.today if order.respond_to?(:date_created)
|
|
260
266
|
order.start_date = params[:date]&.to_date || Date.today if order.respond_to?(:start_date)
|
|
261
267
|
order.auto_expire_date = params[:end_date]
|
|
262
|
-
|
|
268
|
+
# NOTE: comment_to_fulfiller is a has_one association, not a field
|
|
269
|
+
# It will be created via add_comment_to_fulfiller method
|
|
263
270
|
order.accession_number = access_number
|
|
264
271
|
order.orderer = User.current&.user_id
|
|
265
272
|
|
|
@@ -355,7 +362,10 @@ module Lab
|
|
|
355
362
|
|
|
356
363
|
return if order.reason_for_test&.value_coded == concept_id
|
|
357
364
|
|
|
358
|
-
|
|
365
|
+
if order.reason_for_test&.value_coded && !force_update
|
|
366
|
+
raise InvalidParameterError,
|
|
367
|
+
"Can't change reason for test once set"
|
|
368
|
+
end
|
|
359
369
|
|
|
360
370
|
order.reason_for_test&.delete
|
|
361
371
|
date = order.start_date if order.respond_to?(:start_date)
|
data/lib/lab/version.rb
CHANGED