his_emr_api_lab 1.1.7 → 1.1.8

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: 87bb3f6d6ab772890afd0597ea354e2c531f00acf0252d003ca4daf3287d5ef9
4
- data.tar.gz: '0292911676d1e1b21ca843826f98a899fccb2bdd767532b18565722a01acf69c'
3
+ metadata.gz: e5421bf2b632a395fa9870ba1a3e855aea8033f8c54034bda352fdf23409812e
4
+ data.tar.gz: 4cd24426fa0f0a5fe39c416bb0f35f28769c36b95eac72a8abca7579efd75c58
5
5
  SHA512:
6
- metadata.gz: 4fb657851d9eaeda1b6003b24ae28989da574b62a070d95e97441211fbf4034b0ae6f95dcfaca809b2661dabc2ca68d0ef725d0d15ba9a462d74c53b5dd96143
7
- data.tar.gz: 91ebb9c3384c48e043c30057a12c14938110c6e82616caf6ec6b3bbd392affe865ee4369fe8a983936bc3527ca33b5232aa81ea1302cf897397428fc916e0a73
6
+ metadata.gz: 54815cf740ce0c0882752a341df21acbd51bde4102b0dcd2ddd581575efb70b9aa1284295dda7e6cb78b5e6355a3c983d5b41acf5f8f40fe8318737a6cce08a5
7
+ data.tar.gz: b516dd7ac285004b6d4e5125b73e159adf180a07b1cf0470ae4380d02ad274b72d2a68ec697c99deb3f4e8a5f057ec9d0682925e1d1a72b6986852285feea996
@@ -44,6 +44,9 @@ class Lab::Lims::Api::RestApi
44
44
 
45
45
  def consume_orders(*_args, patient_id: nil, **_kwargs)
46
46
  orders_pending_updates(patient_id).each do |order|
47
+ mapping = Lab::LimsOrderMapping.find_by(order_id: order.order_id)
48
+ next if mapping.nil? || check_and_fix_duplicate!(mapping, order)
49
+
47
50
  order_dto = Lab::Lims::OrderSerializer.serialize_order(order)
48
51
 
49
52
  if order_dto['priority'].nil? || order_dto['sample_type'].casecmp?('not_specified')
@@ -405,4 +408,24 @@ class Lab::Lims::Api::RestApi
405
408
 
406
409
  orders
407
410
  end
411
+
412
+ # Checks for duplicates previously created due to this proving orders that have
413
+ # not been pushed to LIMS as orders awaiting updates.
414
+ def check_and_fix_duplicate!(mapping, order)
415
+ duplicate_orders = Lab::LabOrder.where(accession_number: mapping.lims_id)
416
+ .where.not(order_id: mapping.order_id)
417
+ return false if duplicate_orders.size.zero?
418
+
419
+ unless order.discontinued
420
+ order.void('Duplicate created due to bug in HIS-EMR-API-Lab v1.1.7')
421
+ mapping.destroy
422
+ return true
423
+ end
424
+
425
+ duplicate_orders.each do |duplicate_order|
426
+ duplicate_order.void("Has duplicate that contains updates ##{order.order_id}: Duplicate was created by bug in HIS-EMR-API-Lab v1.1.7")
427
+ end
428
+
429
+ true
430
+ end
408
431
  end
@@ -12,7 +12,7 @@ module Lab
12
12
 
13
13
  class << self
14
14
  def preferred_api
15
- emr_api_application('lims_api', 'couchdb')
15
+ emr_api_application('lims_api')
16
16
  end
17
17
 
18
18
  ##
@@ -45,7 +45,7 @@ module Lab
45
45
 
46
46
  def self.start_worker(worker_name)
47
47
  Rails.logger = LoggerMultiplexor.new(log_path("#{worker_name}.log"), $stdout)
48
- ActiveRecord::Base.logger = Rails.logger
48
+ # ActiveRecord::Base.logger = Rails.logger
49
49
  Rails.logger.level = :debug
50
50
 
51
51
  File.open(log_path("#{worker_name}.lock"), File::RDWR | File::CREAT, 0o644) do |fout|
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.7'
4
+ VERSION = '1.1.8'
5
5
  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.7
4
+ version: 1.1.8
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-08-09 00:00:00.000000000 Z
11
+ date: 2021-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: couchrest
@@ -331,7 +331,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
331
331
  - !ruby/object:Gem::Version
332
332
  version: '0'
333
333
  requirements: []
334
- rubygems_version: 3.0.8
334
+ rubygems_version: 3.1.4
335
335
  signing_key:
336
336
  specification_version: 4
337
337
  summary: Lab extension for the HIS-EMR-API