Class: AllscriptsUnityClient::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/allscripts_unity_client/client.rb

Overview

Providers an interface to access Unity endpoints.

Build using a dependency injection pattern. A Client instances takes an instance of ClientDriver and delegates Unity endpoint methods to the ClientDriver.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client_driver) ⇒ Client

Constructor.

client_driver

An instance of a ClientDriver. Currently only SoapClientDriver and JsonClientDriver

are supported.

Raises:

  • (ArgumentError)


16
17
18
19
20
# File 'lib/allscripts_unity_client/client.rb', line 16

def initialize(client_driver)
  raise ArgumentError, 'client_driver can not be nil' if client_driver.nil?

  @client_driver = client_driver
end

Instance Attribute Details

#client_driverObject

Returns the value of attribute client_driver.



10
11
12
# File 'lib/allscripts_unity_client/client.rb', line 10

def client_driver
  @client_driver
end

Instance Method Details

#client_typeObject

Return the client type, either :json or :soap.



91
92
93
# File 'lib/allscripts_unity_client/client.rb', line 91

def client_type
  @client_driver.client_type
end

#commit_chargesObject

Raises:

  • (NotImplementedError)


95
96
97
# File 'lib/allscripts_unity_client/client.rb', line 95

def commit_charges
  raise NotImplementedError, 'CommitCharges magic action not implemented'
end

#echo(echo_text) ⇒ Object



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/allscripts_unity_client/client.rb', line 99

def echo(echo_text)
  magic_parameters = {
    action: 'Echo',
    userid: echo_text,
    appname: echo_text,
    patientid: echo_text,
    parameter1: echo_text,
    parameter2: echo_text,
    parameter3: echo_text,
    parameter4: echo_text,
    parameter5: echo_text,
    parameter6: echo_text
  }
  response = magic(magic_parameters)
  response[:userid]
end

#get_accountObject



116
117
118
119
120
121
# File 'lib/allscripts_unity_client/client.rb', line 116

def 
  magic_parameters = {
      action: 'GetAccount'
  }
  magic(magic_parameters)
end

#get_changed_patients(since = nil) ⇒ Object



123
124
125
126
127
128
129
# File 'lib/allscripts_unity_client/client.rb', line 123

def get_changed_patients(since = nil)
  magic_parameters = {
    action: 'GetChangedPatients',
    parameter1: since
  }
  magic(magic_parameters)
end

#get_charge_info_by_usernameObject

Raises:

  • (NotImplementedError)


131
132
133
# File 'lib/allscripts_unity_client/client.rb', line 131

def get_charge_info_by_username
  raise NotImplementedError, 'GetChargeInfoByUsername magic action not implemented'
end

#get_chargesObject

Raises:

  • (NotImplementedError)


135
136
137
# File 'lib/allscripts_unity_client/client.rb', line 135

def get_charges
  raise NotImplementedError, 'GetCharges magic action not implemented'
end

#get_chart_item_details(userid, patientid, section) ⇒ Object



139
140
141
142
143
144
145
146
147
# File 'lib/allscripts_unity_client/client.rb', line 139

def get_chart_item_details(userid, patientid, section)
  magic_parameters = {
    action: 'GetChartItemDetails',
    userid: userid,
    patientid: patientid,
    parameter1: section
  }
  magic(magic_parameters)
end

#get_clinical_summary(userid, patientid, extra_med_data = false, lookback_months = nil) ⇒ Object



149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# File 'lib/allscripts_unity_client/client.rb', line 149

def get_clinical_summary(userid, patientid, extra_med_data = false, lookback_months = nil)
  magic_parameters = {
    action: 'GetClinicalSummary',
    userid: userid,
    patientid: patientid,
    parameter3: unity_true_or_blank_parameter(extra_med_data),
  }

  magic_parameters.merge!(parameter4: lookback_months) if lookback_months

  response = magic(magic_parameters)

  unless response.is_a?(Array)
    response = [ response ]
  end

  response
end

#get_delegatesObject

Raises:

  • (NotImplementedError)


168
169
170
# File 'lib/allscripts_unity_client/client.rb', line 168

def get_delegates
  raise NotImplementedError, 'GetDelegates magic action not implemented'
end

#get_dictionary(dictionary_name, userid = nil, site = nil) ⇒ Object



172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
# File 'lib/allscripts_unity_client/client.rb', line 172

def get_dictionary(dictionary_name, userid = nil, site = nil)
  magic_parameters = {
    action: 'GetDictionary',
    userid: userid,
    parameter1: dictionary_name,
    parameter2: site
  }
  response = magic(magic_parameters)

  unless response.is_a?(Array)
    response = [ response ]
  end

  response
end

#get_dictionary_setsObject

Raises:

  • (NotImplementedError)


188
189
190
# File 'lib/allscripts_unity_client/client.rb', line 188

def get_dictionary_sets
  raise NotImplementedError, 'GetDictionarySets magic action not implemented'
end

#get_doc_templateObject

Raises:

  • (NotImplementedError)


192
193
194
# File 'lib/allscripts_unity_client/client.rb', line 192

