From 04bd4f6f4b84f39b8daf6c72a42371178c96aef1 Mon Sep 17 00:00:00 2001 From: Oliver Stolpe Date: Mon, 25 Mar 2024 11:31:39 +0100 Subject: [PATCH] feat: add a flag for incidental findings (#1121) (#1466) --- .../components/CaseDetail/CardAnnotations.vue | 2 + .../src/components/CaseDetail/FlagIcon.vue | 1 + clinvar_export/serializers.py | 1 + clinvar_export/tests/test_views_ajax.py | 1 + .../tests/unit/data/firstUserAnnotation.json | 4 +- .../management/commands/repair_result_set.py | 1 + ..._structuralvariantflags_flag_incidental.py | 18 +++++++++ svs/models/user_annos.py | 3 ++ svs/serializers/user_annos.py | 1 + svs/tests/factories.py | 1 + svs/vueapp/src/stores/strucvarFlags/store.ts | 1 + .../drf_spectacular/varfish_api_schema.yaml | 12 ++++++ varfish/vueapp/components.d.ts | 7 ++++ .../components/FlagsCard/FlagsCard.vue | 3 ++ .../varfish/components/FlagsCard/constants.ts | 6 +++ variants/file_export.py | 1 + .../0071_smallvariantflags_flag_molecular.py | 12 ------ .../migrations/0102_auto_20240322_1502.py | 37 +++++++++++++++++++ variants/models/presets.py | 1 + variants/models/userannos.py | 3 ++ variants/queries.py | 2 + variants/query_presets.py | 3 ++ variants/query_schemas.py | 2 + variants/schemas/case-query-v1.json | 11 ++++++ ...ase-query-v1-01-minimal-with-defaults.json | 1 + ...e-query-v1-02-singleton-with-defaults.json | 1 + .../examples/case-query-v1-02-singleton.json | 1 + variants/serializers/__init__.py | 2 + variants/tests/data/query_settings.py | 4 +- variants/tests/factories.py | 3 ++ variants/tests/test_file_export.py | 8 ++-- variants/tests/test_models_presets.py | 1 + variants/tests/test_query_presets.py | 4 ++ variants/tests/test_views_api.py | 1 + .../components/FilterForm/FlagsPane.fields.js | 4 ++ .../src/components/FilterForm/FlagsPane.vue | 1 + variants/vueapp/src/stores/variantFlags.ts | 1 + .../vueapp/tests/data/filter-query-store.json | 4 +- .../tests/data/listPresetSetResponse.json | 4 +- .../tests/data/listQueryResultRowResult.json | 4 +- .../tests/data/query-settings-singleton.json | 4 +- .../tests/data/query-settings-trio.json | 4 +- .../data/retrieveFlagsEtcPresetsResponse.json | 4 +- .../tests/data/retrievePresetSetResponse.json | 4 +- .../var-brca1-missense-benign-smallvar.json | 4 +- .../data/var-mtdna-noncoding-smallvar.json | 4 +- variants/vueapp/tests/data/variants-trio.json | 4 +- .../components/FilterForm/FlagsPane.spec.js | 7 +++- 48 files changed, 172 insertions(+), 41 deletions(-) create mode 100644 svs/migrations/0025_structuralvariantflags_flag_incidental.py create mode 100644 variants/migrations/0102_auto_20240322_1502.py diff --git a/cases/vueapp/src/components/CaseDetail/CardAnnotations.vue b/cases/vueapp/src/components/CaseDetail/CardAnnotations.vue index 7d12d488d..7432888d5 100644 --- a/cases/vueapp/src/components/CaseDetail/CardAnnotations.vue +++ b/cases/vueapp/src/components/CaseDetail/CardAnnotations.vue @@ -19,6 +19,7 @@ const svCommentsStore = useVariantCommentsStore() const flagIds = [ 'flag_bookmarked', + 'flag_incidental', 'flag_candidate', 'flag_final_causative', 'flag_for_validation', @@ -42,6 +43,7 @@ const buildComputedAnnoCountByFlag = (theList: Map) => { return computed<{ [flagId in FlagIds]: number }>(() => { const result = { flag_bookmarked: 0, + flag_incidental: 0, flag_candidate: 0, flag_final_causative: 0, flag_for_validation: 0, diff --git a/cases/vueapp/src/components/CaseDetail/FlagIcon.vue b/cases/vueapp/src/components/CaseDetail/FlagIcon.vue index a19fc4621..61b0254f6 100644 --- a/cases/vueapp/src/components/CaseDetail/FlagIcon.vue +++ b/cases/vueapp/src/components/CaseDetail/FlagIcon.vue @@ -9,6 +9,7 @@ const props = defineProps<{