his_emr_api_lab 2.3.5 → 2.3.6

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: dc965d603f0266ab7897325bdf7342208fb136527c39b2b6d267269b79c2670c
4
- data.tar.gz: 67b239f498c628d805d336df0b1ce1aa906969638046453640b57278dbdc3d1a
3
+ metadata.gz: 0a4ea1a6183fe75cd7d56a11e934391903cab098f8892b91380d6f6e67b3b752
4
+ data.tar.gz: 4b9f2c6e7f8beabf94c5c474cd11a2cbafe833a4111d975786b9b65b85a093fd
5
5
  SHA512:
6
- metadata.gz: 1944e524aab65fa92c218339dd61e1edfd741b38c0525b8c89092d493dd77bfc1f450f5bbe51dca6b9896db402f32f7d38a2e0c90ba59eac04e257a82bbb5375
7
- data.tar.gz: 33b215daa16a744b72ff9999ec71fcfbc211c21fad7cad8f73d540ec8eb9cf16183bdd1a4f90ee6a901847a89f0cba0f4d4326bb28383515105f2662805f232a
6
+ metadata.gz: b5562e97cd505fed7dc56e3529e7b5b38510cf3ec5d0a94dbd2fbff91a8286e7715a96bb77c6ff339cf7edf60d0eda539e57ec758109c32de26cd11892e387e7
7
+ data.tar.gz: '097f26ec972cd4f79e57f5719142c6224a975dad0b4c31de4e6063df96470f01885c000544b743f4d0470b09c2d63ab1180f97dad6eb585ab0d7ff6d01350e1b'
@@ -14,12 +14,11 @@ module Lab
14
14
  date_received: params[:date_received])
15
15
  end
16
16
 
17
- def acknowledgements_pending_sync(batch_size, start_date: nil)
17
+ def acknowledgements_pending_sync(batch_size, start_date: nil, last_order_id: 0)
18
18
  query = Lab::LabAcknowledgement.joins(:order).where(pushed: false)
19
-
19
+ .where('lims_acknowledgement_statuses.order_id > ?', last_order_id)
20
20
  query = query.where('orders.date_created >= ?', start_date) if start_date
21
-
22
- query.limit(batch_size)
21
+ query.order('lims_acknowledgement_statuses.order_id ASC').limit(batch_size)
23
22
  end
24
23
 
25
24
  def push_acknowledgement(acknowledgement, lims_api)
@@ -16,19 +16,33 @@ module Lab
16
16
  end
17
17
 
18
18
  def push_acknowledgement(batch_size: 1000, wait: false)
19
+ last_order_id = 0
19
20
  loop do
20
21
  logger.info('Looking for new acknowledgements to push to LIMS...')
21
22
  acknowledgements = Lab::AcknowledgementService.acknowledgements_pending_sync(batch_size,
22
- start_date: start_date).all
23
+ start_date: start_date,
24
+ last_order_id: last_order_id).all
23
25
 
24
26
  logger.debug("Found #{acknowledgements.size} acknowledgements...")
25
27
  acknowledgements.each do |acknowledgement|
26
28
  Lab::AcknowledgementService.push_acknowledgement(acknowledgement, @lims_api)
29
+ last_order_id = acknowledgement.order_id
27
30
  rescue StandardError => e
28
31
  logger.error("Failed to push acknowledgement ##{acknowledgement.order_id}: #{e.class} - #{e.message}")
29
32
  end
30
33
 
31
- break unless wait
34
+ # If no records found or not waiting, check if we should continue
35
+ if acknowledgements.empty?
36
+ break unless wait
37
+ elsif !wait && acknowledgements.size < batch_size
38
+ # Processed final partial batch in one-shot mode
39
+ logger.info("Processed final batch of #{acknowledgements.size} acknowledgements")
40
+ break
41
+ elsif !wait
42
+ # More records likely exist, continue processing
43
+ logger.info('Batch complete, checking for more acknowledgements...')
44
+ next
45
+ end
32
46
 
33
47
  logger.info('Waiting for acknowledgements...')
34
48
  sleep(Lab::Lims::Config.updates_poll_frequency)
data/lib/lab/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Lab
4
- VERSION = '2.3.5'
4
+ VERSION = '2.3.6'
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: 2.3.5
4
+ version: 2.3.6
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: 2026-06-02 00:00:00.000000000 Z
11
+ date: 2026-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: couchrest