allscripts_api 0.7.0 → 0.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ae946e7adbf4299a037926c915fd33ff7bf57543
4
- data.tar.gz: a2b9a11e36131641c5c338375a57d0decd12880c
3
+ metadata.gz: cbdb760abff22c5ef1e82fe9275340348c746361
4
+ data.tar.gz: '059566e9ec3065e974ebb87f48782f76ec99b32a'
5
5
  SHA512:
6
- metadata.gz: 24e68dfd0b893788d198956362c1f6c0f26bace7e3bcd18239f59e353595517c25ba09eaf774f48229c7257bc825f6b57abd03fdc53901da5745ef810f99e129
7
- data.tar.gz: ca99389bd969d11db5bd789e7068dcce5e1a8e363ddf13909998cb7a3a2690ac079b63d114a0ccaca3881c2930f8796f82049726573e18f892221835a14d1613
6
+ metadata.gz: 0bc7c7a80ebdbbf862781ee03b29c836ac0bd80ea9c853b34d80cb8778bb676a1f0b872cf1aadeffc9ef03025d56ff51c73d7cdaed954829978401fe42a3c048
7
+ data.tar.gz: 75e34e7c0385837cdb9d0e59af2d2c504f61671f72e0b266f9e0a825facba7d697c4c7234a71700f2b4cd8d02fc086c9f05603dbe4a52431d6dc3a930c5cd142
@@ -14,7 +14,7 @@ module AllscriptsApi
14
14
  attr_writer :sso_token
15
15
 
16
16
  # hardcoded to use the JSON endpoint
17
- ENDPOINT = "/Unity/UnityService.svc/json".freeze
17
+ ENDPOINT = "/UnityService.svc/json".freeze
18
18
 
19
19
  # Instantiation of the Client
20
20
  #
@@ -20,7 +20,7 @@ module AllscriptsApi
20
20
  # owner_code: "TW0001",
21
21
  # first_name: "Allison",
22
22
  # last_name: "Allscripts",
23
- # document_type: "sEKG",
23
+ # document_type: "sEKG", # Document_Type_DE dictionary
24
24
  # organization_name: "New World Health"
25
25
  # }
26
26
  # ds = AllscriptsApi::Documents::DocumentSender.new(client, pdf, "test.pdf", document_params)
@@ -21,6 +21,34 @@ module AllscriptsApi
21
21
  results["getproviderinfo"]
22
22
  end
23
23
 
24
+ # a wrapper around GetProviders
25
+ #
26
+ # @param security_filter [String] optional EntryCode of the Security_Code_DE dictionary for the providers being sought. A list of valid security codes can be obtained from GetDictionary on the Security_Code_DE dictionary.
27
+ # @param name_filter [String] optional If specified, will filter for providers with a lastname or entrycode that match. Defaults to %.
28
+ # @param show_only_providers_flag [String] optional (Y/N) Indicate whether or not to return only users that are also Providers. Defaults to Y.
29
+ # @param internal_external [String] optional I for Internal (User/providers that are internal to the enterprise). E for External (Referring physicians). Defaults to I.
30
+ # @param ordering_authority [String] optional Show only those users with an ordering provider level of X (which is a number)
31
+ # @param real_provider [String] optional Whether an NPI (National Provider ID) is required (Y/N). Y returns only actual providers. Default is N.
32
+ # @return [Array<Hash>, Array, MagicError] a list of providers
33
+ def get_providers(security_filter = nil,
34
+ name_filter = nil,
35
+ show_only_providers_flag = "Y",
36
+ internal_external = "I",
37
+ ordering_authority = nil,
38
+ real_provider = "N")
39
+ params =
40
+ MagicParams.format(
41
+ parameter1: security_filter,
42
+ parameter2: name_filter,
43
+ parameter3: show_only_providers_flag,
44
+ parameter4: internal_external,
45
+ parameter5: ordering_authority,
46
+ parameter6: real_provider
47
+ )
48
+ results = magic("GetProviders", magic_params: params)
49
+ results["getprovidersinfo"]
50
+ end
51
+
24
52
  # a wrapper around GetPatientProblems
25
53
  #
26
54
  # @param patient_id [String] patient id
@@ -50,6 +78,24 @@ module AllscriptsApi
50
78
  results["getpatientproblemsinfo"]
51
79
  end
52
80
 
81
+
82
+ # a wrapper around GetResults
83
+ #
84
+ # @param patient_id [String] patient id
85
+ # @param since [String] Specify a date/time combination to return only results that have been modified on or after that date/time. For example, 2014-01-01 or 2015-01-14 08:44:28.563. Defaults to nil
86
+ # @return [Array<Hash>, Array, MagicError] a list of found results (lab/imaging),
87
+ # an empty array, or an error
88
+ def get_results(patient_id,
89
+ since = nil)
90
+ params = MagicParams.format(
91
+ user_id: @allscripts_username,
92
+ patient_id: patient_id,
93
+ parameter1: since
94
+ )
95
+ results = magic("GetResults", magic_params: params)
96
+ results["getresultsinfo"]
97
+ end
98
+
53
99
  # a wrapper around GetSchedule, returns appointments scheduled under the
54
100
  # the user for a given date range
55
101
  #
@@ -71,7 +117,7 @@ module AllscriptsApi
71
117
  # @param patient_id [String] patient id
72
118
  # @param encounter_type [String] encounter type to filter on from Encounter_Type_DE
73
119
  # @param when_or_limit [String] filter by specified date
