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) ⇒ Object



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

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

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

  response
end

#get_delegatesObject

Raises:

  • (NotImplementedError)


165
166
167
# File 'lib/allscripts_unity_client/client.rb', line 165

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

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



169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'lib/allscripts_unity_client/client.rb', line 169

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)


185
186
187
# File 'lib/allscripts_unity_client/client.rb', line 185

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

#get_doc_templateObject

Raises:

  • (NotImplementedError)


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

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

#get_document_by_accessionObject

Raises:

  • (NotImplementedError)


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

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

#get_document_imageObject

Raises:

  • (NotImplementedError)


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

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

#get_document_typeObject

Raises:

  • (NotImplementedError)


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

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

#get_documentsObject

Raises:

  • (NotImplementedError)


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

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

#get_durObject

Raises:

  • (NotImplementedError)


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

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

#get_encounterObject

Raises:

  • (NotImplementedError)


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

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

#get_encounter_dateObject

Raises:

  • (NotImplementedError)


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

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.



237
238
239
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
# File 'lib/allscripts_unity_client/client.rb', line 237

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)


272
273
274
# File 'lib/allscripts_unity_client/client.rb', line 272

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

#get_last_patientObject

Raises:

  • (NotImplementedError)


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

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

#get_list_of_dictionariesObject

Raises:

  • (NotImplementedError)


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

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”.



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

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)


324
325
326
327
328
329
330
331
332
# File 'lib/allscripts_unity_client/client.rb', line 324

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)


334
335
336
# File 'lib/allscripts_unity_client/client.rb', line 334

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

#get_organization_idObject

Raises:

  • (NotImplementedError)


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

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

#get_packagesObject

Raises:

  • (NotImplementedError)


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

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

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



346
347
348
349
350
351
352
353
354
# File 'lib/allscripts_unity_client/client.rb', line 346

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



356
357
358
359
360
361
362
363
# File 'lib/allscripts_unity_client/client.rb', line 356

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



365
366
367
368
369
370
371
372
# File 'lib/allscripts_unity_client/client.rb', line 365

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

#get_patient_cdaObject

Raises:

  • (NotImplementedError)


374
375
376
# File 'lib/allscripts_unity_client/client.rb', line 374

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



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

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)


402
403
404
# File 'lib/allscripts_unity_client/client.rb', line 402

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

#get_patient_idsObject

Raises:

  • (NotImplementedError)


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

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

#get_patient_listObject

Raises:

  • (NotImplementedError)


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

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

#get_patient_locationsObject

Raises:

  • (NotImplementedError)


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

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

#get_patient_pharmacies(patient_id, limit_to_favorites = false) ⇒ Object



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

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



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

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)


463
464
465
# File 'lib/allscripts_unity_client/client.rb', line 463

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

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



453
454
455
456
457
458
459
460
461
# File 'lib/allscripts_unity_client/client.rb', line 453

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)


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

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

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



471
472
473
474
475
476
477
478
479
480
481
482
# File 'lib/allscripts_unity_client/client.rb', line 471

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



484
485
486
487
488
489
490
491
492
493
494
495
496
497
# File 'lib/allscripts_unity_client/client.rb', line 484

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)


499
500
501
# File 'lib/allscripts_unity_client/client.rb', line 499

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

#get_rounding_list_entriesObject

Raises:

  • (NotImplementedError)


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

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

#get_rounding_listsObject

Raises:

  • (NotImplementedError)


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

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

#get_rx_favsObject

Raises:

  • (NotImplementedError)


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

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

#get_scheduleObject

Raises:

  • (NotImplementedError)


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

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



519
520
521
522
523
524
# File 'lib/allscripts_unity_client/client.rb', line 519

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

#get_sigsObject

Raises:

  • (NotImplementedError)


526
527
528
# File 'lib/allscripts_unity_client/client.rb', line 526

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

#get_task(userid, transaction_id) ⇒ Object



530
531
532
533
534
535
536
537
# File 'lib/allscripts_unity_client/client.rb', line 530

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



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

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



