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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a0345aafa5a183730006a41e0451a129eea8b201622af42c9ae9b13fb23e410d
4
- data.tar.gz: d2003b6e1872c4d3c16b1bc80edea36d4ac353d62b37aad71932119085c5aecb
3
+ metadata.gz: 31eb65eeca1c291f733da313a36a6477143ed6119afa9858cd7afb6979ef75bd
4
+ data.tar.gz: 3f753f4313b69f613388c2517a8efe7936871baad6adb43dfc8475ecfe303688
5
5
  SHA512:
6
- metadata.gz: afb1c33968cb197c30b9f702b04188e93c886982a2304dc21aefcfd46add7aeb62df2307d53c6f2794dba8895a049f131b82835046280de920996d70eb6f1b84
7
- data.tar.gz: ad3514949b17d623983acd6c8f7c4af305da52e4eda81e2345d94d7390e2d35aa7796d91397d819f0f64efa73803a011b4e9bd46baa574b265b04346da30b1d2
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 = OrdersService.update_order(params[:id], specimen: specimen,
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(Order.find(order_id), date, test_concepts)
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
@@ -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
 
@@ -100,7 +100,6 @@ module Lab
100
100
 
101
101
  order.tests.each { |test| test.void(reason) }
102
102
  voided = order.void(reason)
103
- Lab::VoidOrderJob.perform_later(order_id)
104
103
 
105
104
  voided
106
105
  end
data/lib/lab/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Lab
4
- VERSION = '1.1.15'
4
+ VERSION = '1.1.16'
5
5
  end
@@ -23,10 +23,16 @@ class LoggerMultiplexor
23
23
  end
24
24
 
25
25
  def method_missing(method_name, *args)
26
- @loggers.each { |logger| logger.method(method_name).call(*args) }
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? { |logger| logger.respond_to_missing?(method_name) }
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.15
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-14 00:00:00.000000000 Z
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.0.8
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