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

medplum / medplum / 25339682835
92%
main: 92%

Build:
Build:
LAST BUILD BRANCH: fix/core-harden-base64-test-mocks
DEFAULT BRANCH: main
Ran 04 May 2026 07:50PM UTC
Jobs 1
Files 770
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

04 May 2026 07:44PM UTC coverage: 91.711%. Remained the same
25339682835

push

github

web-flow
Introduce Appointment/$find multi-schedule search (#8793)

* Extract $find internals into helper function

Quick first pass: pull the function body into a separate function. This
will help make future diffs easier to read.

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

* Rename findOperation definition -> scheduleFindOperation

In an upcoming commit I'm going to be adding more $find operations, so
this name would be confusing. Applied a similar rename to its parameters
type.

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

* Multi-schedule $find initial implementation

This prepares for the future Appointment/$find.

We take multiple schedule references, and find intervals where all the
schedules are available. For each possible slot, we return an array of
Slot resources representing what $book should create.

In this commit, it's only used by the single-schedule endpoint, which
filters to the Slot resources that represent the scheduleable time,
ignoring those representing bufferBefore/bufferAfter blockages.

Committing this by itself helps verify that the single schedule use case
works by running the existing `Schedule/:id/$find` test suite.

Implementation Notes:
- Handling of bufferBefore/bufferAfter has been adjusted; previously I
  was looking for availability wide enough to include the buffers, but
  that doesn't work well for multi-schedule situations where each
  schedule can have distinct buffer requirements.

  By applying the buffer requirements to each calendar directly
  (reducing the size of each availability window for that calendar by
  the buffer amounts), we ensure that all the times inside each window
  have the requisite availability. We can then intersect all those
  actual availability windows normally.

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

* Introduce Appointment/$find multi-schedule search

This type-level operation receives multiple schedule references as
input, and finds times that a given appointment type can be creat... (continued)

18564 of 21177 branches covered (87.66%)

Branch coverage included in aggregate %.

92 of 99 new or added lines in 4 files covered. (92.93%)

33628 of 35732 relevant lines covered (94.11%)

13400.62 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
86.82
7.41% packages/server/src/fhir/operations/find.ts
2
92.61
-1.31% packages/server/src/fhir/operations/utils/scheduling-parameters.ts
Jobs
ID Job ID Ran Files Coverage
1 25339682835.1 04 May 2026 07:50PM UTC 770
91.71
GitHub Action Run
Source Files on build 25339682835
  • Tree
  • List 770
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 8905a3d6 on github
  • Prev Build on gh-readonly-queue/main/pr-9108-391f2d7299b97a20414caa8fb01c34d3b77b06f3 (#25330765373)
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