def get_doc_template
  raise NotImplementedError, 'GetDocTemplate magic action not implemented'
end

#get_document_by_accessionObject

Raises:

  • (NotImplementedError)


196
197
198
# File 'lib/allscripts_unity_client/client.rb', line 196

def get_document_by_accession
  raise NotImplementedError, 'GetDocumentByAccession magic action not implemented'
end

#get_document_imageObject

Raises:

  • (NotImplementedError)


200
201
202
# File 'lib/allscripts_unity_client/client.rb', line 200

def get_document_image
  raise NotImplementedError, 'GetDocumentImage magic action not implemented'
end

#get_document_typeObject

Raises:

  • (NotImplementedError)


208
209
210
# File 'lib/allscripts_unity_client/client.rb', line 208

def get_document_type
  raise NotImplementedError, 'GetDocumentType magic action not implemented'
end

#get_documentsObject

Raises:

  • (NotImplementedError)


204
205
206
# File 'lib/allscripts_unity_client/client.rb', line 204

def get_documents
  raise NotImplementedError, 'GetDocuments magic action not implemented'
end

#get_durObject

Raises:

  • (NotImplementedError)


212
213
214
# File 'lib/allscripts_unity_client/client.rb', line 212

def get_dur
  raise NotImplementedError, 'GetDUR magic action not implemented'
end

#get_encounterObject

Raises:

  • (NotImplementedError)


216
217
218
# File 'lib/allscripts_unity_client/client.rb', line 216

def get_encounter
  raise NotImplementedError, 'GetEncounter magic action not implemented'
end

#get_encounter_dateObject

Raises:

  • (NotImplementedError)


220
221
222
# File 'lib/allscripts_unity_client/client.rb', line 220

def get_encounter_date
  raise NotImplementedError, 'GetEncounterDate magic action not implemented'
end

#get_encounter_list(userid, patientid, encounter_type = nil, when_param = nil, nostradamus = 0, show_past_flag = true, billing_provider_user_name = nil, show_all = false) ⇒ Array<Hash>

GetEncounterList helper method.

Parameters:

  • userid (Object)
  • patientid (Object)
  • encounter_type (String, nil) (defaults to: nil)

    encounter type to filter on. A value of nil filters nothing. Defaults to nil.

  • when_param (Object) (defaults to: nil)
  • nostradamus (Fixnum, nil) (defaults to: 0)

    how many days to look into the future. Defaults to 0.

  • show_past_flag (Object) (defaults to: true)

    whether to show previous encounters. All truthy values aside from the string "N" are considered to be true (or "Y") all other values are considered to be false (or "N"). Defaults to true.

  • billing_provider_user_name (Object) (defaults to: nil)

    filter by user name. Defaults to nil.

  • show_all (Object) (defaults to: false)

Returns:

  • (Array<Hash>)

    the filtered encounter list.



240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
# File 'lib/allscripts_unity_client/client.rb', line 240

def get_encounter_list(
    userid,
    patientid,
    encounter_type = nil,
    when_param = nil,
    nostradamus = 0,
    show_past_flag = true,
    billing_provider_user_name = nil,
    show_all = false)
  magic_parameters = {
    action: 'GetEncounterList',
    userid: userid,
    patientid: patientid,
    parameter1: encounter_type,
    parameter2: when_param,
    parameter3: nostradamus,
    parameter4: unity_boolean_parameter(show_past_flag),
    parameter5: billing_provider_user_name,
    # According to the developer guide this parameter is no longer
    # used.
    parameter6: show_all ? 'all' : nil
  }

  response = magic(magic_parameters)

  unless response.is_a?(Array)
    response = [ response ]
  end

  # Remove nil encounters
  response.delete_if do |value|
    value[:id] == '0' && value[:patientid] == '0'
  end
end

#get_hie_documentObject

Raises:

  • (NotImplementedError)


275
276
277
# File 'lib/allscripts_unity_client/client.rb', line 275

def get_hie_document
  raise NotImplementedError, 'GetHIEDocument magic action not implemented'
end

#get_last_patientObject

Raises:

  • (NotImplementedError)


279
280
281
# File 'lib/allscripts_unity_client/client.rb', line 279

def get_last_patient
  raise NotImplementedError, 'GetLastPatient magic action not implemented'
end

#get_list_of_dictionariesObject

Raises:

  • (NotImplementedError)


283
284
285
# File 'lib/allscripts_unity_client/client.rb', line 283

def get_list_of_dictionaries
  raise NotImplementedError, 'GetListOfDictionaries magic action not implemented'
end

#get_medication_by_trans_id(userid, patientid, transaction_id) ⇒ Array, Hash

Parameters:

  • userid (String)

    the Allscripts EHR username.

  • patient_id (Numeric, String)

    the Allscripts internal patient ID.

  • transaction_id (Numeric, String)

    the transaction ID of the RX in question. M prefix=medication, H prefix=historic medication.

Returns:

  • (Array)

    if transaction_id is either 0 or "0".

  • (Hash)

    if transaction_id is not 0 or "0".



298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
# File 'lib/allscripts_unity_client/client.rb', line 298

