his_emr_api_lab 2.1.8.5 → 2.1.8.7

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: 2884ca0a71414204057ec642d6de6e9ff68a9c4d91922436be5eb12f59b45a20
4
- data.tar.gz: 13912255b483ca92fa2253f8a7fc80f333d22afb1d8981eb4866881d34044f3b
3
+ metadata.gz: 666ee2ba3fbc370e272c06156d5f90fa2b8a8bedba647dcc1bbfbfbec347a42b
4
+ data.tar.gz: ceedca5090c613d217af7f85b3d52cb5a519cb8dfea24a5452e321d50efa2a3d
5
5
  SHA512:
6
- metadata.gz: 915108d4a41f716e00b885d00caae453ee877963cc27ed5e386626a48945bd7b95a605516bd454b7c027d0bd44e4bbe2682c147b425c88884d33d7d490a0e539
7
- data.tar.gz: f993658f07978b549cac77acd6e3021d6c5855ca4dd2fa1da35ee649bfe263357af60a61e1181abc2947cea33692c11c7aa3086abf60706b7cd8e8f19758dbf6
6
+ metadata.gz: f10ed2e39e3fabcdb6219a13b553dd4a1acc29318256f6977ffa05230917265afd90ba4487bb350508ffb5d323cb0783ffc04cc0a3dcdb591692e18cdd78ed4b
7
+ data.tar.gz: 46a28575116934b1a8bdce291dd5661b965f5d8ec428a00edbe2530626a7be5bc22b2e96c4e7a09989ba000048d5c252d4aa1303f4d943c044f4415ead92ca54
@@ -66,7 +66,8 @@ module Lab
66
66
  def self.concept_name(concept_id)
67
67
  return concept_id unless concept_id
68
68
 
69
- ::ConceptAttribute.find_by(concept_id:, attribute_type: ConceptAttributeType.test_catalogue_name)&.value_reference
69
+ c_name = ::ConceptAttribute.find_by(concept_id:, attribute_type: ConceptAttributeType.test_catalogue_name)&.value_reference
70
+ c_name || ConceptName.find_by_concept_id(concept_id)&.name
70
71
  end
71
72
 
72
73
  def self.voided_tests(order)
@@ -524,9 +524,10 @@ module Lab
524
524
  def orders_without_specimen(patient_id = nil, start_date: nil)
525
525
  Rails.logger.debug('Looking for orders without a specimen')
526
526
  unknown_specimen = ConceptName.where(name: Lab::Metadata::UNKNOWN_SPECIMEN)
527
- .select(:concept_id)
527
+ .pluck(:concept_id)
528
528
  orders = Lab::LabOrder.where(concept_id: unknown_specimen)
529
- .where.not(accession_number: Lab::LimsOrderMapping.select(:lims_id))
529
+ .joins('LEFT JOIN lab_lims_order_mappings ON lab_lims_order_mappings.lims_id = orders.accession_number')
530
+ .where('lab_lims_order_mappings.lims_id IS NULL')
530
531
  orders = orders.where(patient_id:) if patient_id
531
532
  orders = orders.where('orders.date_created >= ?', start_date) if start_date
532
533
 
@@ -538,7 +539,7 @@ module Lab
538
539
  # Lab::OrdersSearchService.find_orders_without_results(patient_id: patient_id)
539
540
  # .where.not(accession_number: Lab::LimsOrderMapping.select(:lims_id).where("pulled_at IS NULL"))
540
541
  orders = Lab::OrdersSearchService.find_orders_without_results(patient_id:)
541
- .where(order_id: Lab::LimsOrderMapping.select(:order_id))
542
+ .joins('INNER JOIN lab_lims_order_mappings ON lab_lims_order_mappings.order_id = orders.order_id')
542
543
  orders = orders.where('orders.date_created >= ?', start_date) if start_date
543
544
  orders
544
545
  end
@@ -548,7 +549,8 @@ module Lab
548
549
  orders = Lab::LabOrder.joins(:reason_for_test)
549
550
  .merge(Observation.where(value_coded: nil, value_text: nil))
550
551
  .limit(1000)
551
- .where.not(accession_number: Lab::LimsOrderMapping.select(:lims_id))
552
+ .joins('LEFT JOIN lab_lims_order_mappings ON lab_lims_order_mappings.lims_id = orders.accession_number')
553
+ .where('lab_lims_order_mappings.lims_id IS NULL')
552
554
  orders = orders.where(patient_id:) if patient_id
553
555
  orders = orders.where('orders.date_created >= ?', start_date) if start_date
554
556
 
@@ -109,6 +109,7 @@ module Lab
109
109
  end
110
110
 
111
111
  def format_sample_type(name)
112
+ return 'not_specified' if name.nil?
112
113
  return 'not_specified' if name.casecmp?('Unknown')
113
114
 
114
115
  return 'CSF' if name.casecmp?('Cerebrospinal Fluid')
@@ -101,7 +101,8 @@ module Lab
101
101
 
102
102
  def new_orders
103
103
  Rails.logger.debug('Looking for new orders that need to be created in LIMS...')
104
- query = Lab::LabOrder.where.not(order_id: Lab::LimsOrderMapping.all.select(:order_id))
104
+ query = Lab::LabOrder.joins('LEFT JOIN lab_lims_order_mappings ON lab_lims_order_mappings.order_id = orders.order_id')
105
+ .where('lab_lims_order_mappings.order_id IS NULL')
105
106
  .where("accession_number IS NOT NULL AND accession_number !=''")
106
107
 
107
108
  query = if start_date
@@ -133,9 +134,9 @@ module Lab
133
134
  # add date filter to avoid pushing voided orders that were created a long time ago
134
135
  Rails.logger.debug('Looking for voided orders that are being tracked by LIMS...')
135
136
  orders = Lab::LabOrder.unscoped
136
- .where(order_type: OrderType.where(name: Lab::Metadata::ORDER_TYPE_NAME),
137
- order_id: Lab::LimsOrderMapping.all.select(:order_id),
138
- voided: 1)
137
+ .joins('INNER JOIN lab_lims_order_mappings ON lab_lims_order_mappings.order_id = orders.order_id')
138
+ .where(order_type: OrderType.where(name: Lab::Metadata::ORDER_TYPE_NAME),
139
+ voided: 1)
139
140
  orders = orders.where('orders.date_created >= ?', start_date) if start_date
140
141
  orders.order(date_voided: :desc)
141
142
  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 = '2.1.8.5'
4
+ VERSION = '2.1.8.7'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: his_emr_api_lab
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.8.5
4
+ version: 2.1.8.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elizabeth Glaser Pediatric Foundation Malawi