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

medplum / medplum / 25829623880
92%
main: 92%

Build:
Build:
LAST BUILD BRANCH: testing/agent-vitest-migration
DEFAULT BRANCH: main
Ran 13 May 2026 10:22PM UTC
Jobs 1
Files 773
Run time 2min
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

13 May 2026 10:16PM UTC coverage: 92.025% (+0.03%) from 91.997%
25829623880

push

github

web-flow
Add $hold Scheduling operation (#9148)

* Extract slotsOverlappingInterval helper

This query is a little ugly and we end up rewriting it a couple times
(soon to be one more for the `$hold` operation). Instead lets extract a
helper method that we can reuse.

Signed-off-by: Noah Silas <noah@medplum.com>

* Extract getSchedulingParametersGroup helper

There's some repetitive work being done across multiple scheduling
endpoints here:

- Ensure that `Schedule.actor` has exactly one entry
- Ensure that there is a concrete TimeZone to use (potentially found by
  resolving the `Schedule.actor` reference and looking for an extension
  there).
- Choose the relevant SchedulingParameter extension attributes from the
  Schedule or HealthcareService

By pulling this into a helper, we can reuse it across the various
scheduling endpoints (I was starting to duplicate it again when
performing an implementation of the new `$hold` endpoint).

Signed-off-by: Noah Silas <noah@medplum.com>

* Add $hold Scheduling operation

This is similar to $book in that it takes a result from `$find` and
persists it. There are some minor differences between the two in how the
input is manipulated before saving.

I'm taking advantage of the fact that we didn't implement this operation
with respect to the early `Schedule/:id/$find` slot-based operation;
since that original implementation we have decided that we should reduce
the surface area of the API and only offer the more powerful
`Appointment/$find` variant (as it can be used for both single-schedule
and multi-schedule booking).

This meant that I had a clean slate to start from. I've tried to
implement as much as I can in reusable helper functions so that we can
easily extend this to `$book` next.

Signed-off-by: Noah Silas <noah@medplum.com>

* Add first pass of docs for $hold

Not putting this into the navigation sidebar yet, as this endpoint isn't
very helpful by itself until you can pass a held appointment into $book.

This is a... (continued)

20978 of 23657 branches covered (88.68%)

Branch coverage included in aggregate %.

142 of 146 new or added lines in 7 files covered. (97.26%)

34580 of 36716 relevant lines covered (94.18%)

23945.24 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
94.68
0.16% packages/server/src/fhir/operations/utils/scheduling.ts
Jobs
ID Job ID Ran Files Coverage
1 25829623880.1 13 May 2026 10:22PM UTC 899
92.26
GitHub Action Run
Source Files on build 25829623880
  • Tree
  • List 773
  • Changed 90
  • Source Changed 6
  • Coverage Changed 89
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #25829623880
  • 117f8e8c on github
  • Prev Build on gh-readonly-queue/main/pr-9163-5621e1dfb0e02f838f6f53b2ffc82fc5dc2b87e3 (#25819931786)
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