def get_medication_by_trans_id(userid, patientid, transaction_id)
  magic_parameters = {
    action: 'GetMedicationByTransID',
    userid: userid,
    patientid: patientid,
    parameter1: transaction_id
  }
  result = magic(magic_parameters)

  if transaction_id == 0 || transaction_id == '0'
    # When transaction_id is 0 all medications should be
    # returned and the result should always be an array.
    if !result.is_a?(Array) && !result.empty?
      result = [ result ]
    elsif result.empty?
      result = []
    end
  end

  result
end

#get_medication_info(userid, ddid, patientid = nil) ⇒ Object

Parameters:

  • userid (String)

    the Allscripts EHR username.

  • ddid (String)

    the numeric drug identifier.

  • patientid (String) (defaults to: nil)

    the Allscripts internal patient ID.

Returns:

  • (Object)


327
328
329
330
331
332
333
334
335
# File 'lib/allscripts_unity_client/client.rb', line 327

def get_medication_info(userid, ddid, patientid = nil)
  magic_parameters = {
    action: 'GetMedicationInfo',
    userid: userid,
    patientid: patientid,
    parameter1: ddid
  }
  magic(magic_parameters)
end

#get_order_historyObject

Raises:

  • (NotImplementedError)


337
338
339
# File 'lib/allscripts_unity_client/client.rb', line 337

def get_order_history
  raise NotImplementedError, 'GetOrderHistory magic action not implemented'
end

#get_organization_idObject

Raises:

  • (NotImplementedError)


341
342
343
# File 'lib/allscripts_unity_client/client.rb', line 341

def get_organization_id
  raise NotImplementedError, 'GetOrganizationID magic action not implemented'
end

#get_packagesObject

Raises:

  • (NotImplementedError)


345
346
347
# File 'lib/allscripts_unity_client/client.rb', line 345

def get_packages
  raise NotImplementedError, 'GetPackages magic action not implemented'
end

#get_patient(userid, patientid, includepix = nil) ⇒ Object



349
350
351
352
353
354
355
356
357
# File 'lib/allscripts_unity_client/client.rb', line 349

def get_patient(userid, patientid, includepix = nil)
  magic_parameters = {
    action: 'GetPatient',
    userid: userid,
    patientid: patientid,
    parameter1: includepix
  }
  magic(magic_parameters)
end

#get_patient_activity(userid, patientid) ⇒ Object



359
360
361
362
363
364
365
366
# File 'lib/allscripts_unity_client/client.rb', line 359

def get_patient_activity(userid, patientid)
  magic_parameters = {
    action: 'GetPatientActivity',
    userid: userid,
    patientid: patientid
  }
  magic(magic_parameters)
end

#get_patient_by_mrn(userid, mrn) ⇒ Object



368
369
370
371
372
373
374
375
# File 'lib/allscripts_unity_client/client.rb', line 368

def get_patient_by_mrn(userid, mrn)
  magic_parameters = {
    action: 'GetPatientByMRN',
    userid: userid,
    parameter1: mrn
  }
  magic(magic_parameters)
end

#get_patient_cdaObject

Raises:

  • (NotImplementedError)


377
378
379
# File 'lib/allscripts_unity_client/client.rb', line 377

def get_patient_cda
  raise NotImplementedError, 'GetPatientCDA magic action not implemented'
end

#get_patient_diagnosis(userid, patientid, encounter_date = nil, encounter_type = nil, encounter_date_range = nil, encounter_id = nil) ⇒ Object



381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
# File 'lib/allscripts_unity_client/client.rb', line 381

def get_patient_diagnosis(userid, patientid, encounter_date = nil, encounter_type = nil, encounter_date_range = nil, encounter_id = nil)
  magic_params = {
    action: 'GetPatientDiagnosis',
    userid: userid,
    patientid: patientid,
    parameter1: encounter_date,
    parameter2: encounter_type,
    parameter3: encounter_date_range,
    parameter4: encounter_id
  }

  results = magic(magic_params)

  if !results.is_a? Array
    if results.empty?
      results = []
    else
      results = [results]
    end
  end

  results
end

#get_patient_fullObject

Raises:

  • (NotImplementedError)


405
406
407
# File 'lib/allscripts_unity_client/client.rb', line 405

def get_patient_full
  raise NotImplementedError, 'GetPatientFull magic action not implemented'
end

#get_patient_idsObject

Raises:

  • (NotImplementedError)


409
410
411
# File 'lib/allscripts_unity_client/client.rb', line 409

def get_patient_ids
  raise NotImplementedError, 'GetPatientIDs magic action not implemented'
end

#get_patient_listObject

Raises:

  • (NotImplementedError)


413
414
415
# File 'lib/allscripts_unity_client/client.rb', line 413

def get_patient_list
  raise NotImplementedError, 'GetPatientList magic action not implemented'
end

#get_patient_locationsObject

Raises:

  • (NotImplementedError)


417
418
419
# File 'lib/allscripts_unity_client/client.rb', line 417

def get_patient_locations
  raise NotImplementedError, 'GetPatientLocations magic action not implemented'
