A calibration may only supersede another calibration on the same score set. Porting is the one flow that legitimately crosses score sets: when score set B supersedes score set A, B starts with no calibrations, and A's calibrations are neither visible from B nor reachable through it.
Proposed behavior
When a score set supersedes another, offer to carry the superseded score set's calibrations onto the successor. Each ported calibration is a new calibration on B that supersedes its original on A, so the supersession chain runs in parallel at both levels.
Open for the design:
- whether porting happens at score set creation, at publication, or as a separate action afterwards
- whether the ranges and thresholds are copied verbatim or require re-fitting against B's scores, which are not the same scores
- what happens to
primary and to investigator_provided on the ported copy
- whether community calibrations on A are portable at all, or only investigator-provided ones
Acceptance criteria
- a calibration on B may supersede a calibration on A only when B supersedes A, and only in that direction
- the general same-score-set constraint on supersession still holds everywhere else
get_score_calibrations_for_score_set on A does not lose a calibration to a supersession row that lives on B without B being reachable from A
promote_score_calibration_to_primary does not demote across score sets
A calibration may only supersede another calibration on the same score set. Porting is the one flow that legitimately crosses score sets: when score set B supersedes score set A, B starts with no calibrations, and A's calibrations are neither visible from B nor reachable through it.
Proposed behavior
When a score set supersedes another, offer to carry the superseded score set's calibrations onto the successor. Each ported calibration is a new calibration on B that supersedes its original on A, so the supersession chain runs in parallel at both levels.
Open for the design:
primaryand toinvestigator_providedon the ported copyAcceptance criteria
get_score_calibrations_for_score_seton A does not lose a calibration to a supersession row that lives on B without B being reachable from Apromote_score_calibration_to_primarydoes not demote across score sets