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

HicServices / RDMP / 26280563841 / 1
57%
develop: 57%

Build:
DEFAULT BRANCH: develop
Ran 22 May 2026 10:25AM UTC
Files 2270
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

22 May 2026 09:44AM UTC coverage: 36.253% (-0.002%) from 36.255%
26280563841.1

push

github

web-flow
Cohort Builder: inject joinable knowledge after partial-refresh rebuild (#2335)

* Cohort Builder: inject joinable knowledge after partial-refresh rebuild

After a partial refresh that calls BuildAggregateConfigurations() (e.g.
SelectiveRefresh on a CohortAggregateContainer, fired on container
rename / move), every AggregateConfiguration in AllAggregateConfigurations
is replaced with a fresh DB-fetched instance.  These fresh instances
have their JoinableCohortAggregateConfiguration Lazy initialised to the
default DB-fetching variant.

Any subsequent enumeration that calls IsJoinablePatientIndexTable() then
triggers one Repository.GetAllObjectsWithParent<...>(this) round-trip
per AggregateConfiguration.  At HIC scale this manifests as a >7 second
freeze when constructing the cohort builder's right-click context menu,
because ExecuteCommandAddAggregateConfigurationToCohortIdentificationSetContainer's
constructor filters AllAggregateConfigurations by IsJoinablePatientIndexTable.

The main CatalogueChildProvider constructor already does this injection
explicitly (see "joinableDictionaryByAggregateConfigurationId" block
~line 441), with the comment "We can inject this knowledge now so to
avoid database lookups later".  The partial-refresh path was missing
the same step.

Fix: at the end of BuildAggregateConfigurations(), re-inject the joinable
knowledge from AllJoinables if it has already been populated by a prior
full rebuild.  No-op on the very first call (main constructor) where
AllJoinables is still null at this point — the existing explicit
injection block handles that case.

Measured impact on a HIC-scale platform database: container rename
freeze drops from ~10.4s to expected ~1.5-2s (saves the ~7s of
N×DB-queries from the menu rebuild).  No behavioural change otherwise;
the in-memory result is identical to what the main constructor's
explicit injection produces.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Update CHANGEL... (continued)

13836 of 42805 branches covered (32.32%)

Branch coverage included in aggregate %.

41110 of 108758 relevant lines covered (37.8%)

4644.67 hits per line

Source Files on job unit tests - 26280563841.1
  • Tree
  • List 2270
  • Changed 762
  • Source Changed 1
  • Coverage Changed 762
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 26280563841
  • cd5f6ff2 on github
  • Prev Job for on develop (#26280548007.1)
  • Next Job for on develop (#26516768498.2)
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