end

#get_patient_pharmacies(patient_id, limit_to_favorites = false) ⇒ Object



421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
# File 'lib/allscripts_unity_client/client.rb', line 421

def get_patient_pharmacies(patient_id, limit_to_favorites = false)
  response = magic(
    action: 'GetPatientPharmacies',
    patientid: patient_id,
    parameter1: unity_boolean_parameter(limit_to_favorites)
  )

  # When the patient has only ever used one pharmacy, Unity does
  # not return a collection of one. Rather, it returns the sole
  # pharmacy as a Hash.
  if response.is_a?(Array)
    response
  else
    [response]
  end
end

#get_patient_problems(patientid, show_by_encounter_flag = nil, assessed = nil, encounter_id = nil, medcin_id = nil) ⇒ Object



438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
# File 'lib/allscripts_unity_client/client.rb', line 438

def get_patient_problems(patientid, show_by_encounter_flag = nil, assessed = nil, encounter_id = nil, medcin_id = nil)
  magic_parameters = {
    action: 'GetPatientProblems',
    patientid: patientid,
    parameter1: show_by_encounter_flag,
    parameter2: assessed,
    parameter3: encounter_id,
    parameter4: medcin_id
  }
  response = magic(magic_parameters)

  unless response.is_a?(Array)
    response = [ response ]
  end

  response
end

#get_patient_sectionsObject

Raises:

  • (NotImplementedError)


466
467
468
# File 'lib/allscripts_unity_client/client.rb', line 466

def get_patient_sections
  raise NotImplementedError, 'GetPatientSections magic action not implemented'
end

#get_patients_by_icd9(icd9, start = nil, end_param = nil) ⇒ Object



456
457
458
459
460
461
462
463
464
# File 'lib/allscripts_unity_client/client.rb', line 456

def get_patients_by_icd9(icd9, start = nil, end_param = nil)
  magic_parameters = {
    action: 'GetPatientsByICD9',
    parameter1: icd9,
    parameter2: start,
    parameter3: end_param
  }
  magic(magic_parameters)
end

#get_proceduresObject

Raises:

  • (NotImplementedError)


470
471
472
# File 'lib/allscripts_unity_client/client.rb', line 470

def get_procedures
  raise NotImplementedError, 'GetProcedures magic action not implemented'
end

#get_provider(provider_id = nil, user_name = nil) ⇒ Object



474
475
476
477
478
479
480
481
482
483
484
485
# File 'lib/allscripts_unity_client/client.rb', line 474

def get_provider(provider_id = nil, user_name = nil)
  if provider_id.nil? && user_name.nil?
    raise ArgumentError, 'provider_id or user_name must be given'
  end

  magic_parameters = {
    action: 'GetProvider',
    parameter1: provider_id,
    parameter2: user_name
  }
  magic(magic_parameters)
end

#get_providers(security_filter = nil, name_filter = nil) ⇒ Object



487
488
489
490
491
492
493
494
495
496
497
498
499
500
# File 'lib/allscripts_unity_client/client.rb', line 487

def get_providers(security_filter = nil, name_filter = nil)
  magic_parameters = {
    action: 'GetProviders',
    parameter1: security_filter,
    parameter2: name_filter
  }
  response = magic(magic_parameters)

  unless response.is_a?(Array)
    response = [ response ]
  end

  response
end

#get_ref_providers_by_specialtyObject

Raises:

  • (NotImplementedError)


502
503
504
# File 'lib/allscripts_unity_client/client.rb', line 502

def get_ref_providers_by_specialty
  raise NotImplementedError, 'GetRefProvidersBySpecialty magic action not implemented'
end

#get_rounding_list_entriesObject

Raises:

  • (NotImplementedError)


506
507
508
# File 'lib/allscripts_unity_client/client.rb', line 506

def get_rounding_list_entries
  raise NotImplementedError, 'GetRoundingListEntries magic action not implemented'
end

#get_rounding_listsObject

Raises:

  • (NotImplementedError)


510
511
512
# File 'lib/allscripts_unity_client/client.rb', line 510

def get_rounding_lists
  raise NotImplementedError, 'GetRoundingLists magic action not implemented'
end

#get_rx_favsObject

Raises:

  • (NotImplementedError)


514
515
516
# File 'lib/allscripts_unity_client/client.rb', line 514

def get_rx_favs
  raise NotImplementedError, 'GetRXFavs magic action not implemented'
end

#get_scheduleObject

Raises:

  • (NotImplementedError)


518
519
520
# File 'lib/allscripts_unity_client/client.rb', line 518

def get_schedule
  raise NotImplementedError, 'GetSchedule magic action not implemented'
end

#get_security_token!(parameters = {}) ⇒ Object

Implement Unity's GetSecurityToken endpoint.

Stores the results in @security_token.

parameters

A hash of Unity parameters for GetSecurityToken:

{ :username => ..., :password => ..., :appname => ... }

Returns the security token.



64
65
66
# File 'lib/allscripts_unity_client/client.rb', line 64

def get_security_token!(parameters = {})
  @client_driver.get_security_token!(parameters)
end

