luma 0.0.3 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b2e1eb5f86c6412e81ba1ef33eece2d93a4957779cff5896d39f47245f1dce0e
4
- data.tar.gz: 6ce4c9f8fc440cbc84f1bb25236eb851e6afa36de504c0cf2390db9af362c0f3
3
+ metadata.gz: '00429d3b54d9cda59b281b0446ff7585008fcc498f2199f0fce23855c2582cc6'
4
+ data.tar.gz: 1c15d031ecf8b95be3d2fa97082ef6e6f72ba0d090351ad5c8fae594764a6312
5
5
  SHA512:
6
- metadata.gz: 27a8ff325fb761b1debbc632d46745efcdb71401dc31982a8877b9150c7d5a794c1b2ef0f08e9c6a48d162cee19eb6e59c74b80a537debd0a2bf72c019f49431
7
- data.tar.gz: 7683fa09e2371979e87955b0d7f3c7c8fe30ac2a74fb4f375445d6f808102011aedb2ffaa25722660cc183ccbfb044a7624cd79f0617cd15dcd75ed507009182
6
+ metadata.gz: b50ab8b8b32e94a2d10d5782b01935781613af96aeae2e6efd5c1211f6cfbe5528d92fb134aa0248c5131ca59a9ae485f855d28f7eb102469f66b39c1f98a1ed
7
+ data.tar.gz: 3353c539d5e508a10af4f8807620935d07db0432f9382ef0355a135f9dc9ba1ffbd073179da644efcb69fcf15a0b5ff4914d59f86f009321708754b71143e6f0
data/CHANGELOG.md CHANGED
@@ -1,4 +1,58 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
+ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [0.0.7] - 2021-10-25
8
+
9
+ ### Added
10
+
11
+ - Add API access for creating a patient (POST)
12
+ - Add Patient, Date of Birth and Contact models used in create patient payload
13
+
14
+ ## [0.0.6] - 2021-10-15
15
+
16
+ ### Changed
17
+
18
+ - Adjust provider to accept body parameter
19
+
20
+ ## [0.0.5] - 2021-10-14
21
+
22
+ ### Changed
23
+
24
+ - Return HTTParty response when creating facility, appointment type, provider
25
+
26
+ ## [0.0.4] - 2021-09-7
27
+
28
+ ### Added
29
+
30
+ - Added API Access for creating a facility (POST)
31
+
32
+ ## [0.0.3] - 2021-08-30
33
+
34
+ ### Changed
35
+
36
+ - Models to have better inheritance and DRYer code
37
+
38
+ ### Added
39
+
40
+ - Added API access for creating a provider (POST)
41
+
42
+ ## [0.0.2] - 2021-08-26
43
+
44
+ ### Added
45
+
46
+ - Added API access for creating and finding appointment types (GET and POST)
47
+
1
48
  ## [0.0.1] - 2021-05-28
49
+
2
50
  - Initial Create
3
51
 
4
- [0.1.1]: https://github.com/WeInfuse/luma/compare/0.1.0...0.1.1
52
+ [0.0.7]: https://github.com/WeInfuse/luma/compare/v0.0.6...v0.0.7
53
+ [0.0.6]: https://github.com/WeInfuse/luma/compare/v0.0.5...v0.0.6
54
+ [0.0.5]: https://github.com/WeInfuse/luma/compare/v0.0.4...v0.0.5
55
+ [0.0.4]: https://github.com/WeInfuse/luma/compare/v0.0.3...v0.0.4
56
+ [0.0.3]: https://github.com/WeInfuse/luma/compare/v0.0.2...v0.0.3
57
+ [0.0.2]: https://github.com/WeInfuse/luma/compare/v0.0.1...v0.0.2
58
+ [0.0.1]: https://github.com/WeInfuse/luma/compare/4626a358638...v0.0.1
data/README.md CHANGED
@@ -29,8 +29,69 @@ Luma.configure do |c|
29
29
  end