559
560
561
# File 'lib/allscripts_unity_client/client.rb', line 559

def get_user_authentication
  @client_driver.get_user_authentication
end

#get_user_idObject

Raises:

  • (NotImplementedError)


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

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

#get_user_securityObject

Raises:

  • (NotImplementedError)


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

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

#get_vaccine_manufacturersObject

Raises:

  • (NotImplementedError)


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

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

#get_vitalsObject

Raises:

  • (NotImplementedError)


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

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

#last_logsObject



579
580
581
582
583
584
# File 'lib/allscripts_unity_client/client.rb', line 579

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)


586
587
588
# File 'lib/allscripts_unity_client/client.rb', line 586

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)


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

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

#save_allergyObject

Raises:

  • (NotImplementedError)


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

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

#save_cedObject

Raises:

  • (NotImplementedError)


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

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

#save_chargeObject

Raises:

  • (NotImplementedError)


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

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

#save_chart_view_auditObject

Raises:

  • (NotImplementedError)


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

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

#save_diagnosisObject

Raises:

  • (NotImplementedError)


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

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

#save_document_imageObject

Raises:

  • (NotImplementedError)


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

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

#save_er_noteObject

Raises:

  • (NotImplementedError)


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

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

#save_hie_documentObject

Raises:

  • (NotImplementedError)


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

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

#save_historyObject

Raises:

  • (NotImplementedError)


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

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

#save_immunizationObject

Raises:

  • (NotImplementedError)


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

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

#save_noteObject

Raises:

  • (NotImplementedError)


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

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

#save_patientObject

Raises:

  • (NotImplementedError)


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

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

#save_patient_locationObject

Raises:

  • (NotImplementedError)


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

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

#save_problemObject

Raises:

  • (NotImplementedError)


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

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

#save_problems_dataObject

Raises:

  • (NotImplementedError)


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

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

#save_ref_providerObject

Raises:

  • (NotImplementedError)


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

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

#save_resultObject

Raises:

  • (NotImplementedError)


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

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

#save_rx(userid, patientid, rxxml) ⇒ Object



662
663
664
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
# File 'lib/allscripts_unity_client/client.rb', line 662

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)


705
706
707
# File 'lib/allscripts_unity_client/client.rb', line 705

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

#save_simple_rxObject

Raises:

  • (NotImplementedError)


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

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

#save_specialistObject

Raises:

  • (NotImplementedError)


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

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



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

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



734
735
736
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
# File 'lib/allscripts_unity_client/client.rb', line 734

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)


777
778
779
# File 'lib/allscripts_unity_client/client.rb', line 777

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

#save_unstructured_documentObject

Raises:

  • (NotImplementedError)


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

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

#save_v10_doc_signatureObject

Raises:

  • (NotImplementedError)


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

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

#save_v11_noteObject

Raises:

  • (NotImplementedError)


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

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

#save_vitalsObject

Raises:

  • (NotImplementedError)


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

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

#save_vitals_dataObject

Raises:

  • (NotImplementedError)


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

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

#search_charge_codesObject

Raises:

  • (NotImplementedError)


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

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

#search_diagnosis_codesObject

Raises:

  • (NotImplementedError)


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

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

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



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

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



826
827
828
829
830
831
832
# File 'lib/allscripts_unity_client/client.rb', line 826

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

#search_patients_rxhub5Object

Raises:

  • (NotImplementedError)


834
835
836
# File 'lib/allscripts_unity_client/client.rb', line 834

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

#search_pharmacies(search) ⇒ Object



838
839
840
841
842
843
844
# File 'lib/allscripts_unity_client/client.rb', line 838

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

#search_problem_codesObject

Raises:

  • (NotImplementedError)


846
847
848
# File 'lib/allscripts_unity_client/client.rb', line 846

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)


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

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

#update_orderObject

Raises:

  • (NotImplementedError)


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

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

#update_referral_order_statusObject

Raises:

  • (NotImplementedError)


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

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