#get_server_infoObject



522
523
524
525
526
527
# File 'lib/allscripts_unity_client/client.rb', line 522

def get_server_info
  magic_parameters = {
    action: 'GetServerInfo'
  }
  magic(magic_parameters)
end

#get_sigsObject

Raises:

  • (NotImplementedError)


529
530
531
# File 'lib/allscripts_unity_client/client.rb', line 529

def get_sigs
  raise NotImplementedError, 'GetSigs magic action not implemented'
end

#get_task(userid, transaction_id) ⇒ Object



533
534
535
536
537
538
539
540
# File 'lib/allscripts_unity_client/client.rb', line 533

def get_task(userid, transaction_id)
  magic_parameters = {
    action: 'GetTask',
    userid: userid,
    parameter1: transaction_id
  }
  magic(magic_parameters)
end

#get_task_list(userid = nil, since = nil, delegated = nil, task_types = nil, task_statuses = nil) ⇒ Object

delegated is an undocumented parameter



543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
# File 'lib/allscripts_unity_client/client.rb', line 543

def get_task_list(userid = nil, since = nil, delegated = nil, task_types = nil, task_statuses = nil)
  magic_parameters = {
    action: 'GetTaskList',
    userid: userid,
    parameter1: since,
    parameter2: task_types,
    parameter3: task_statuses,
    parameter4: delegated,
    parameter5: 0
  }
  response = magic(magic_parameters)

  unless response.is_a?(Array)
    response = [ response ]
  end

  response
end

#get_user_authenticationObject



562
563
564
# File 'lib/allscripts_unity_client/client.rb', line 562

def get_user_authentication
  @client_driver.get_user_authentication
end

#get_user_idObject

Raises:

  • (NotImplementedError)


566
567
568
# File 'lib/allscripts_unity_client/client.rb', line 566

def get_user_id
  raise NotImplementedError, 'GetUserID magic action not implemented'
end

#get_user_securityObject

Raises:

  • (NotImplementedError)


570
571
572
# File 'lib/allscripts_unity_client/client.rb', line 570

def get_user_security
  raise NotImplementedError, 'GetUserSecurity magic action not implemented'
end

#get_vaccine_manufacturersObject

Raises:

  • (NotImplementedError)


574
575
576
# File 'lib/allscripts_unity_client/client.rb', line 574

def get_vaccine_manufacturers
  raise NotImplementedError, 'GetVaccineManufacturers magic action not implemented'
end

#get_vitalsObject

Raises:

  • (NotImplementedError)


578
579
580
# File 'lib/allscripts_unity_client/client.rb', line 578

def get_vitals
  raise NotImplementedError, 'GetVitals magic action not implemented'
end

#last_logsObject



582
583
584
585
586
587
# File 'lib/allscripts_unity_client/client.rb', line 582

def last_logs
  magic_parameters = {
    action: 'LastLogs'
  }
  magic(magic_parameters)
end

#magic(parameters = {}) ⇒ Object

Implement Unity's Magic endpoint

parameters

A Hash of Unity parameters. Takes this form:

{ :action => ..., :userid => ..., :appname => ..., :patientid => ..., :token => ..., :parameter1 => ..., :parameter2 => ..., :parameter3 => ..., :parameter4 => ..., :parameter5 => ..., :parameter6 => ..., :data => ... }

Returns the result of the Magic endpoint as a Hash.



47
48
49
# File 'lib/allscripts_unity_client/client.rb', line 47

def magic(parameters = {})
  @client_driver.magic(**parameters)
end

#make_taskObject

Raises:

  • (NotImplementedError)


589
590
591
# File 'lib/allscripts_unity_client/client.rb', line 589

def make_task
  raise NotImplementedError, 'MakeTask magic action not implemented'
end

#optionsObject

Access client's options. See ClientOptions.



23
24
25
# File 'lib/allscripts_unity_client/client.rb', line 23

def options
  @client_driver.options
end

#retire_security_token!(parameters = {}) ⇒ Object

Implement Unity's RetireSecurityToken endpoint using Savon.

parameters

A hash of Unity parameters for RetireSecurityToken. If not given then defaults to

@security_token:

{
:token => ...,
:appname => ...
}


81
82
83
# File 'lib/allscripts_unity_client/client.rb', line 81

def retire_security_token!(parameters = {})
  @client_driver.retire_security_token!(parameters)
end

#save_admin_taskObject

Raises:

  • (NotImplementedError)


593
594
595
# File 'lib/allscripts_unity_client/client.rb', line 593

def save_admin_task
  raise NotImplementedError, 'SaveAdminTask magic action not implemented'
end

#save_allergyObject

Raises:

  • (NotImplementedError)


597
598
599
# File 'lib/allscripts_unity_client/client.rb', line 597

def save_allergy
  raise NotImplementedError, 'SaveAllergy magic action not implemented'
end

#save_cedObject

Raises:

  • (NotImplementedError)


601
602
603
# File 'lib/allscripts_unity_client/client.rb', line 601

def save_ced
  raise NotImplementedError, 'SaveCED magic action not implemented'
end

#save_chargeObject

