Giter VIP home page Giter VIP logo

embed's People

Contributors

beaugunderson avatar dlederle avatar jbrower2 avatar nick-telsan avatar noahko96 avatar reyberndia avatar ten1seven avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

embed's Issues

Scheduler > Date Picker > Build Out

Mobile Desktop
image image
  • Calendar should have a header with a button to close the dialog
  • Calendar should have a Month / Year Select
  • Calendar should have a forward / back button to navigate through months
  • Calendar should list out dates Sunday to Monday.
  • Calendar should list out dates for the month.
    • The user's selected date should be highlighted
    • Dates in the past and dates without appointments(?) should be disabled.
    • Clicking on a date should close the dialog and set the user's selected date.

Questions to Answer

  • How far out should users be able to select in the Month / Year select?
    Initially, aim for three months? Might be able to infer from data from API.
  • Should dates be disabled if there are no time slots available for that date?
    Pretty sure this is also true, just trying to figure out how to get that date from the API.

Proxy > implement valid_patient_key middleware

This code will be run in front of all of our endpoints that accept a patient_id.

It takes a patient_id and a token and validates that the token belongs to that patient id.

If the keys match, the request continues.

If they do not match, return 401 unauthorized

Proxy > README

Just add a link to the proxy README from the main README, like Nick did for Widgets

Scheduler > Time Slots > Feedback

Feedback to be tackled from #13

  • Add overflow auto to AppContainer
  • Removed unnecessary max/min heights from popover
  • Verify root font size
  • Replace radio button time slots with regular buttons
  • Handle focus on popover open
  • Return focus on popover close

Proxy > Dockerize

This does not include deployment to aptible yet, this is just a local dockerfile.

Question: Missing Information

Our design docs provided the following config options that needed to be passed to the embeds.

  • DOM element to attach interface
  • Patient identifier
  • Provider identifiers (multiple possible)
  • Location identifier
  • Visit type (telehealth, office, phone, home, lab) see appointment_type for supported options
  • Reason for visit (string)
  • Appointment duration
  • Proxy service preshared key (string)
  • Brand color (optional hex)

Which fields are required fields?
How should the embed respond if required fields are missing?

Proxy > Rubocop

Add rubocop to proxy code for formatting/linting purposes.

Proxy > Implement FHIR forwarding

The proxy will issue requests to the FHIR API and return the results, including headers, to the requester. It should operate completely transparently.

This ticket is complete when the proxy can make and forward requests to the FHIR API.

Blocked by #18

Question > if there are multiple providers

The way that the API is built, there will be a performance issue if we have to keep hitting it for each provider. Flag for Canvas. But potentially there will only ever be 1 provider.

Proxy > Init

rails new api mode, no db

set up testing, set up coverage thresholds

Scheduler > Time Slot Select > Styling Tweaks

Date Picker

  • Enabled state should use the primary brand color
  • Disabled state probably shouldn't use white, but a light grey
Standard Brand Custom Brand
image image
  • Adjust focus / hover states of buttons to look better
    • Round forward / back date picker buttons hover / focus
    • Give all date picker buttons a better color for focus / hover (maybe darker color used for time slot buttons focus)
Date Picker Toggle Forward / Back
image image

Iconography

  • Replace calendar icon with mock's calendar icon
  • Fix scaling issue on calendar icon
    Currently, the calendar icon won't appropriately scale to different sizes. The svg "scales" but the path doesn't. The quick solution was to make a second, bigger version of the svg.
Current Mock
image image

Proxy > Local QA

Get Schedule

Headers - local has the following additional headers

  • Last-modified
  • Content-Type
  • Vary
  • Cache-control
  • X-request-ID
  • X-Runtime

Local does not have the following headers

  • Content encoding (value: gzip)

Screen Shot 2022-01-27 at 5 01 38 PM
Screen Shot 2022-01-27 at 5 01 52 PM

Get Search Appointment

Local Body has a total of 12 while the FHIR API has a total of 15
Screen Shot 2022-01-27 at 5 08 16 PM
Screen Shot 2022-01-27 at 5 08 05 PM

Get Search Slot

Noticed that locally, the date is today, but hitting the FHIR API, the date is tomorrow.

Wondering if that's why the totals are different in the Body -- 135 vs. 130 (local).
Not local
Screen Shot 2022-01-27 at 5 30 51 PM
Local
Screen Shot 2022-01-27 at 5 31 08 PM
Not local
Screen Shot 2022-01-27 at 5 32 22 PM
Local
Screen Shot 2022-01-27 at 5 31 58 PM

Create Appointment

There are more Headers locally (17 vs. 11). Noticing the same date difference here as well.

Local
Screen Shot 2022-01-27 at 5 37 16 PM
Not Local
Screen Shot 2022-01-27 at 5 37 10 PM

Update Appointment

There are more headers locally (again, 17 vs. 11). Same date difference as before.
Local
Screen Shot 2022-01-27 at 5 39 48 PM
Not Local
Screen Shot 2022-01-27 at 5 39 39 PM

Proxy > /Auth route

This endpoint will accept a pre-shared key and a patient id and return a key that is scoped to that patient id

  1. Check that the key matches our pre-shared key
  2. Generate a patient scoped key
  3. Store that key in redis
  4. Return that key

Embeds > Confirmation popover

For the Scheduler embed, when user schedules an appointment, display popover on bottom of screen to confirm or cancel.

Mobile Desktop
Screen Shot 2022-01-13 at 10 43 53 PM Screen Shot 2022-01-13 at 10 49 10 PM

For the Appointment embed, we'll use the same component when a user attempts to cancel an existing appointment.

Desktop Mobile
Screen Shot 2022-01-13 at 11 15 33 PM Screen Shot 2022-01-13 at 11 16 58 PM

NPM access or alternative

How do they plan on distributing the CDN?

Show options to Canvas for approval or developer decision.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.