athena_health 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 +4 -4
- data/lib/athena_health.rb +8 -0
- data/lib/athena_health/appointment.rb +13 -0
- data/lib/athena_health/appointment_collection.rb +5 -0
- data/lib/athena_health/appointment_type.rb +13 -0
- data/lib/athena_health/appointment_type_collection.rb +7 -0
- data/lib/athena_health/client.rb +2 -0
- data/lib/athena_health/endpoints/appointments.rb +25 -0
- data/lib/athena_health/endpoints/providers.rb +15 -0
- data/lib/athena_health/error.rb +19 -23
- data/lib/athena_health/provider.rb +20 -0
- data/lib/athena_health/provider_collection.rb +5 -0
- data/lib/athena_health/version.rb +1 -1
- metadata +10 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7881cc0588d6015a9a53c862b7f649f2122dfe59
|
|
4
|
+
data.tar.gz: b900327914967d1cb109f20e7d50deca7cb5dc4a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 369d50e447b3f086810b43ff63c29e2c64528066053a4fba3d83e30b7797876fcc97f1c884e7227e076fe4724ddd484b36809a356f89deb763e8fcc33b7fd626
|
|
7
|
+
data.tar.gz: cd27f1f6deb648bc09ea6bdd14734247baeed69c9f3a7b8d655c4bcad2b596c729827d942459a3ee1db300a65cd88d842d364f2e16db401d9f2b8199639d210d
|
data/lib/athena_health.rb
CHANGED
|
@@ -7,6 +7,8 @@ require 'athena_health/error'
|
|
|
7
7
|
require 'athena_health/endpoints/practices'
|
|
8
8
|
require 'athena_health/endpoints/departments'
|
|
9
9
|
require 'athena_health/endpoints/patients'
|
|
10
|
+
require 'athena_health/endpoints/appointments'
|
|
11
|
+
require 'athena_health/endpoints/providers'
|
|
10
12
|
require 'athena_health/client'
|
|
11
13
|
require 'athena_health/base_collection'
|
|
12
14
|
require 'athena_health/base_model'
|
|
@@ -20,6 +22,12 @@ require 'athena_health/patient_collection'
|
|
|
20
22
|
require 'athena_health/event'
|
|
21
23
|
require 'athena_health/patient_problem'
|
|
22
24
|
require 'athena_health/patient_problem_collection'
|
|
25
|
+
require 'athena_health/provider'
|
|
26
|
+
require 'athena_health/provider_collection'
|
|
27
|
+
require 'athena_health/appointment_type'
|
|
28
|
+
require 'athena_health/appointment_type_collection'
|
|
29
|
+
require 'athena_health/appointment'
|
|
30
|
+
require 'athena_health/appointment_collection'
|
|
23
31
|
|
|
24
32
|
module AthenaHealth
|
|
25
33
|
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module AthenaHealth
|
|
2
|
+
class Appointment < BaseModel
|
|
3
|
+
attribute :date, String
|
|
4
|
+
attribute :appointmentid, Integer
|
|
5
|
+
attribute :departmentid, Integer
|
|
6
|
+
attribute :appointmenttype, String
|
|
7
|
+
attribute :providerid, Integer
|
|
8
|
+
attribute :starttime, String
|
|
9
|
+
attribute :duration, Integer
|
|
10
|
+
attribute :appointmenttypeid, Integer
|
|
11
|
+
attribute :patientappointmenttypename, Integer
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module AthenaHealth
|
|
2
|
+
class AppointmentType < BaseModel
|
|
3
|
+
attribute :shortname, String
|
|
4
|
+
attribute :name, String
|
|
5
|
+
attribute :duration, Integer
|
|
6
|
+
attribute :patientdisplayname, String
|
|
7
|
+
attribute :appointmenttypeid, Integer
|
|
8
|
+
attribute :generic, Boolean
|
|
9
|
+
attribute :patient, Boolean
|
|
10
|
+
attribute :publicnames, Array
|
|
11
|
+
attribute :templatetypeonly, Boolean
|
|
12
|
+
end
|
|
13
|
+
end
|
data/lib/athena_health/client.rb
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module AthenaHealth
|
|
2
|
+
module Endpoints
|
|
3
|
+
module Appointments
|
|
4
|
+
def all_appointment_types(practice_id:, params: {})
|
|
5
|
+
response = @api.call(
|
|
6
|
+
endpoint: "#{practice_id}/appointmenttypes",
|
|
7
|
+
method: :get,
|
|
8
|
+
params: params
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
AppointmentTypeCollection.new(response)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def open_appointment_slots(practice_id:, department_id:, appointment_type_id:, params: {})
|
|
15
|
+
response = @api.call(
|
|
16
|
+
endpoint: "#{practice_id}/appointments/open",
|
|
17
|
+
method: :get,
|
|
18
|
+
params: params.merge(departmentid: department_id, appointmenttypeid: appointment_type_id)
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
AppointmentCollection.new(response)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module AthenaHealth
|
|
2
|
+
module Endpoints
|
|
3
|
+
module Providers
|
|
4
|
+
def all_providers(practice_id:, params: {})
|
|
5
|
+
response = @api.call(
|
|
6
|
+
endpoint: "#{practice_id}/providers",
|
|
7
|
+
method: :get,
|
|
8
|
+
params: params
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
ProviderCollection.new(response)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
data/lib/athena_health/error.rb
CHANGED
|
@@ -1,33 +1,29 @@
|
|
|
1
1
|
module AthenaHealth
|
|
2
|
+
class UnauthorizedError < StandardError; end
|
|
3
|
+
class IncorrectPermissionsError < StandardError; end
|
|
4
|
+
class ForbiddenError < StandardError; end
|
|
5
|
+
class NotFoundError < StandardError; end
|
|
6
|
+
class ConflictError < StandardError; end
|
|
7
|
+
class InternalServerError < StandardError; end
|
|
8
|
+
class ServiceUnavailableError < StandardError; end
|
|
9
|
+
|
|
2
10
|
class Error
|
|
11
|
+
ERROR_TYPES = {
|
|
12
|
+
401 => UnauthorizedError,
|
|
13
|
+
402 => IncorrectPermissionsError,
|
|
14
|
+
403 => ForbiddenError,
|
|
15
|
+
404 => NotFoundError,
|
|
16
|
+
409 => ConflictError,
|
|
17
|
+
500 => InternalServerError,
|
|
18
|
+
503 => ServiceUnavailableError,
|
|
19
|
+
}
|
|
20
|
+
|
|
3
21
|
def initialize(code:)
|
|
4
22
|
@code = code
|
|
5
23
|
end
|
|
6
24
|
|
|
7
25
|
def render
|
|
8
|
-
fail
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
private
|
|
12
|
-
|
|
13
|
-
def errors
|
|
14
|
-
{
|
|
15
|
-
401 => UnauthorizedError,
|
|
16
|
-
402 => IncorrectPermissionsError,
|
|
17
|
-
403 => ForbiddenError,
|
|
18
|
-
404 => NotFoundError,
|
|
19
|
-
409 => ConflictError,
|
|
20
|
-
500 => InternalServerError,
|
|
21
|
-
503 => ServiceUnavailableError,
|
|
22
|
-
}
|
|
26
|
+
fail ERROR_TYPES[@code]
|
|
23
27
|
end
|
|
24
28
|
end
|
|
25
|
-
|
|
26
|
-
class UnauthorizedError < StandardError; end
|
|
27
|
-
class IncorrectPermissionsError < StandardError; end
|
|
28
|
-
class ForbiddenError < StandardError; end
|
|
29
|
-
class NotFoundError < StandardError; end
|
|
30
|
-
class ConflictError < StandardError; end
|
|
31
|
-
class InternalServerError < StandardError; end
|
|
32
|
-
class ServiceUnavailableError < StandardError; end
|
|
33
29
|
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module AthenaHealth
|
|
2
|
+
class Provider < BaseModel
|
|
3
|
+
attribute :firstname, String
|
|
4
|
+
attribute :specialty, String
|
|
5
|
+
attribute :homedepartment, String
|
|
6
|
+
attribute :acceptingnewpatients, Boolean
|
|
7
|
+
attribute :providertypeid, Boolean
|
|
8
|
+
attribute :billable, Boolean
|
|
9
|
+
attribute :displayname, String
|
|
10
|
+
attribute :ansinamecode, String
|
|
11
|
+
attribute :lastname, String
|
|
12
|
+
attribute :providerid, Integer
|
|
13
|
+
attribute :providerusername, String
|
|
14
|
+
attribute :ansispecialtycode, String
|
|
15
|
+
attribute :hideinportal, Boolean
|
|
16
|
+
attribute :entitytype, String
|
|
17
|
+
attribute :npi, Integer
|
|
18
|
+
attribute :providertype, String
|
|
19
|
+
end
|
|
20
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: athena_health
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mateusz Urbański
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-02-
|
|
11
|
+
date: 2016-02-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: typhoeus
|
|
@@ -125,6 +125,10 @@ files:
|
|
|
125
125
|
- Rakefile
|
|
126
126
|
- athena_health.gemspec
|
|
127
127
|
- lib/athena_health.rb
|
|
128
|
+
- lib/athena_health/appointment.rb
|
|
129
|
+
- lib/athena_health/appointment_collection.rb
|
|
130
|
+
- lib/athena_health/appointment_type.rb
|
|
131
|
+
- lib/athena_health/appointment_type_collection.rb
|
|
128
132
|
- lib/athena_health/balance.rb
|
|
129
133
|
- lib/athena_health/base_collection.rb
|
|
130
134
|
- lib/athena_health/base_model.rb
|
|
@@ -132,9 +136,11 @@ files:
|
|
|
132
136
|
- lib/athena_health/connection.rb
|
|
133
137
|
- lib/athena_health/department.rb
|
|
134
138
|
- lib/athena_health/department_collection.rb
|
|
139
|
+
- lib/athena_health/endpoints/appointments.rb
|
|
135
140
|
- lib/athena_health/endpoints/departments.rb
|
|
136
141
|
- lib/athena_health/endpoints/patients.rb
|
|
137
142
|
- lib/athena_health/endpoints/practices.rb
|
|
143
|
+
- lib/athena_health/endpoints/providers.rb
|
|
138
144
|
- lib/athena_health/error.rb
|
|
139
145
|
- lib/athena_health/event.rb
|
|
140
146
|
- lib/athena_health/patient.rb
|
|
@@ -143,6 +149,8 @@ files:
|
|
|
143
149
|
- lib/athena_health/patient_problem_collection.rb
|
|
144
150
|
- lib/athena_health/practice.rb
|
|
145
151
|
- lib/athena_health/practice_collection.rb
|
|
152
|
+
- lib/athena_health/provider.rb
|
|
153
|
+
- lib/athena_health/provider_collection.rb
|
|
146
154
|
- lib/athena_health/version.rb
|
|
147
155
|
homepage: https://github.com/zywy/athena_health
|
|
148
156
|
licenses:
|