Raises:

  • (NotImplementedError)


605
606
607
# File 'lib/allscripts_unity_client/client.rb', line 605

def save_charge
  raise NotImplementedError, 'SaveCharge magic action not implemented'
end

#save_chart_view_auditObject

Raises:

  • (NotImplementedError)


609
610
611
# File 'lib/allscripts_unity_client/client.rb', line 609

def save_chart_view_audit
  raise NotImplementedError, 'SaveChartViewAudit magic action not implemented'
end

#save_diagnosisObject

Raises:

  • (NotImplementedError)


613
614
615
# File 'lib/allscripts_unity_client/client.rb', line 613

def save_diagnosis
  raise NotImplementedError, 'SaveDiagnosis magic action not implemented'
end

#save_document_imageObject

Raises:

  • (NotImplementedError)


617
618
619
# File 'lib/allscripts_unity_client/client.rb', line 617

def save_document_image
  raise NotImplementedError, 'SaveDocumentImage magic action not implemented'
end

#save_er_noteObject

Raises:

  • (NotImplementedError)


621
622
623
# File 'lib/allscripts_unity_client/client.rb', line 621

def save_er_note
  raise NotImplementedError, 'SaveERNote magic action not implemented'
end

#save_hie_documentObject

Raises:

  • (NotImplementedError)


625
626
627
# File 'lib/allscripts_unity_client/client.rb', line 625

def save_hie_document
  raise NotImplementedError, 'SaveHIEDocument magic action not implemented'
end

#save_historyObject

Raises:

  • (NotImplementedError)


629
630
631
# File 'lib/allscripts_unity_client/client.rb', line 629

def save_history
  raise NotImplementedError, 'SaveHistory magic action not implemented'
end

#save_immunizationObject

Raises:

  • (NotImplementedError)


633
634
635
# File 'lib/allscripts_unity_client/client.rb', line 633

def save_immunization
  raise NotImplementedError, 'SaveImmunization magic action not implemented'
end

#save_noteObject

Raises:

  • (NotImplementedError)


637
638
639
# File 'lib/allscripts_unity_client/client.rb', line 637

def save_note
  raise NotImplementedError, 'SaveNote magic action not implemented'
end

#save_patientObject

Raises:

  • (NotImplementedError)


641
642
643
# File 'lib/allscripts_unity_client/client.rb', line 641

def save_patient
  raise NotImplementedError, 'SavePatient magic action not implemented'
end

#save_patient_locationObject

Raises:

  • (NotImplementedError)


645
646
647
# File 'lib/allscripts_unity_client/client.rb', line 645

def save_patient_location
  raise NotImplementedError, 'SavePatientLocation magic action not implemented'
end

#save_problemObject

Raises:

  • (NotImplementedError)


649
650
651
# File 'lib/allscripts_unity_client/client.rb', line 649

def save_problem
  raise NotImplementedError, 'SaveProblem magic action not implemented'
end

#save_problems_dataObject

Raises:

  • (NotImplementedError)


653
654
655
# File 'lib/allscripts_unity_client/client.rb', line 653

def save_problems_data
  raise NotImplementedError, 'SaveProblemsData magic action not implemented'
end

#save_ref_providerObject

Raises:

  • (NotImplementedError)


657
658
659
# File 'lib/allscripts_unity_client/client.rb', line 657

def save_ref_provider
  raise NotImplementedError, 'SaveRefProvider magic action not implemented'
end

#save_resultObject

Raises:

  • (NotImplementedError)


661
662
663
# File 'lib/allscripts_unity_client/client.rb', line 661

def save_result
  raise NotImplementedError, 'SaveResult magic action not implemented'
end

#save_rx(userid, patientid, rxxml) ⇒ Object



665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
# File 'lib/allscripts_unity_client/client.rb', line 665

