his_emr_api_lab 2.4.6 → 2.4.8.pre.alpha
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 +4 -4
- data/app/controllers/lab/orders_controller.rb +2 -1
- data/app/controllers/lab/tests_controller.rb +1 -1
- data/app/controllers/lab/users_controller.rb +6 -0
- data/app/services/lab/orders_service.rb +11 -4
- data/app/services/lab/tests_service.rb +1 -1
- data/lib/lab/version.rb +1 -1
- metadata +31 -45
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c976558db9507288b37c309d50e9b45ccb70b9848483c86c980e605906464823
|
|
4
|
+
data.tar.gz: 88223e508a7f67c51afa7c40f6b2fb2d758c9afe868c32e8a56dd44b567db8f9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 357768b64d3e2bd5308e71816b7e38f17883a504376a41275bd609f06d66d5ec21fa51ff9ce0734a6abce99b1aeb103dec484a87623e45f1a61e9bcac76a4c3e
|
|
7
|
+
data.tar.gz: 7e27bf14bc5ece4ab4a4a55145d8ec3492c7b677f7bfd40530fb978cd40492b72579ccea8c4023fd64cc3976d949ddc37993af8195cbdfcbd90f25a0ecc87bdd
|
|
@@ -95,7 +95,8 @@ module Lab
|
|
|
95
95
|
end_date = params[:end_date].present? ? params[:end_date].to_date.end_of_day : 24.hours.ago.end_of_day
|
|
96
96
|
concept_id = params[:concept_id]
|
|
97
97
|
include_data = params[:include_data]
|
|
98
|
-
|
|
98
|
+
location_id = params[:location_id]
|
|
99
|
+
orders = OrdersService.lab_orders(start_date, end_date, concept_id, include_data: include_data, location_id: location_id)
|
|
99
100
|
render json: orders, status: :ok
|
|
100
101
|
end
|
|
101
102
|
|
|
@@ -10,7 +10,7 @@ module Lab
|
|
|
10
10
|
|
|
11
11
|
# Add a specimen to an existing order
|
|
12
12
|
def create
|
|
13
|
-
test_params = params.
|
|
13
|
+
test_params = params.permit(:order_id, :date, tests: %i[concept_id concept])
|
|
14
14
|
order_id, test_concepts = test_params.require(%i[order_id tests])
|
|
15
15
|
date = test_params[:date] || Date.today
|
|
16
16
|
|
|
@@ -8,6 +8,12 @@ module Lab
|
|
|
8
8
|
# create a LIMS User that will be responsible for sending lab results
|
|
9
9
|
def create
|
|
10
10
|
user_params = params.permit(:username, :password)
|
|
11
|
+
begin
|
|
12
|
+
User.current = Lab::Lims::Utils.lab_user
|
|
13
|
+
Location.current = User.current.location
|
|
14
|
+
rescue StandardError => e
|
|
15
|
+
Rails.logger.error("Failed to set current location: #{e.message}")
|
|
16
|
+
end
|
|
11
17
|
service.create_lims_user(username: user_params['username'], password: user_params['password'])
|
|
12
18
|
render json: { message: 'User successfully created' }, status: 200
|
|
13
19
|
end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative 'order_location_resolver'
|
|
4
|
+
require_relative 'lims/exceptions'
|
|
4
5
|
|
|
5
6
|
module Lab
|
|
6
7
|
##
|
|
@@ -240,16 +241,18 @@ module Lab
|
|
|
240
241
|
Lab::Lims::PullWorker.new(nil).process_order(order_dto)
|
|
241
242
|
end
|
|
242
243
|
|
|
243
|
-
def lab_orders(start_date, end_date, concept_id = nil, include_data: false)
|
|
244
|
-
tests = Lab::LabTest.where('date_created >= ? AND date_created <= ?', start_date, end_date)
|
|
244
|
+
def lab_orders(start_date, end_date, concept_id = nil, include_data: false, location_id: nil)
|
|
245
|
+
tests = Lab::LabTest.unscoped.where('date_created >= ? AND date_created <= ?', start_date, end_date)
|
|
246
|
+
tests = tests.where(voided: false, concept: ConceptName.where(name: Lab::Metadata::TEST_TYPE_CONCEPT_NAME))
|
|
245
247
|
tests = tests.where(value_coded: concept_id) if concept_id
|
|
248
|
+
tests = tests.where(location_id: location_id) if location_id
|
|
246
249
|
orders = Lab::LabOrder.where(order_id: tests.pluck(:order_id))
|
|
247
250
|
data = {
|
|
248
251
|
count: orders.count,
|
|
249
252
|
last_order_date: Lab::LabOrder.last&.start_date&.to_date,
|
|
250
253
|
lab_orders: []
|
|
251
254
|
}
|
|
252
|
-
if include_data
|
|
255
|
+
if (include_data.present? && include_data == 'true')
|
|
253
256
|
data[:lab_orders] = orders.map do |order|
|
|
254
257
|
Lab::LabOrderSerializer.serialize_order(
|
|
255
258
|
order, requesting_clinician: order.requesting_clinician,
|
|
@@ -374,7 +377,11 @@ module Lab
|
|
|
374
377
|
end
|
|
375
378
|
|
|
376
379
|
def nlims_accession_number_exists?(accession_number)
|
|
377
|
-
config
|
|
380
|
+
# No config file means NLIMS is not configured, same as no lims_api entry.
|
|
381
|
+
config_path = Rails.root.join('config', 'application.yml')
|
|
382
|
+
return false unless File.exist?(config_path)
|
|
383
|
+
|
|
384
|
+
config = YAML.load_file(config_path)
|
|
378
385
|
return false unless config['lims_api']
|
|
379
386
|
|
|
380
387
|
# fetch from the rest api and check if it exists
|
|
@@ -15,7 +15,7 @@ module Lab
|
|
|
15
15
|
Lab::UpdatePatientOrdersJob.perform_later(patient_id) if patient_id
|
|
16
16
|
|
|
17
17
|
tests = filter_tests(tests, test_type_id: filters.delete(:test_type_id),
|
|
18
|
-
patient_id
|
|
18
|
+
patient_id:,
|
|
19
19
|
patient: filters.delete(:patient))
|
|
20
20
|
|
|
21
21
|
tests = filter_tests_by_results(tests) if %w[1 true].include?(filters[:pending_results]&.downcase)
|
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: 2.4.
|
|
4
|
+
version: 2.4.8.pre.alpha
|
|
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-
|
|
11
|
+
date: 2026-10-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: couchrest
|
|
@@ -52,6 +52,20 @@ dependencies:
|
|
|
52
52
|
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: 7.0.6
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rest-client
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: 2.1.0
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: 2.1.0
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: socket.io-client-simple
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -109,35 +123,35 @@ dependencies:
|
|
|
109
123
|
- !ruby/object:Gem::Version
|
|
110
124
|
version: 2.16.0
|
|
111
125
|
- !ruby/object:Gem::Dependency
|
|
112
|
-
name:
|
|
126
|
+
name: mysql2
|
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
|
114
128
|
requirements:
|
|
115
129
|
- - "~>"
|
|
116
130
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: 5.
|
|
131
|
+
version: 0.5.7
|
|
118
132
|
type: :development
|
|
119
133
|
prerelease: false
|
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
135
|
requirements:
|
|
122
136
|
- - "~>"
|
|
123
137
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: 5.
|
|
138
|
+
version: 0.5.7
|
|
125
139
|
- !ruby/object:Gem::Dependency
|
|
126
|
-
name:
|
|
140
|
+
name: rspec-rails
|
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
|
128
142
|
requirements:
|
|
129
143
|
- - "~>"
|
|
130
144
|
- !ruby/object:Gem::Version
|
|
131
|
-
version:
|
|
145
|
+
version: 5.0.0
|
|
132
146
|
type: :development
|
|
133
147
|
prerelease: false
|
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
149
|
requirements:
|
|
136
150
|
- - "~>"
|
|
137
151
|
- !ruby/object:Gem::Version
|
|
138
|
-
version:
|
|
152
|
+
version: 5.0.0
|
|
139
153
|
- !ruby/object:Gem::Dependency
|
|
140
|
-
name: rswag-
|
|
154
|
+
name: rswag-api
|
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
|
142
156
|
requirements:
|
|
143
157
|
- - "~>"
|
|
@@ -151,7 +165,7 @@ dependencies:
|
|
|
151
165
|
- !ruby/object:Gem::Version
|
|
152
166
|
version: 2.5.1
|
|
153
167
|
- !ruby/object:Gem::Dependency
|
|
154
|
-
name: rswag-
|
|
168
|
+
name: rswag-specs
|
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
|
156
170
|
requirements:
|
|
157
171
|
- - "~>"
|
|
@@ -165,61 +179,33 @@ dependencies:
|
|
|
165
179
|
- !ruby/object:Gem::Version
|
|
166
180
|
version: 2.5.1
|
|
167
181
|
- !ruby/object:Gem::Dependency
|
|
168
|
-
name:
|
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
|
170
|
-
requirements:
|
|
171
|
-
- - "~>"
|
|
172
|
-
- !ruby/object:Gem::Version
|
|
173
|
-
version: 0.79.0
|
|
174
|
-
type: :development
|
|
175
|
-
prerelease: false
|
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
-
requirements:
|
|
178
|
-
- - "~>"
|
|
179
|
-
- !ruby/object:Gem::Version
|
|
180
|
-
version: 0.79.0
|
|
181
|
-
- !ruby/object:Gem::Dependency
|
|
182
|
-
name: rubocop-rspec
|
|
182
|
+
name: rswag-ui
|
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
|
184
184
|
requirements:
|
|
185
185
|
- - "~>"
|
|
186
186
|
- !ruby/object:Gem::Version
|
|
187
|
-
version:
|
|
187
|
+
version: 2.5.1
|
|
188
188
|
type: :development
|
|
189
189
|
prerelease: false
|
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
191
191
|
requirements:
|
|
192
192
|
- - "~>"
|
|
193
193
|
- !ruby/object:Gem::Version
|
|
194
|
-
version:
|
|
194
|
+
version: 2.5.1
|
|
195
195
|
- !ruby/object:Gem::Dependency
|
|
196
196
|
name: shoulda-matchers
|
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
|
198
198
|
requirements:
|
|
199
199
|
- - "~>"
|
|
200
200
|
- !ruby/object:Gem::Version
|
|
201
|
-
version:
|
|
201
|
+
version: '5.3'
|
|
202
202
|
type: :development
|
|
203
203
|
prerelease: false
|
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
|
205
205
|
requirements:
|
|
206
206
|
- - "~>"
|
|
207
207
|
- !ruby/object:Gem::Version
|
|
208
|
-
version:
|
|
209
|
-
- !ruby/object:Gem::Dependency
|
|
210
|
-
name: sqlite3
|
|
211
|
-
requirement: !ruby/object:Gem::Requirement
|
|
212
|
-
requirements:
|
|
213
|
-
- - "~>"
|
|
214
|
-
- !ruby/object:Gem::Version
|
|
215
|
-
version: 1.4.0
|
|
216
|
-
type: :development
|
|
217
|
-
prerelease: false
|
|
218
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
219
|
-
requirements:
|
|
220
|
-
- - "~>"
|
|
221
|
-
- !ruby/object:Gem::Version
|
|
222
|
-
version: 1.4.0
|
|
208
|
+
version: '5.3'
|
|
223
209
|
description: |
|
|
224
210
|
This adds a lab interface to the OpenMRS compatible core API provided by
|
|
225
211
|
[HIS-EMR-API](https://github.com/EGPAFMalawiHIS/HIS-EMR-API).
|
|
@@ -342,9 +328,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
342
328
|
version: '0'
|
|
343
329
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
344
330
|
requirements:
|
|
345
|
-
- - "
|
|
331
|
+
- - ">"
|
|
346
332
|
- !ruby/object:Gem::Version
|
|
347
|
-
version:
|
|
333
|
+
version: 1.3.1
|
|
348
334
|
requirements: []
|
|
349
335
|
rubygems_version: 3.4.1
|
|
350
336
|
signing_key:
|