Concept-set selector, criteria UX, group-editor unification & compare modes#116
Merged
p-hoffmann merged 16 commits intoJun 21, 2026
Merged
Conversation
…NY label - CriteriaEventCard: inline switch row (allow events outside observation period / restrict to same visit) for wrapped criteria via showCriteriaOptions - Default ignoreObservationPeriod=true for newly added group/nested criteria (#110) - EntryEventsList: greyed, non-interactive ANY match-type label (#100)
ConceptSetSelectionDialog now lists the cohort's local (in-definition) concept sets above the repository table: selecting a local set reuses it in place (same CodesetId), while the repository imports a fresh copy, and 'New empty set' creates one. Wired into CohortBuilder via handleLocalConceptSetSelected + :local-concept-sets=usedConceptSets.
extractConceptSets includes the { id: 0|null, name: 'Select concept set…' }
placeholders that seed not-yet-filled criteria; filter the dialog's local
list to sets with a real id (hasRealConceptSetId) so they don't surface as
bogus rows, and guard handleLocalConceptSetSelected against id-less refs.
Renamed copy with the recursive self-reference fixed and an explicit name. No feature-flag props: per #112 both inclusion rules and nested criteria want the full group feature set, so showNestedGroups/showQualifyingLimit would be dead — omitted (YAGNI).
CriteriaEventCard now renders event.nestedCriteria with the shared GroupCriteriaUI (depth threaded for the deep-nesting warning) and adapts its number|object select-concept-set payload to select-concept-set-nested.
…onverter Nested criteria can now hold sub-groups (via GroupCriteriaUI). Added recursive convertGroupToAtlasGroup / convertAtlasGroupToGroup helpers so they serialize to and from CorrelatedCriteria.Groups instead of being dropped; AtlasGroup gains a recursive Groups field.
StrataEditor, InclusionRuleDetail, IncidenceRateStratifyRuleEditor and CohortBuilder now use GroupCriteriaUI (identical contract). Updated the consumers' specs to stub/look up GroupCriteriaUI.
…riteriaEditor Both group editors are now GroupCriteriaUI. Deleted the two components and their unit/component specs (coverage ported to GroupCriteriaUI specs); removed a dead stub.
…n store loadComparisonForMode(sourceKey, otherId, mode) computes expression (client diff of items), included (compareConceptSets), or source (resolve both -> mapped source codes -> diff) and caches per mode for the current other set. loadComparison kept as an included wrapper. Other set is now retained on error.
Segmented mode buttons bound to store.comparisonMode; switching lazily computes (or serves cached) the mode, a fresh Compare clears the cache.
Source mode relabels the Code/Vocabulary columns to Source Code/Source Vocabulary; the export filename includes the active mode.
Source comparison stays implemented in the store; the toggle is gated behind SOURCE_MODE_ENABLED (false) so only Expression/Included show in the UI.
…d/error/fetch Raises CompareTab function coverage (41%→83%) so the global function-coverage threshold (77%) is met; CI unit-tests was failing only on that gate.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #116 +/- ##
===========================================
- Coverage 92.75% 92.74% -0.02%
===========================================
Files 442 442
Lines 94333 94275 -58
Branches 10672 8093 -2579
===========================================
- Hits 87502 87432 -70
- Misses 6831 6843 +12
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
GroupCriteriaUIused by both inclusion rules and nested criteria;NestedCriteriais now an alias ofCriteriaGroup, nested sub-groups round-trip through the Atlas converter, and the old editors are deleted. (UI Issues related to Correlated Criteria Editor #112)