30
30
  ```
31
31
 
32
+ ### Create Appointment Type
33
+ ```ruby
34
+ body = { "name": "Infusion", "description": "Infusion" }
35
+ Luma::AppointmentType.new.create_appointment_type(body: body)
36
+ ```
37
+
38
+ ### Create Facility
39
+ ```ruby
40
+ body = {
41
+ name: "Facility Test Deb 1",
42
+ phone: "5121111111",
43
+ address: "101 Bob Avenue",
44
+ state: "Texas",
45
+ city: "Austin",
46
+ postcode: 78705
47
+ }
48
+
49
+ Luma::Facilities.new.create_facility(body: body)
50
+ ```
51
+
52
+ ### Create Provider
53
+ ```ruby
54
+ body = { "name": "Billy Bob 2", "npi": 1234567891 }
55
+ Luma::Provider.new.create_provider(body: body)
56
+ ```
57
+
58
+ ### Create Patient
59
+ ```ruby
60
+ dob = Luma::Models::DateOfBirth.new(year: 1993, month: 1, day: 2)
61
+ contact = Luma::Models::Contact.new(type: Luma::Models::Contact::CONTACT_TYPES[:email],
62
+ value: "ruby@test.com",
63
+ active: true
64
+ )
65
+ body = Luma::Models::Patient.new(first_name: 'Ruby',
66
+ last_name: 'Jones',
67
+ dob: dob,
68
+ address: '123 Main',
69
+ city: 'Austin',
70
+ state: 'TX',
71
+ zip_code: 78701,
72
+ contact: [contact],
73
+ do_not_contact: false
74
+ )
75
+
76
+ Luma::Patient.new.create_patient(body: body)
77
+ ```
78
+
32
79
  ## Development
33
80
 
34
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
81
+ ### Prep
82
+ After checking out the repo, run `bin/setup` to install dependencies.
83
+
84
+ ### Test
85
+ Run `rake test` to run the tests.
86
+
87
+ ### Debug
88
+ Run `bin/console` for an interactive prompt that will allow you to experiment.
89
+
90
+ ### Install Local
91
+ To install this gem onto your local machine, run `bundle exec rake install`.
92
+
93
+ ### Release
94
+
95
+ To release a new version, update the version number in `version.rb` and add notes to `CHANGELOG.md`.
35
96
 
36
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
97
+ From up-to-date `main` branch, run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
@@ -2,30 +2,22 @@ module Luma
2
2
  class AppointmentType < Connection
3
3
  APPOINTMENT_TYPE_ENDPOINT = '/api/appointmentTypes'.freeze
4
4
 
5
- include HTTParty
6
-
7
5
  base_uri 'https://api.lumahealth.io/'.freeze
8
6
 
9
- headers 'Content-Type' => 'application/json'
10
-
11
- format :json
12
-
13
7
  def view_appointment_types(endpoint: APPOINTMENT_TYPE_ENDPOINT, auth: true, name: nil, description: nil, debug_output: $stdout)
14
8
  self.add_headers_and_body if auth
15
9
 
16
10
  url = "api/appointmentTypes?name=#{name}&description=#{description}"
17
11
  full_url = "https://api.lumahealth.io/" + url
18
12
 
19
- result = HTTParty.get(full_url.to_str, headers: @headers, debug_output: $stdout)
20
- { result: result, headers: @headers }
13
+ HTTParty.get(full_url.to_str, headers: @headers, debug_output: $stdout)
21
14
  end
22
15
 
23
16
  def create_appointment_type(endpoint: APPOINTMENT_TYPE_ENDPOINT, body: nil, headers: {}, auth: true, verb: :post, debug_output: $stdout)
24
17
  @body = body
25
18
  self.add_headers_and_body if auth
26
19
 
27
- result = self.class.send(verb.to_s, endpoint, body: @body, headers: @headers, debug_output: $stdout)
28
- { result: result, headers: @headers }
20
+ self.class.send(verb.to_s, endpoint, body: @body, headers: @headers, debug_output: $stdout)
29
21
  end
30
22
  end
31
- end
23
+ end
@@ -0,0 +1,14 @@
1
+ module Luma
2
+ class Facilities < Connection
3
+ FACILITY_ENDPOINT = '/api/facilities'.freeze
4
+
5
+ base_uri 'https://api.lumahealth.io/'.freeze
6
+
7
+ def create_facility(endpoint: FACILITY_ENDPOINT, body: nil, headers: {}, auth: true, verb: :post, debug_output: $stdout)
8
+ @body = body
9
+ self.add_headers_and_body if auth
10
+
11
+ self.class.send(verb.to_s, endpoint, body: @body, headers: @headers)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ module Luma
2
+ module Models
3
+ class Contact < Hashie::Trash
4
+ include Hashie::Extensions::IgnoreUndeclared
5
+ include Hashie::Extensions::IndifferentAccess
6
+
7
+ CONTACT_TYPES = {
8
+ email: "email",
9
+ text: "sms",
10
+ phone: "voice"
11
+ }
12
+
13
+ property :type, required: false
14
+ property :value, required: false
15
+ property :active, required: false, default: false
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,12 @@
1
+ module Luma
2
+ module Models
3
+ class DateOfBirth < Hashie::Trash
4
+ include Hashie::Extensions::IgnoreUndeclared
5
+ include Hashie::Extensions::IndifferentAccess
6
+
7
+ property :year, required: false
8
+ property :month, required: false
9
+ property :day, required: false
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,19 @@
1
+ module Luma
2
+ module Models
3
+ class Patient < Hashie::Trash
4
+ include Hashie::Extensions::IgnoreUndeclared
5
+ include Hashie::Extensions::IndifferentAccess
6
+
7
+ property :firstname, from: :first_name, required: false
8
+ property :lastname, from: :last_name, required: false
9
+ property :dateOfBirth, from: :dob, required: false, default: {}
10
+ property :address, required: false
11
+ property :city, required: false
12
+ property :state, required: false
13
+ property :postcode, from: :zip_code, required: false
14
+ property :contact, required: false
15
+ property :doNotContact, from: :do_not_contact, required: false, default: true
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,14 @@
1
+ module Luma
2
+ class Patient < Connection
3
+ PATIENT_ENDPOINT = '/api/patients'.freeze
4
+
5
+ base_uri 'https://api.lumahealth.io/'.freeze
6
+
7
+ def create_patient(endpoint: PATIENT_ENDPOINT, body: nil, headers: {}, auth: true, verb: :post, debug_output: $stdout)
8
+ @body = body
9
+ self.add_headers_and_body if auth
10
+
11
+ self.class.send(verb.to_s, endpoint, body: @body, headers: @headers)
12
+ end
13
+ end
14
+ end
data/lib/luma/provider.rb CHANGED
@@ -2,24 +2,14 @@ module Luma
2
2
  class Provider < Connection
3
3
  PROVIDER_ENDPOINT = '/api/providers'.freeze
4
4
 
5
- include HTTParty
6
-
7
5
  base_uri 'https://api.lumahealth.io/'.freeze
8
6
 
9
- headers 'Content-Type' => 'application/json'
10
-
11
- format :json
12
-
13
- def create_provider(endpoint: PROVIDER_ENDPOINT, name: "", npi: nil, headers: {}, auth: true, verb: :post)
14
- @body = {
15
- name: name,
16
- npi: npi
17
- }
7
+ def create_provider(endpoint: PROVIDER_ENDPOINT, body: nil, headers: {}, auth: true, verb: :post)
8
+ @body = body
18
9
 
19
10
  self.add_headers_and_body if auth
20
11
 
21
- result = self.class.send(verb.to_s, endpoint, body: @body, headers: @headers, debug_output: $stdout)
22
- { result: result, headers: @headers }
12
+ self.class.send(verb.to_s, endpoint, body: @body, headers: @headers, debug_output: $stdout)
23
13
  end
24
14
  end
25
- end
15
+ end
data/lib/luma/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Luma
2
- VERSION = '0.0.3'.freeze
2
+ VERSION = '0.0.7'.freeze
3
3
  end
data/lib/luma.rb CHANGED
@@ -6,6 +6,11 @@ require 'luma/connection'
6
6
  require 'luma/authentication'
7
7
  require 'luma/provider'
8
8
  require 'luma/appointment_type'
9
+ require 'luma/facilities'
10
+ require 'luma/patient'
11
+ require 'luma/models/contact'
12
+ require 'luma/models/date_of_birth'
13
+ require 'luma/models/patient'
9
14
 
10
15
  module Luma
11
16
  class Configuration
data/luma.gemspec CHANGED
@@ -36,4 +36,5 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency 'rake', '~> 10.0'
37
37
  spec.add_development_dependency 'webmock', '~> 3.1'
38
38
  spec.add_development_dependency 'yard', '~> 0.9'
39
+ spec.add_development_dependency 'pry'
39
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: luma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Angela Rodriguez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-30 00:00:00.000000000 Z
11
+ date: 2021-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -128,6 +128,20 @@ dependencies:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0.9'
131
+ - !ruby/object:Gem::Dependency
132
+ name: pry
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
131
145
  description:
132
146
  email:
133
147
  - angela.rodriguez@weinfuse.com
@@ -144,7 +158,12 @@ files:
144
158
  - lib/luma/appointment_type.rb
145
159
  - lib/luma/authentication.rb
146
160
  - lib/luma/connection.rb
161
+ - lib/luma/facilities.rb
147
162
  - lib/luma/luma_exception.rb
163
+ - lib/luma/models/contact.rb
164
+ - lib/luma/models/date_of_birth.rb
165
+ - lib/luma/models/patient.rb
166
+ - lib/luma/patient.rb
148
167
  - lib/luma/provider.rb
149
168
  - lib/luma/version.rb
150
169
  - luma.gemspec