• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

scarver2 / ehr-portal / 23649998084
78%

Build:
DEFAULT BRANCH: main
Ran 27 Mar 2026 02:03PM UTC
Jobs 1
Files 45
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

27 Mar 2026 02:03PM UTC coverage: 70.947% (-3.5%) from 74.492%
23649998084

push

github

web-flow
feat: Video consult Phase 2 — LiveKit real video + patient magic link (#61)

* feat: Video consult Phase 2 — LiveKit real video + backend wiring

Backend:
- Add livekit-server-sdk gem; Livekit::TokenService generates room JWTs
- New migrations: encounter_notes table, join_token on encounters
- EncounterNote model + has_many on Encounter + generate_join_token!
- Api::EncountersController (create/show/update) with fallback patient logic
- Api::VideoController#token — returns LiveKit JWT for encounter room
- Api::PatientSessionsController — exchanges magic-link token for session JWT
- Fix EncounterNotesController to use encounter_notes association
- Routes: /api/encounters, /api/encounters/:id/notes, /api/video/token, /api/patient_sessions
- RBS stub for EncounterNote

Frontend:
- ConsultRoom: wraps room in <LiveKitRoom>, fetches token, uses apiFetch
- ConsultControls: new component using useLocalParticipant for real mute/camera toggle
- ProviderCamera: uses LiveKit local participant track for PiP
- PatientPane: uses useTracks for remote video; shows "Waiting…" until patient joins
- NotesPanel: use apiFetch for correct API base URL
- /join page: exchanges patient magic-link token and redirects to consult
- Update all consult tests to mock @livekit/components-react

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* organized Gemfile

* upgraded ffi 1.17.4 (x86_64-darwin) (was 1.17.3)

* organized Gemfile

* upgraded action_text-trix 2.1.18 (was 2.1.17)

* upgraded parser 3.3.11.1 (was 3.3.10.2)

* bind IRBTools to IRB

* fix: link provider@example.com to Gregory House and surface encounter errors

- Seeds: after CSV import, reassign provider@example.com → Gregory House
  so the dev login works with the consult flow out-of-the-box
- EncountersController: return 422 JSON instead of raising RecordNotFound
  (Rails rendered HTML, portal couldn't parse the error)
- ConsultRoom: parse JSON error body and include status+message in the
  thrown error s... (continued)

378 of 575 branches covered (65.74%)

Branch coverage included in aggregate %.

29 of 71 new or added lines in 6 files covered. (40.85%)

506 of 671 relevant lines covered (75.41%)

17.22 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
4
82.28
3.33% apps/ehr-portal/src/components/consult/ConsultRoom.tsx
13
0.0
apps/ehr-portal/src/components/consult/ConsultControls.tsx
25
0.0
apps/ehr-portal/src/app/join/page.tsx
Jobs
ID Job ID Ran Files Coverage
1 23649998084.1 27 Mar 2026 02:03PM UTC 45
70.95
GitHub Action Run
Source Files on build 23649998084
  • Tree
  • List 45
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #23649998084
  • a11872dd on github
  • Prev Build on main (#23628182180)
  • Next Build on main (#23649998047)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc