his_emr_api_lab 1.1.15 → 1.1.16
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/controllers/lab/orders_controller.rb +6 -3
- data/app/controllers/lab/tests_controller.rb +2 -1
- data/app/models/lab/lab_order.rb +0 -8
- data/app/services/lab/orders_search_service.rb +2 -14
- data/app/services/lab/orders_service.rb +0 -1
- data/lib/lab/version.rb +1 -1
- data/lib/logger_multiplexor.rb +8 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 31eb65eeca1c291f733da313a36a6477143ed6119afa9858cd7afb6979ef75bd
|
4
|
+
data.tar.gz: 3f753f4313b69f613388c2517a8efe7936871baad6adb43dfc8475ecfe303688
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94ba7f43627d0def3edb609439535f9a715b695afda5ba43a494b673f421b1878cda6386b2b58c9960990f58c5156f308d85a5909668aad7c1dba97ab4aae2a9
|
7
|
+
data.tar.gz: 2f2d3552dcbe2608623066a65bb4fff59932aea55b3ab4b8a24478cc773161b6b1149c4bba08175233e4c6a43d3ed247abd889fcf258528c31bb4c4e8c89c35e
|
@@ -8,14 +8,15 @@ module Lab
|
|
8
8
|
OrdersService.order_test(order_params)
|
9
9
|
end
|
10
10
|
|
11
|
+
orders.each { |order| Lab::PushOrderJob.perform_later(order.fetch(:order_id)) }
|
12
|
+
|
11
13
|
render json: orders, status: :created
|
12
14
|
end
|
13
15
|
|
14
16
|
def update
|
15
17
|
specimen = params.require(:specimen).permit(:concept_id)
|
16
|
-
|
17
|
-
order
|
18
|
-
force_update: params[:force_update])
|
18
|
+
order = OrdersService.update_order(params[:id], specimen: specimen, force_update: params[:force_update])
|
19
|
+
Lab::PushOrderJob.perform_later(order.fetch(:order_id))
|
19
20
|
|
20
21
|
render json: order
|
21
22
|
end
|
@@ -23,11 +24,13 @@ module Lab
|
|
23
24
|
def index
|
24
25
|
filters = params.permit(%i[patient_id accession_number date status])
|
25
26
|
|
27
|
+
Lab::UpdatePatientOrdersJob.perform_later(filters[:patient_id]) if filters[:patient_id]
|
26
28
|
render json: OrdersSearchService.find_orders(filters)
|
27
29
|
end
|
28
30
|
|
29
31
|
def destroy
|
30
32
|
OrdersService.void_order(params[:id], params[:reason])
|
33
|
+
Lab::VoidOrderJob.perform_later(params[:id])
|
31
34
|
|
32
35
|
render status: :no_content
|
33
36
|
end
|
@@ -14,7 +14,8 @@ class Lab::TestsController < ::ApplicationController
|
|
14
14
|
order_id, test_concepts = test_params.require(%i[order_id tests])
|
15
15
|
date = test_params[:date] || Date.today
|
16
16
|
|
17
|
-
tests = service.create_tests(
|
17
|
+
tests = service.create_tests(Lab::LabOrder.find(order_id), date, test_concepts)
|
18
|
+
Lab::PushOrderJob.perform_later(order_id)
|
18
19
|
|
19
20
|
render json: tests, status: :created
|
20
21
|
end
|
data/app/models/lab/lab_order.rb
CHANGED
@@ -44,19 +44,11 @@ module Lab
|
|
44
44
|
scope :drawn, -> { where.not(concept_id: ConceptName.where(name: 'Unknown').select(:concept_id)) }
|
45
45
|
scope :not_drawn, -> { where(concept_id: ConceptName.where(name: 'Unknown').select(:concept_id)) }
|
46
46
|
|
47
|
-
after_commit :queue_lims_push
|
48
|
-
|
49
47
|
def self.prefetch_relationships
|
50
48
|
includes(:reason_for_test,
|
51
49
|
:requesting_clinician,
|
52
50
|
:target_lab,
|
53
51
|
tests: [:result])
|
54
52
|
end
|
55
|
-
|
56
|
-
private
|
57
|
-
|
58
|
-
def queue_lims_push
|
59
|
-
Lab::PushOrderJob.perform_later(order_id)
|
60
|
-
end
|
61
53
|
end
|
62
54
|
end
|
@@ -5,14 +5,6 @@ module Lab
|
|
5
5
|
module OrdersSearchService
|
6
6
|
class << self
|
7
7
|
def find_orders(filters)
|
8
|
-
# A bit of hack-ish solution to have a patient's orders updated upon
|
9
|
-
# scanning of a patient. Done in this way to deal with LIMS' lack of
|
10
|
-
# a notification system for lab order updates. We are limited to polling
|
11
|
-
# for updates on a per order basis.
|
12
|
-
if filters[:patient_id]
|
13
|
-
Lab::UpdatePatientOrdersJob.perform_later(filters[:patient_id])
|
14
|
-
end
|
15
|
-
|
16
8
|
extra_filters = pop_filters(filters, :date, :end_date, :status)
|
17
9
|
|
18
10
|
orders = Lab::LabOrder.prefetch_relationships
|
@@ -39,13 +31,9 @@ module Lab
|
|
39
31
|
date = date&.to_date
|
40
32
|
end_date = end_date&.to_date
|
41
33
|
|
42
|
-
if date && end_date
|
43
|
-
return orders.where('start_date BETWEEN ? AND ?', date, end_date + 1.day)
|
44
|
-
end
|
34
|
+
return orders.where('start_date BETWEEN ? AND ?', date, end_date + 1.day) if date && end_date
|
45
35
|
|
46
|
-
if date
|
47
|
-
return orders.where('start_date BETWEEN ? AND ?', date, date + 1.day)
|
48
|
-
end
|
36
|
+
return orders.where('start_date BETWEEN ? AND ?', date, date + 1.day) if date
|
49
37
|
|
50
38
|
return orders.where('start_date < ?', end_date + 1.day) if end_date
|
51
39
|
|
data/lib/lab/version.rb
CHANGED
data/lib/logger_multiplexor.rb
CHANGED
@@ -23,10 +23,16 @@ class LoggerMultiplexor
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def method_missing(method_name, *args)
|
26
|
-
|
26
|
+
if respond_to_missing?(method_name)
|
27
|
+
@loggers.each { |logger| logger.send(method_name, *args) }
|
28
|
+
else
|
29
|
+
super
|
30
|
+
end
|
27
31
|
end
|
28
32
|
|
29
33
|
def respond_to_missing?(method_name)
|
30
|
-
@loggers.all?
|
34
|
+
@loggers.all? do |logger|
|
35
|
+
logger.respond_to?(method_name)
|
36
|
+
end
|
31
37
|
end
|
32
38
|
end
|
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.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elizabeth Glaser Pediatric Foundation Malawi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: couchrest
|
@@ -334,7 +334,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
334
334
|
- !ruby/object:Gem::Version
|
335
335
|
version: '0'
|
336
336
|
requirements: []
|
337
|
-
rubygems_version: 3.
|
337
|
+
rubygems_version: 3.1.4
|
338
338
|
signing_key:
|
339
339
|
specification_version: 4
|
340
340
|
summary: Lab extension for the HIS-EMR-API
|