74
- # @param nostradamus [String] how many days to look into the future. Defaults to 0.
120
+ # @param nostradamus [String] how many days to look into the future. Defaults to 0.
75
121
  # @param show_past_flag [String] show previous encounters, "Y" or "N". Defaults to Y
76
122
  # @param billing_provider_user_name [String] filter by user name (if specified)
77
123
  # @return [Array<Hash>, Array, MagicError] a list of encounters
@@ -120,6 +166,30 @@ module AllscriptsApi
120
166
  results["getdictionaryinfo"]
121
167
  end
122
168
 
169
+ # a wrapper around GetServerInfo, which returns
170
+ # the time zone of the server, unity version and date
171
+ # and license key
172
+ #
173
+ # @return [Array<Hash>, Array, MagicError] local information about the
174
+ # server hosting the Unity webservice.
175
+ def get_server_info
176
+ params = MagicParams.format(user_id: @allscripts_username)
177
+ results = magic("GetServerInfo", magic_params: params)
178
+ results["getserverinfoinfo"][0] # infoinfo is an Allscript typo
179
+ end
180
+
181
+ def last_logs(errors_only = "N", show_wand = "N", how_many = 10, start_time = "", end_time = "")
182
+ params =
183
+ MagicParams.format(
184
+ parameter1: errors_only,
185
+ parameter2: show_wand,
186
+ parameter3: how_many,
187
+ parameter4: start_time,
188
+ parameter5: end_time
189
+ )
190
+ results = magic("LastLogs", magic_params: params)
191
+ end
192
+
123
193
  private
124
194
 
125
195
  def format_date_range(start_date, end_date)
@@ -44,12 +44,40 @@ module AllscriptsApi
44
44
  builder.field("id" => "orderdeferralunit", "value" => "Days")
45
45
  builder.field("id" => "orderstatusreason", "value" => "")
46
46
  builder.field("id" => "encounter", "value" => encounter_id.to_s)
47
+ builder.field("id" => "orderintorext", "value" => "External/Internal for referral only")
47
48
  builder.orderlinkedproblems
48
49
  builder.clinicalquestions
49
50
  end
50
51
 
51
52
  builder.to_xml
52
53
  end
54
+
55
+
56
+ # Builder for get order workflow xml
57
+ #
58
+ # @param order_id [String] order dictionary ID
59
+ # @param order_trans_id [String] the provider's Allscripts id
60
+ # @param order_category [DateTime] determines what order field data to send back.
61
+ # @param encounter_id [String|Nil] an encounter id, used when
62
+ # ordering to current encounter
63
+ # @return [String] xml formatted for
64
+ # {AllscriptsApi::OrderingMethods#save_order}
65
+ def self.build_xml_for_order_workflow(order_id,
66
+ order_category,
67
+ problem_id = "",
68
+ problem_trans_id = "0",
69
+ order_trans_id = "0")
70
+ builder = Nokogiri::XML::Builder.new
71
+ builder.saveorderxml do
72
+ builder.field("id" => "order_id", "value" => order_id)
73
+ builder.field("id" => "order_transid", "value" => order_trans_id)
74
+ builder.field("id" => "order_category", "value" => order_category)
75
+ builder.field("id" => "problem_id", "value" => problem_id)
76
+ builder.field("id" => "problem_transid", "value" => problem_trans_id)
77
+ end
78
+
79
+ builder.to_xml
80
+ end
53
81
  end
54
82
  end
55
83
  end
@@ -13,7 +13,7 @@ module AllscriptsApi
13
13
  # Immunization, InstructionOrder, ProcedureOrder,
14
14
  # Referral, SuppliesOrder.
15
15
  #
16
- # xml can be constructed with {AllscriptsApi::Order.build_xml}
16
+ # xml can be constructed with {AllscriptsApi::Orders::Order.build_xml}
17
17
  #
18
18
  # @param patient_id [String]
19
19
  # @param xml [String] xml containing saveorderxml fields and values
@@ -39,6 +39,32 @@ module AllscriptsApi
39
39
  )
40
40
  magic("SaveOrder", magic_params: params)
41
41
  end
42
+
43
+ # a wrapper around GetOrderWorkflow
44
+ #
45
+ # @param patient_id [String] patient id
46
+ # @param xml_string [String] xml from build_xml_for_order_workflow method
47
+ # @param order_trans_id [String] order_activity_header.ID when calling for an existing order
48
+ # @param order_category [String] determines what order field data to send back.
49
+ # @param problem_id [String] problem dictionary id
50
+ # @param problem_trans_id [String] problem_header id
51
+ # @return [Array<Hash>, Array, MagicError] a list of encounters
52
+ def get_order_workflow(patient_id, xml_string,
53
+ order_trans_id = "0", order_category = "ProcedureOrder",
54
+ problem_id = "", problem_trans_id = "")
55
+ params =
56
+ MagicParams.format(
57
+ user_id: @allscripts_username,
58
+ patient_id: patient_id,
59
+ parameter1: xml_string,
60
+ parameter2: order_trans_id,
61
+ parameter3: order_category,
62
+ parameter4: problem_id,
63
+ parameter5: problem_trans_id
64
+ )
65
+ results = magic("GetOrderWorkflow", magic_params: params)
66
+ results["getorderworkflow"]
67
+ end
42
68
  end
43
69
  end
44
70
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module AllscriptsApi
4
4
  # gem version declaration
5
- VERSION = "0.7.0".freeze
5
+ VERSION = "0.8.0".freeze
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allscripts_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chase
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-01 00:00:00.000000000 Z
11
+ date: 2018-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday