Skip to content

Add per-organization, versioned specification codes - #1561

Draft
susannasiebert wants to merge 80 commits into
mainfrom
versioned-specification-codes
Draft

susannasiebert wants to merge 80 commits into
mainfrom
versioned-specification-codes

Conversation

@susannasiebert

Copy link
Copy Markdown
Contributor

Closes #1348

This PR implements per-organization, versioned specification codes by adding three new tables:

  • Specifications track a specific published document that outlines how an organization may want to modify an established guideline for evaluating pathogenicity, oncogenicity, or clinical impact (in addition to those guidelines themselves). This is needed for SC-VCEPs, which modify these guidelines to better fit their area of interest. Specifications track a version, an issuing organization (optional), PubMed IDs and specification document linkout URLs, an is_draft status for specifications that haven't been finalized yet, the assertion_type that the specification applies to, and a publication date (plus a few other fields that are mostly for internal use).
    • This table also keeps track of a list of assessment groups, their ordering, and group description. Assessment groups are used to logically group oncogenicity and pathogenicity SpecificationCriterion (see more details under "SpecificationCriterion" below) in a way that makes overall evaluation of these criteria easier for users. This can, e.g. help for cases where multiple criteria look at the same measurement (e.g. population frequency) and each criteria represents a certain range of values for that measurement. In these cases users may want to look at the sets of criteria in the same assessment group together and pick the one that applies.
    • This table also tracks a parent/previous specification when a specification is based on another specification (e.g. the FGFR oncogenicity specification is based on the ClinGen/CGC/VICC oncogenicity guidelines) or when a new version of a specification is released.
  • SpecificationCriterion track a single criterion that is available under a given spec, its description/help text, a list of available strength modifiers, a list of mutually exclusive codes, the assessment group criterion belongs to, and its position within the assessment group.
  • SpecificationEvaluation link criteria to an assertion. Each evaluation entry tracks the evaluation status, an applied modifier (optional), a justification for the chosen evaluation status (optional), and a list of evidence items supporting the evaluation.

This PR also implements a new form, the specification-submit form. This form is used to submit or revise evaluations. This is a multi-part form. First, it displays a set of available specifications based on which ones are applicable for the assertion, based on assertion type and previously evaluated specifications. Once a specification is selected, it displays details about the specification. A second form is then auto-generated based on the criteria available for the selected specification. For oncogenicity and pathogenicity evaluations, the criteria are displayed inside of a stepper component where each assessment group is a separate step. Selecting multiple criteria in an assessment group as "met" will cause a validation error. Selecting mutually exclusive codes as met will also cause a validation error. The form also displays an evaluation summary that displays the full list of criteria as tags., with colors to represent the chosen evaluation status. For clinical impact evaluations, the available criteria for the selected specification populate a drop down and one criteria can be selected. On submission, the a new submit_criteria_evaluation mutation is called which will either create a set of criteria evaluations (one for each criteria in the spec for oncogenicity/pathogenicity - or a single evaluation for clinical impact) if there are no existing evaluations for the spec or it will revise the exiting evaluation(s). For evaluations of clinical impact, a switch from one AMP/ASCO/CAP category to another is a revision to the selected specification criteria of the single evaluation - instead of a separate evaluation.

All evaluated specs are displayed on the assertion summary (one description item component per evaluated spec). For oncogenicity and pathogenicity these display tags for met codes. For these assertion types there is now also a new "Oncogenicity Evaluations" or "Pathogenicity Evaluations" tab, which shows the full details for each evaluated specification, its codes and evaluation results (status, modifier, justification, evidence items). Draft specifications are clearly marked with a "Draft" warning tag or warning banner, depending on context.

The revisions tab will have additional tabs, one for each evaluated specification. For onogenicity and pathogenicity, there is one subtab per criteria with any revisions to the evaluation for that specific criteria available there. For clinical impact, there is no subtab and the revisions to the single evaluation are shown.

acoffman and others added 30 commits April 8, 2026 17:14
…b/civic-v2 into versioned-specification-codes
…b/civic-v2 into versioned-specification-codes
@susannasiebert
susannasiebert force-pushed the versioned-specification-codes branch from 7e2cb14 to 8d3a65d Compare October 28, 2026 12:58
@susannasiebert
susannasiebert force-pushed the versioned-specification-codes branch from 8d3a65d to 0bd3852 Compare October 28, 2026 13:01
@github-actions

Copy link
Copy Markdown

You must specify one of the following labels: bugfix, housekeeping, new-feature, enhancement, ignore-for-release, dependencies in order for this PR to appear in the release notes.

@susannasiebert susannasiebert added the new-feature PR Label for newly added features. Will appear in release notes. label Oct 28, 2026
@susannasiebert
susannasiebert force-pushed the versioned-specification-codes branch from a8e2507 to 64d5594 Compare October 28, 2026 14:44
@susannasiebert
susannasiebert force-pushed the versioned-specification-codes branch from 64d5594 to 8c244d4 Compare October 28, 2026 14:49
@susannasiebert
susannasiebert force-pushed the versioned-specification-codes branch from fe7941e to 778115c Compare October 30, 2026 18:28
@susannasiebert
susannasiebert force-pushed the versioned-specification-codes branch from 622967e to a7ed0c5 Compare November 2, 2026 13:54
@susannasiebert
susannasiebert force-pushed the versioned-specification-codes branch from 85810bc to 6d84c46 Compare November 4, 2026 15:12

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-feature PR Label for newly added features. Will appear in release notes.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Versioned Sets of Specification Codes

2 participants