his_emr_api_lab 1.1.16 → 1.1.20
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef07023388b9d06939b9e9b0d09531aaecf58471eb2e62b2f883bc8112121cf8
|
4
|
+
data.tar.gz: b4aa93d96700812eed8cd0c04e37130b56f30fec563c168679b420ccd229ddb7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97cb016a11e134600fb11f1017df49f819ca43efdc973f2e526a9493c02e126a7af9af19ce58caa4f4e67b2d13e18fb99b1abd45136cf2dabb54f613c92402a6
|
7
|
+
data.tar.gz: cdf3a623a0e5b25e9436aa108cafce799ca1e5fdd7a22688062fcff7a07dcda5f9a5aaab7127952e4ec5569e09c827513b6cf07b446f16b8a29921f28d2016ae
|
data/app/models/lab/lab_order.rb
CHANGED
@@ -35,6 +35,10 @@ module Lab
|
|
35
35
|
class_name: 'Observation',
|
36
36
|
foreign_key: :order_id
|
37
37
|
|
38
|
+
has_one :mapping,
|
39
|
+
class_name: '::Lab::LimsOrderMapping',
|
40
|
+
foreign_key: :order_id
|
41
|
+
|
38
42
|
default_scope do
|
39
43
|
joins(:order_type)
|
40
44
|
.merge(OrderType.where(name: Lab::Metadata::ORDER_TYPE_NAME))
|
@@ -377,7 +377,7 @@ class Lab::Lims::Api::RestApi
|
|
377
377
|
orders_without_specimen(patient_id).each { |order| orders[order.order_id] = order }
|
378
378
|
orders_without_results(patient_id).each { |order| orders[order.order_id] = order }
|
379
379
|
orders_without_reason(patient_id).each { |order| orders[order.order_id] = order }
|
380
|
-
|
380
|
+
|
381
381
|
orders.values
|
382
382
|
end
|
383
383
|
|
@@ -394,8 +394,10 @@ class Lab::Lims::Api::RestApi
|
|
394
394
|
|
395
395
|
def orders_without_results(patient_id = nil)
|
396
396
|
Rails.logger.debug('Looking for orders without a result')
|
397
|
+
# Lab::OrdersSearchService.find_orders_without_results(patient_id: patient_id)
|
398
|
+
# .where.not(accession_number: Lab::LimsOrderMapping.select(:lims_id).where("pulled_at IS NULL"))
|
397
399
|
Lab::OrdersSearchService.find_orders_without_results(patient_id: patient_id)
|
398
|
-
|
400
|
+
.where(order_id: Lab::LimsOrderMapping.select(:order_id))
|
399
401
|
end
|
400
402
|
|
401
403
|
def orders_without_reason(patient_id = nil)
|
@@ -45,7 +45,7 @@ module Lab
|
|
45
45
|
end
|
46
46
|
|
47
47
|
update_last_seq(context.current_seq)
|
48
|
-
rescue DuplicateNHID
|
48
|
+
rescue Lab::Lims::DuplicateNHID
|
49
49
|
logger.warn("Failed to import order due to duplicate patient NHID: #{order_dto[:patient][:id]}")
|
50
50
|
save_failed_import(order_dto, "Duplicate local patient NHID: #{order_dto[:patient][:id]}")
|
51
51
|
rescue MissingAccessionNumber
|
@@ -102,7 +102,7 @@ module Lab
|
|
102
102
|
.distinct(:patient_id)
|
103
103
|
.all
|
104
104
|
|
105
|
-
raise DuplicateNHID, "Duplicate National Health ID: #{nhid}" if patients.size > 1
|
105
|
+
raise Lab::Lims::DuplicateNHID, "Duplicate National Health ID: #{nhid}" if patients.size > 1
|
106
106
|
|
107
107
|
patients.first
|
108
108
|
end
|
@@ -182,14 +182,14 @@ module Lab
|
|
182
182
|
|
183
183
|
def update_results(order, lims_results)
|
184
184
|
logger.debug("Updating results for order ##{order[:accession_number]}: #{lims_results}")
|
185
|
-
|
185
|
+
|
186
186
|
lims_results.each do |test_name, test_results|
|
187
187
|
test = find_test(order['id'], test_name)
|
188
188
|
unless test
|
189
189
|
logger.warn("Couldn't find test, #{test_name}, in order ##{order[:id]}")
|
190
190
|
next
|
191
191
|
end
|
192
|
-
|
192
|
+
|
193
193
|
next if test.result || test_results['results'].blank?
|
194
194
|
|
195
195
|
measures = test_results['results'].map do |indicator, value|
|
@@ -198,7 +198,7 @@ module Lab
|
|
198
198
|
|
199
199
|
measure
|
200
200
|
end
|
201
|
-
|
201
|
+
|
202
202
|
measures = measures.compact
|
203
203
|
next if measures.empty?
|
204
204
|
|
@@ -57,7 +57,11 @@ module Lab
|
|
57
57
|
elsif mapping
|
58
58
|
Rails.logger.info("Updating order ##{order_dto[:accession_number]} in LIMS")
|
59
59
|
lims_api.update_order(mapping.lims_id, order_dto)
|
60
|
-
|
60
|
+
if order_dto['test_results'].nil? || order_dto['test_results'].empty?
|
61
|
+
mapping.update(pushed_at: Time.now)
|
62
|
+
else
|
63
|
+
mapping.update(pushed_at: Time.now, result_push_status: true)
|
64
|
+
end
|
61
65
|
elsif order_dto[:_id] && Lab::LimsOrderMapping.where(lims_id: order_dto[:_id]).exists?
|
62
66
|
# HACK: v1.1.7 had a bug where duplicates of recently created orders where being created by
|
63
67
|
# the pull worker. This here detects those duplicates and voids them.
|
@@ -67,7 +71,7 @@ module Lab
|
|
67
71
|
Rails.logger.info("Creating order ##{order_dto[:accession_number]} in LIMS")
|
68
72
|
update = lims_api.create_order(order_dto)
|
69
73
|
Lab::LimsOrderMapping.create!(order: order, lims_id: update['id'], revision: update['rev'],
|
70
|
-
pushed_at: Time.now)
|
74
|
+
pushed_at: Time.now, result_push_status: false)
|
71
75
|
end
|
72
76
|
end
|
73
77
|
|
@@ -97,8 +101,9 @@ module Lab
|
|
97
101
|
.last_updated
|
98
102
|
|
99
103
|
Lab::LabOrder.left_joins(:results)
|
104
|
+
.joins(:mapping)
|
100
105
|
.where('orders.discontinued_date > :last_updated
|
101
|
-
OR obs.date_created >
|
106
|
+
OR obs.date_created > orders.date_created AND lab_lims_order_mappings.result_push_status = 0',
|
102
107
|
last_updated: last_updated)
|
103
108
|
.group('orders.order_id')
|
104
109
|
.order(discontinued_date: :desc, date_created: :desc)
|
data/lib/lab/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: his_emr_api_lab
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elizabeth Glaser Pediatric Foundation Malawi
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: couchrest
|
@@ -319,7 +319,7 @@ licenses:
|
|
319
319
|
- MIT
|
320
320
|
metadata:
|
321
321
|
source_code_uri: https://github.com/EGPAFMalawiHIS/his_emr_api_lab
|
322
|
-
post_install_message:
|
322
|
+
post_install_message:
|
323
323
|
rdoc_options: []
|
324
324
|
require_paths:
|
325
325
|
- lib
|
@@ -334,8 +334,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
334
334
|
- !ruby/object:Gem::Version
|
335
335
|
version: '0'
|
336
336
|
requirements: []
|
337
|
-
rubygems_version: 3.
|
338
|
-
signing_key:
|
337
|
+
rubygems_version: 3.0.9
|
338
|
+
signing_key:
|
339
339
|
specification_version: 4
|
340
340
|
summary: Lab extension for the HIS-EMR-API
|
341
341
|
test_files: []
|