def save_rx(userid, patientid, rxxml)
  # Generate XML structure for rxxml
  builder = Nokogiri::XML::Builder.new do |xml|
    xml.saverx {
      xml.field('name' => 'transid', 'value' => rxxml[:transid]) unless rxxml[:transid]
      xml.field('name' => 'PharmID', 'value' => rxxml[:pharmid]) unless rxxml[:pharmid]
      xml.field('name' => 'DDI', 'value' => rxxml[:ddi]) unless rxxml[:ddi]
      xml.field('name' => 'GPPCCode', 'value' => rxxml[:gppccode]) unless rxxml[:gppccode]
      xml.field('name' => 'GPPCText', 'value' => rxxml[:gppctext]) unless rxxml[:gppctext]
      xml.field('name' => 'GPPCCustom', 'value' => rxxml[:gppccustom]) unless rxxml[:gppccustom]
      xml.field('name' => 'Sig', 'value' => rxxml[:sig]) unless rxxml[:sig]
      xml.field('name' => 'QuanPresc', 'value' => rxxml[:quanpresc]) unless rxxml[:quanpresc]
      xml.field('name' => 'Refills', 'value' => rxxml[:refills]) unless rxxml[:refills]
      xml.field('name' => 'DAW', 'value' => rxxml[:daw]) unless rxxml[:daw]
      xml.field('name' => 'DaysSupply', 'value' => rxxml[:dayssupply]) unless rxxml[:dayssupply]
      xml.field('name' => 'startdate', 'value' => utc_to_local(Date.parse(rxxml[:startdate].to_s))) unless rxxml[:startdate]
      xml.field('name' => 'historicalflag', 'value' => rxxml[:historicalflag]) unless rxxml[:historicalflag]
      xml.field('name' => 'rxaction', 'value' => rxxml[:rxaction]) unless rxxml[:rxaction]
      xml.field('name' => 'delivery', 'value' => rxxml[:delivery]) unless rxxml[:delivery]
      xml.field('name' => 'ignorepharmzero', 'value' => rxxml[:ignorepharmzero]) unless rxxml[:ignorepharmzero]
      xml.field('name' => 'orderedbyid', 'value' => rxxml[:orderedbyid]) unless rxxml[:orderedbyid]
      xml.field('name' => 'newqty', 'value' => rxxml[:newqty]) unless rxxml[:newqty]
      xml.field('name' => 'newrefills', 'value' => rxxml[:newrefills]) unless rxxml[:newrefills]
      xml.field('name' => 'comments', 'value' => rxxml[:comments]) unless rxxml[:comments]
      xml.field('name' => 'orderstatus', 'value' => rxxml[:order_status]) unless rxxml[:order_status]

      if rxxml[:problems]
        rxxml[:problems].each do |problem|
          xml.field('name' => 'Problem', 'value' => problem)
        end
      end
    }
  end

  magic_parameters = {
    action: 'SaveRX',
    userid: userid,
    patientid: patientid,
    parameter1: nokogiri_to_string(builder)
  }
  magic(magic_parameters)
end

#save_simple_encounterObject

Raises:

  • (NotImplementedError)


708
709
710
# File 'lib/allscripts_unity_client/client.rb', line 708

def save_simple_encounter
  raise NotImplementedError, 'SaveSimpleEncounter magic action not implemented'
end

#save_simple_rxObject

Raises:

  • (NotImplementedError)


712
713
714
# File 'lib/allscripts_unity_client/client.rb', line 712

def save_simple_rx
  raise NotImplementedError, 'SaveSimpleRX magic action not implemented'
end

#save_specialistObject

Raises:

  • (NotImplementedError)


716
717
718
# File 'lib/allscripts_unity_client/client.rb', line 716

def save_specialist
  raise NotImplementedError, 'SaveSpecialist magic action not implemented'
end

#save_task(userid, patientid, task_type = nil, target_user = nil, work_object_id = nil, comments = nil) ⇒ Object



720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
# File 'lib/allscripts_unity_client/client.rb', line 720

def save_task(userid, patientid, task_type = nil, target_user = nil, work_object_id = nil, comments = nil)
  if task_type.nil? && target_user.nil? && work_object_id.nil? && comments.nil?
    raise ArgumentError, 'task_type, target_user, work_object_id, and comments can not all be nil'
  end

  magic_parameters = {
    action: 'SaveTask',
    userid: userid,
    patientid: patientid,
    parameter1: task_type,
    parameter2: target_user,
    parameter3: work_object_id,
    parameter4: comments
  }
  magic(magic_parameters)
end

#save_task_status(userid, transaction_id = nil, status = nil, delegate_id = nil, comment = nil, taskchanges = nil, patient_id = nil) ⇒ Object



737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
# File 'lib/allscripts_unity_client/client.rb', line 737

def save_task_status(userid, transaction_id = nil, status = nil, delegate_id = nil, comment = nil, taskchanges = nil, patient_id = nil)
  if transaction_id.nil? && delegate_id.nil? && comment.nil?
    raise ArgumentError, 'transaction_id, delegate_id, and comment can not all be nil'
  end

  # Generate XML structure for rxxml
  builder = Nokogiri::XML::Builder.new do |xml|
    xml.taskchanges {
      xml.refills('value' => taskchanges[:refills]) unless taskchanges.nil? || taskchanges[:refills].nil?
      xml.days('value' => taskchanges[:days]) unless taskchanges.nil? || taskchanges[:days].nil?
      xml.qty('value' => taskchanges[:qty]) unless taskchanges.nil? || taskchanges[:qty].nil?
      xml.tasktype('value' => taskchanges[:tasktype]) unless taskchanges.nil? || taskchanges[:tasktype].nil?
      xml.delegated('value' => taskchanges[:delegated]) unless taskchanges.nil? || taskchanges[:delegated].nil?
      xml.taskstatus('value' => taskchanges[:taskstatus]) unless taskchanges.nil? || taskchanges[:taskstatus].nil?
      xml.removereason('value' => taskchanges[:removereason]) unless taskchanges.nil? || taskchanges[:removereason].nil?
      xml.denyreason('value' => taskchanges[:denyreason]) unless taskchanges.nil? || taskchanges[:denyreason].nil?
    }
  end

  new_status =
    if taskchanges.nil?
      ""
    else
      nokogiri_to_string(builder)
    end

  magic_parameters = {
    action: 'SaveTaskStatus',
    userid: userid,
    parameter1: transaction_id,
    parameter2: status,
    parameter3: delegate_id,
    parameter4: comment,
    parameter6: new_status
  }

  if patient_id
    magic_parameters.update(patientid: patient_id)
  end

  magic(magic_parameters)
