allscripts_unity_client 3.2.2 → 3.3.0
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/lib/allscripts_unity_client/client.rb +34 -4
- data/lib/allscripts_unity_client/version.rb +1 -1
- data/spec/client_spec.rb +61 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 318d72c20fb76dddb339df2816c74e13ff94e212
|
4
|
+
data.tar.gz: cf380ce84440281cb5474214fea46b24b43705f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 296d617eead2d1cc0e638ae8ea4247bf6f4c4d0bb033ebc4c551dff6d84f8040d118f7990bbf26686c2c4b41c367a1efd9aafe2f5f3a822b31a98ec656a1fe59
|
7
|
+
data.tar.gz: 630a7653aaf3f9d99ba477bdf275e31581a177ed6995bdd90fa6388f556a20911a4a21ecfb9f1002fef88ae0163461ceb0895d3a611eba7ae314db1db9dae382
|
@@ -147,7 +147,7 @@ module AllscriptsUnityClient
|
|
147
147
|
action: 'GetClinicalSummary',
|
148
148
|
userid: userid,
|
149
149
|
patientid: patientid,
|
150
|
-
parameter3: extra_med_data
|
150
|
+
parameter3: unity_true_or_blank_parameter(extra_med_data)
|
151
151
|
}
|
152
152
|
response = magic(magic_parameters)
|
153
153
|
|
@@ -246,7 +246,7 @@ module AllscriptsUnityClient
|
|
246
246
|
parameter1: encounter_type,
|
247
247
|
parameter2: when_param,
|
248
248
|
parameter3: nostradamus,
|
249
|
-
parameter4: show_past_flag
|
249
|
+
parameter4: unity_boolean_parameter(show_past_flag),
|
250
250
|
parameter5: billing_provider_user_name,
|
251
251
|
# According to the developer guide this parameter is no longer
|
252
252
|
# used.
|
@@ -393,8 +393,21 @@ module AllscriptsUnityClient
|
|
393
393
|
raise NotImplementedError, 'GetPatientLocations magic action not implemented'
|
394
394
|
end
|
395
395
|
|
396
|
-
def get_patient_pharmacies
|
397
|
-
|
396
|
+
def get_patient_pharmacies(patient_id, limit_to_favorites = false)
|
397
|
+
response = magic(
|
398
|
+
action: 'GetPatientPharmacies',
|
399
|
+
patientid: patient_id,
|
400
|
+
parameter1: unity_boolean_parameter(limit_to_favorites)
|
401
|
+
)
|
402
|
+
|
403
|
+
# When the patient has only ever used one pharmacy, Unity does
|
404
|
+
# not return a collection of one. Rather, it returns the sole
|
405
|
+
# pharmacy as a Hash.
|
406
|
+
if response.is_a?(Array)
|
407
|
+
response
|
408
|
+
else
|
409
|
+
[response]
|
410
|
+
end
|
398
411
|
end
|
399
412
|
|
400
413
|
def get_patient_problems(patientid, show_by_encounter_flag = nil, assessed = nil, encounter_id = nil, medcin_id = nil)
|
@@ -818,6 +831,23 @@ module AllscriptsUnityClient
|
|
818
831
|
|
819
832
|
private
|
820
833
|
|
834
|
+
# Truthy values, with the exception to the string "N", will be
|
835
|
+
# converted to the string "Y". Falsy values and the string "N"
|
836
|
+
# will be converted to the string "N".
|
837
|
+
def unity_boolean_parameter(native_value)
|
838
|
+
if native_value && native_value != 'N'
|
839
|
+
'Y'
|
840
|
+
else
|
841
|
+
'N'
|
842
|
+
end
|
843
|
+
end
|
844
|
+
|
845
|
+
# Truthy values will converted to the string "Y". Falsy values
|
846
|
+
# will be converted to nil.
|
847
|
+
def unity_true_or_blank_parameter(native_value)
|
848
|
+
native_value ? 'Y' : nil
|
849
|
+
end
|
850
|
+
|
821
851
|
def nokogiri_to_string(builder)
|
822
852
|
builder.to_xml(save_with: Nokogiri::XML::Node::SaveOptions::AS_XML | Nokogiri::XML::Node::SaveOptions::NO_DECLARATION).strip
|
823
853
|
end
|
data/spec/client_spec.rb
CHANGED
@@ -184,7 +184,67 @@ describe AllscriptsUnityClient::Client do
|
|
184
184
|
end
|
185
185
|
|
186
186
|
describe '#get_patient_pharmacies' do
|
187
|
-
|
187
|
+
let(:patient_pharmacy) do
|
188
|
+
{
|
189
|
+
:phone => "(608) 555-5555",
|
190
|
+
:supports_epcs => "N",
|
191
|
+
:city => "MADISON",
|
192
|
+
:pharm_id => "1234",
|
193
|
+
:address2 => " ",
|
194
|
+
:fax => "(608) 555-5556",
|
195
|
+
:description => "1234 STATE ST, MADISON, WI 537061234, \nPh: 608-555-5555",
|
196
|
+
:type => "R",
|
197
|
+
:state => "WI",
|
198
|
+
:zip => "537041234 ",
|
199
|
+
:name => "WALGREENS-1234 STATE ST",
|
200
|
+
:address1 => "1234 STATE ST"
|
201
|
+
}
|
202
|
+
end
|
203
|
+
|
204
|
+
let(:patient_id) { '1234' }
|
205
|
+
|
206
|
+
let(:driver) { double('Driver') }
|
207
|
+
let(:client) { AllscriptsUnityClient::Client.new(driver) }
|
208
|
+
|
209
|
+
it 'returns an Array when Unity returns a Hash' do
|
210
|
+
allow(driver).
|
211
|
+
to receive(:magic).
|
212
|
+
with(action: 'GetPatientPharmacies',
|
213
|
+
patientid: patient_id,
|
214
|
+
parameter1: 'N') { patient_pharmacy }
|
215
|
+
|
216
|
+
expect(client.get_patient_pharmacies(patient_id)).to eq([patient_pharmacy])
|
217
|
+
end
|
218
|
+
|
219
|
+
it 'preserves Arrays returned by Unity' do
|
220
|
+
allow(driver).
|
221
|
+
to receive(:magic).
|
222
|
+
with(action: 'GetPatientPharmacies',
|
223
|
+
patientid: patient_id,
|
224
|
+
parameter1: 'N') { [patient_pharmacy] }
|
225
|
+
|
226
|
+
expect(client.get_patient_pharmacies(patient_id)).to eq([patient_pharmacy])
|
227
|
+
end
|
228
|
+
|
229
|
+
it 'coerces truthy values in the second parameter to Unity true' do
|
230
|
+
expect(driver).
|
231
|
+
to receive(:magic).
|
232
|
+
with(action: 'GetPatientPharmacies',
|
233
|
+
patientid: patient_id,
|
234
|
+
parameter1: 'Y')
|
235
|
+
|
236
|
+
client.get_patient_pharmacies(patient_id, true)
|
237
|
+
end
|
238
|
+
|
239
|
+
it 'preserves Unity false values in the second parameter' do
|
240
|
+
expect(driver).
|
241
|
+
to receive(:magic).
|
242
|
+
with(action: 'GetPatientPharmacies',
|
243
|
+
patientid: patient_id,
|
244
|
+
parameter1: 'N')
|
245
|
+
|
246
|
+
client.get_patient_pharmacies(patient_id, 'N')
|
247
|
+
end
|
188
248
|
end
|
189
249
|
|
190
250
|
describe '#get_patient_problems'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: allscripts_unity_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- healthfinch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpclient
|
@@ -288,7 +288,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
288
288
|
version: '0'
|
289
289
|
requirements: []
|
290
290
|
rubyforge_project:
|
291
|
-
rubygems_version: 2.
|
291
|
+
rubygems_version: 2.4.6
|
292
292
|
signing_key:
|
293
293
|
specification_version: 4
|
294
294
|
summary: Allscripts Unity API client
|