luma

Ruby gem for Luma Health API

Installation

Add this line to your application's Gemfile:

gem 'luma'

And then execute:

$ bundle

Or install it yourself as:

$ gem install luma

Usage

Supply email and password with each request based upon the requesting client/group's API user.

Create Appointment Type

body = { "name": "Infusion", "description": "Infusion" }
Luma::AppointmentType.new(email: email, password: password).create_appointment_type(body: body)

Create Facility

body = {
  name: "Facility Test Deb 1",
  phone: "5121111111",
  address: "101 Bob Avenue",
  state: "Texas",
  city: "Austin",
  postcode: 78705
}

Luma::Facilities.new(email: email, password: password).create_facility(body: body)

Create Provider

body = { "name": "Billy Bob 2", "npi": 1234567891 }
Luma::Provider.new(email: email, password: password).create_provider(body: body)

Create Patient

dob = Luma::Models::DateOfBirth.new(year: 1993, month: 1, day: 2)
contact = Luma::Models::Contact.new(type: Luma::Models::Contact::CONTACT_TYPES[:email],
  value: "[email protected]",
  active: true
)
body = Luma::Models::Patient.new(first_name: 'Ruby',
  last_name: 'Jones',
  dob: dob,
  address: '123 Main',
  city: 'Austin',
  state: 'TX',
  zip_code: 78701,
  contact: [contact],
  do_not_contact: false
)

Luma::Patient.new(email: email, password: password).create_patient(body: body)

Update Patient

body = Luma::Models::Patient.new(address: '456 Old Main')
patient_identifier = '12345a45b67c89101d2e3456'

Luma::Patient.new(email: email, password: password).update_patient(identifier: patient_identifier, body: body)

GET Patient

patient_identifier = '12345a45b67c89101d2e3456'

Luma::Patient.new(email: email, password: password).get_patient(identifier: patient_identifier)

Create Appointment

body = Luma::Models::Appointment.new(
  appt_date: '2019-06-18T15:45:00.000Z',
  appt_duration: '60',
  appt_status: 'Unconfirmed',
  patient_id: '12345',
  provider_id: '23456',
  facility_id: '34567',
  appt_type_id: '45678',
)

Luma::Appointment.new(email: email, password: password).create_appointment(body: body)

Update Appointment

body = {
  appt_duration: '60'
}

Luma::Appointment.new(email: email, password: password).update_appointment('appointment_id', body: body)

Development

Prep

After checking out the repo, run bin/setup to install dependencies.

Test

Run rake test to run the tests.

Debug

Run bin/console for an interactive prompt that will allow you to experiment.

Install Local

To install this gem onto your local machine, run bundle exec rake install.

Release

To release a new version, update the version number in version.rb and add notes to CHANGELOG.md.

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.