his_emr_api_lab 1.1.15 → 1.1.16
Sign up to get free protection for your applications and to get access to all the features.
- 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
|