end

#save_tiffObject

Raises:

  • (NotImplementedError)


780
781
782
# File 'lib/allscripts_unity_client/client.rb', line 780

def save_tiff
  raise NotImplementedError, 'SaveTiff magic action not implemented'
end

#save_unstructured_documentObject

Raises:

  • (NotImplementedError)


784
785
786
# File 'lib/allscripts_unity_client/client.rb', line 784

def save_unstructured_document
  raise NotImplementedError, 'SaveUnstructuredDocument magic action not implemented'
end

#save_v10_doc_signatureObject

Raises:

  • (NotImplementedError)


788
789
790
# File 'lib/allscripts_unity_client/client.rb', line 788

def save_v10_doc_signature
  raise NotImplementedError, 'SaveV10DocSignature magic action not implemented'
end

#save_v11_noteObject

Raises:

  • (NotImplementedError)


792
793
794
# File 'lib/allscripts_unity_client/client.rb', line 792

def save_v11_note
  raise NotImplementedError, 'SaveV11Note magic action not implemented'
end

#save_vitalsObject

Raises:

  • (NotImplementedError)


796
797
798
# File 'lib/allscripts_unity_client/client.rb', line 796

def save_vitals
  raise NotImplementedError, 'SaveVitals magic action not implemented'
end

#save_vitals_dataObject

Raises:

  • (NotImplementedError)


800
801
802
# File 'lib/allscripts_unity_client/client.rb', line 800

def save_vitals_data
  raise NotImplementedError, 'SaveVitalsData magic action not implemented'
end

#search_charge_codesObject

Raises:

  • (NotImplementedError)


804
805
806
# File 'lib/allscripts_unity_client/client.rb', line 804

def search_charge_codes
  raise NotImplementedError, 'SearchChargeCodes magic action not implemented'
end

#search_diagnosis_codesObject

Raises:

  • (NotImplementedError)


808
809
810
# File 'lib/allscripts_unity_client/client.rb', line 808

def search_diagnosis_codes
  raise NotImplementedError, 'SearchDiagnosisCodes magic action not implemented'
end

#search_meds(userid, patientid, search = nil) ⇒ Object



812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
# File 'lib/allscripts_unity_client/client.rb', line 812

def search_meds(userid, patientid, search = nil)
  magic_parameters = {
    action: 'SearchMeds',
    userid: userid,
    patientid: patientid,
    parameter1: search
  }

  response = magic(magic_parameters)

  unless response.is_a?(Array)
    response = [ response ]
  end

  response
end

#search_patients(search) ⇒ Object



829
830
831
832
833
834
835
# File 'lib/allscripts_unity_client/client.rb', line 829

def search_patients(search)
  magic_parameters = {
    action: 'SearchPatients',
    parameter1: search
  }
  magic(magic_parameters)
end

#search_patients_rxhub5Object

Raises:

  • (NotImplementedError)


837
838
839
# File 'lib/allscripts_unity_client/client.rb', line 837

def search_patients_rxhub5
  raise NotImplementedError, 'SearchPatientsRXHub5 magic action not implemented'
end

#search_pharmacies(search) ⇒ Object



841
842
843
844
845
846
847
# File 'lib/allscripts_unity_client/client.rb', line 841

def search_pharmacies(search)
  magic_parameters = {
    action: 'SearchPharmacies',
    parameter1: search
  }
  magic(magic_parameters)
end

#search_problem_codesObject

Raises:

  • (NotImplementedError)


849
850
851
# File 'lib/allscripts_unity_client/client.rb', line 849

def search_problem_codes
  raise NotImplementedError, 'SearchProblemCodes magic action not implemented'
end

#security_token?Boolean

Return true if a Unity security token has been fetched and saved.

Returns:

  • (Boolean)


86
87
88
# File 'lib/allscripts_unity_client/client.rb', line 86

def security_token?
  @client_driver.security_token?
end

#set_security_token(token) ⇒ Object



68
69
70
# File 'lib/allscripts_unity_client/client.rb', line 68

def set_security_token(token)
  @client_driver.security_token = token
end

#update_encounterObject

Raises:

  • (NotImplementedError)


853
854
855
# File 'lib/allscripts_unity_client/client.rb', line 853

def update_encounter
  raise NotImplementedError, 'UpdateEncounter magic action not implemented'
end

#update_orderObject

Raises:

  • (NotImplementedError)


857
858
859
# File 'lib/allscripts_unity_client/client.rb', line 857

def update_order
  raise NotImplementedError, 'UpdateOrder magic action not implemented'
end

#update_referral_order_statusObject

Raises:

  • (NotImplementedError)


861
862
863
# File 'lib/allscripts_unity_client/client.rb', line 861

def update_referral_order_status
  raise NotImplementedError, 'UpdateReferralOrderStatus magic action not implemented'
end