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

medplum / medplum / 25829623880 / 1
92%
main: 92%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/main/pr-9321-f3d64a84d502f50376da872a9b77ca743de0db93
DEFAULT BRANCH: main
Ran 13 May 2026 10:22PM UTC
Files 899
Run time 29s
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.261% (+0.02%) from 92.238%
25829623880.1

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)

21828 of 24639 branches covered (88.59%)

Branch coverage included in aggregate %.

44288 of 47023 relevant lines covered (94.18%)

18696.67 hits per line

Source Files on job 25829623880.1
  • Tree
  • List 899
  • Changed 90
  • Source Changed 6
  • Coverage Changed 89
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 25829623880
  • 117f8e8c on github
  • Prev Job for on gh-readonly-queue/main/pr-9148-bd8de5b05242abd30d88d736fb04564de9226874 (#25819931786.1)
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