his_emr_api_lab 1.1.27 → 1.1.29
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:
|
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
|