his_emr_api_lab 1.1.27 → 1.1.29
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8830688d3c9f3a5c1eaf915060e61c89110b7602f44233d9a6d6c87628d7bfa
|
4
|
+
data.tar.gz: 394f57a548c41b25303ea9cf6f7cd205094a18c2c1b471d847d7d02a7828487a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8061088cf2210df529f524d410441f647386402ae0c706953d5dbf4b2a439b48c3d9377180b028ba5d456b5598f8b6c75c0a598f8550732785ce53853eafdb15
|
7
|
+
data.tar.gz: 06a06e00a9051548ee69387fa5c9078cb86d119968a5ef81a37fbddc3e60147fe57b743232aadc20fb7f9adbfa74caddd8f8eb1f6f05bb56219f96ca0762ccdd
|
@@ -28,6 +28,11 @@ module Lab
|
|
28
28
|
render json: OrdersSearchService.find_orders(filters)
|
29
29
|
end
|
30
30
|
|
31
|
+
def verify_tracking_number
|
32
|
+
tracking_number = params.require(:accession_number)
|
33
|
+
render json: { exists: OrdersService.check_tracking_number(tracking_number) }, status: :ok
|
34
|
+
end
|
35
|
+
|
31
36
|
def destroy
|
32
37
|
OrdersService.void_order(params[:id], params[:reason])
|
33
38
|
Lab::VoidOrderJob.perform_later(params[:id])
|
@@ -8,7 +8,7 @@ module Lab
|
|
8
8
|
test_types = test_types.filter_members(name: name) if name
|
9
9
|
|
10
10
|
unless specimen_type
|
11
|
-
return test_types.joins('INNER JOIN concept_name ON concept_set.concept_id = concept_name.concept_id')
|
11
|
+
return test_types.joins('INNER JOIN concept_name ON concept_set.concept_id = concept_name.concept_id AND concept_name.voided = 0 AND concept_name.locale_preferred = 1')
|
12
12
|
.select('concept_name.name, concept_name.concept_id')
|
13
13
|
.group('concept_name.concept_id')
|
14
14
|
end
|
@@ -87,6 +87,13 @@ class Lab::Lims::Api::RestApi
|
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
90
|
+
def verify_tracking_number(tracking_number)
|
91
|
+
find_lims_order(tracking_number)
|
92
|
+
rescue InvalidParameters => e
|
93
|
+
Rails.logger.error("Failed to verify tracking number #{tracking_number}: #{e.message}")
|
94
|
+
false
|
95
|
+
end
|
96
|
+
|
90
97
|
private
|
91
98
|
|
92
99
|
attr_reader :config
|
@@ -52,6 +52,10 @@ module Lab
|
|
52
52
|
def order_test(order_params)
|
53
53
|
Order.transaction do
|
54
54
|
encounter = find_encounter(order_params)
|
55
|
+
if order_params[:accession_number].present? && check_tracking_number(order_params[:accession_number])
|
56
|
+
raise 'Accession number already exists'
|
57
|
+
end
|
58
|
+
|
55
59
|
order = create_order(encounter, order_params)
|
56
60
|
|
57
61
|
Lab::TestsService.create_tests(order, order_params[:date], order_params[:tests])
|
@@ -104,6 +108,10 @@ module Lab
|
|
104
108
|
voided
|
105
109
|
end
|
106
110
|
|
111
|
+
def check_tracking_number(tracking_number)
|
112
|
+
accession_number_exists?(tracking_number) || nlims_accession_number_exists?(tracking_number)
|
113
|
+
end
|
114
|
+
|
107
115
|
private
|
108
116
|
|
109
117
|
##
|
@@ -141,6 +149,19 @@ module Lab
|
|
141
149
|
)
|
142
150
|
end
|
143
151
|
|
152
|
+
def accession_number_exists?(accession_number)
|
153
|
+
Lab::LabOrder.where(accession_number: accession_number).exists?
|
154
|
+
end
|
155
|
+
|
156
|
+
def nlims_accession_number_exists?(accession_number)
|
157
|
+
config = YAML.load_file('config/application.yml')
|
158
|
+
return false unless config['lims_api']
|
159
|
+
|
160
|
+
# fetch from the rest api and check if it exists
|
161
|
+
lims_api = Lab::Lims::ApiFactory.create_api
|
162
|
+
lims_api.verify_tracking_number(accession_number).present?
|
163
|
+
end
|
164
|
+
|
144
165
|
##
|
145
166
|
# Attach the requesting clinician to an order
|
146
167
|
def add_requesting_clinician(order, params)
|
data/config/routes.rb
CHANGED
data/lib/lab/version.rb
CHANGED
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.29
|
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: 2023-
|
11
|
+
date: 2023-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: couchrest
|