diff --git a/varfish/vueapp/src/components/SubmissionList.vue b/varfish/vueapp/src/components/SubmissionList.vue index df45f87a8..ca607c71e 100644 --- a/varfish/vueapp/src/components/SubmissionList.vue +++ b/varfish/vueapp/src/components/SubmissionList.vue @@ -17,9 +17,9 @@ v-for="item in submissionList" :key="item.sodar_uuid" :class="{ active: (item === currentSubmission) }" - @click="onListItemClicked(item.sodar_uuid)" > {{ getSubmissionLabel(item) }} + ({{ getSubmissionIndividualsLabel(item) }})
@@ -41,60 +41,75 @@

- Create a new submission by selecting one of the variants below or - - - create empty. - + Create new submissions by selecting from the variants below and clicking . + If you select no variant, a blank submission will be created.

@@ -177,12 +194,15 @@ export default { modalIncludeFinalCausatives: true, modalIncludeAcmg3: false, modalIncludeAcmg4: true, - modalIncludeAcmg5: true + modalIncludeAcmg5: true, + individualFilter: '', + onlyAddAffected: true } }, computed: { ...mapState({ individuals: state => state.clinvarExport.individuals, + submissionIndividuals: state => state.clinvarExport.submissionIndividuals, submissions: state => state.clinvarExport.submissions, currentSubmissionSet: state => state.clinvarExport.currentSubmissionSet, currentSubmission: state => state.clinvarExport.currentSubmission, @@ -216,6 +236,11 @@ export default { return { ...smallVar, flags, rating, comments } }) .filter(smallVar => { + if (this.individualFilter) { + if (!smallVar.caseNames.some(s => s.includes(this.individualFilter))) { + return false + } + } if (this.modalIncludeAll) { return true } else if (this.modalIncludeComments && smallVar.comments.length > 0) { @@ -252,6 +277,20 @@ export default { getSubmissionLabel, validConfirmed, + getSubmissionIndividualsCount (item) { + return item.submission_individuals.length + }, + getSubmissionIndividualsLabel (item) { + console.log(item.submission_individuals) + console.log(this.submissionIndividuals) + let names = item.submission_individuals.map( + uuid => this.individuals[this.submissionIndividuals[uuid].individual].name.replace(/-N.-DNA.-....$/, '') + ) + if (names.length > 2) { + names = names.slice(0, 2) + ['...'] + } + return names.join(', ') + }, getVariantLabel (item) { return `${item.refseq_gene_symbol}:${item.refseq_hgvs_p || ''}` }, @@ -274,11 +313,13 @@ export default { } }, + // XXX onListItemClicked (item) { this.validConfirmed(() => { this.selectCurrentSubmission(item) }) }, + // XXX onCreateEmptySubmissionClicked () { this.createSubmissionInCurrentSubmissionSet({ smallVariant: null, diff --git a/varfish/vueapp/src/store/modules/clinvarExport.js b/varfish/vueapp/src/store/modules/clinvarExport.js index 529eec05d..0231cafd0 100644 --- a/varfish/vueapp/src/store/modules/clinvarExport.js +++ b/varfish/vueapp/src/store/modules/clinvarExport.js @@ -103,10 +103,17 @@ const actions = { * Changes will be committed through `wizardSave`. */ createNewSubmissionSet ({ state, commit }) { + const titles = Object.values(state.submissionSets).map(submissionSet => submissionSet.title) + let title = 'New Submission Set' + let i = 2 + while (titles.includes(title)) { + title = 'New Submission Set #' + i + i += 1 + } const submissionSet = { sodar_uuid: uuidv4(), date_modified: new Date().toLocaleString(), - title: 'New Submission', + title: title, state: 'draft', sort_order: Object.keys(state.submissionSets).length, submitter: null, @@ -117,6 +124,7 @@ const actions = { commit('ADD_SUBMISSION_SET', submissionSet) commit('SET_CURRENT_SUBMISSION_SET', submissionSet.sodar_uuid) + commit('SET_WIZARD_STATE', WizardState.submissionSet) commit('SET_APP_STATE', AppState.add) }, /** @@ -867,8 +875,8 @@ const mutations = { phenotypes: JSON.parse(JSON.stringify(state.individuals[individual.sodar_uuid].phenotype_terms)), variant_zygosity: variantZygosity, variant_allele_count: variantAlleleCount, - variant_origin: 'not provided', - source: 'not provided', + variant_origin: 'germline', + source: 'clinical testing', tissue: 'Blood', citations: [] } @@ -898,8 +906,8 @@ const mutations = { phenotypes: JSON.parse(JSON.stringify(individual.phenotype_terms || [])), variant_allele_count: variantAlleleCount, variant_zygosity: variantZygosity, - variant_origin: 'not provided', - source: 'not provided', + variant_origin: 'germline', + source: 'clinical testing', tissue: 'Blood', citations: [] }