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

HicServices / RDMP / 26280563841
57%

Build:
DEFAULT BRANCH: develop
Ran 22 May 2026 10:25AM UTC
Jobs 2
Files 1157
Run time 4min
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: 57.104%. Remained the same
26280563841

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)

11554 of 21769 branches covered (53.08%)

Branch coverage included in aggregate %.

1 of 4 new or added lines in 1 file covered. (25.0%)

2 existing lines in 1 file now uncovered.

32679 of 55691 relevant lines covered (58.68%)

18115.09 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
83.05
-0.26% Rdmp.Core/Providers/CatalogueChildProvider.cs

Coverage Regressions

Lines Coverage ∆ File
2
29.37
-0.37% Rdmp.Core/DataLoad/Modules/Attachers/MDFAttacher.cs
Jobs
ID Job ID Ran Files Coverage
1 unit tests - 26280563841.1 22 May 2026 10:25AM UTC 2270
36.25
GitHub Action Run
2 unit tests - 26280563841.2 22 May 2026 10:28AM UTC 2270
36.26
GitHub Action Run
Source Files on build 26280563841
  • Tree
  • List 1157
  • Changed 3
  • Source Changed 1
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #26280563841
  • cd5f6ff2 on github
  • Prev Build on develop (#26280548007)
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