From 930c99d5b685d4f3a4325dc58302cbe76c51e40b Mon Sep 17 00:00:00 2001 From: TheMadBug Date: Fri, 19 Jul 2024 11:04:07 +1000 Subject: [PATCH] SACGF/variantgrid_private#3680 ClinVar uploads - Also fix the ID portion of BookShelf NBK --- classification/models/clinvar_export_convertor.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/classification/models/clinvar_export_convertor.py b/classification/models/clinvar_export_convertor.py index 1d2454d3b..1af63a0f4 100644 --- a/classification/models/clinvar_export_convertor.py +++ b/classification/models/clinvar_export_convertor.py @@ -1,3 +1,4 @@ +import re from dataclasses import dataclass from functools import cached_property from typing import Any, Mapping, TypedDict, Optional @@ -280,6 +281,8 @@ class ClinVarExportConverter: # classification_flag_types.classification_not_public - this has special handling to include a comment } + BOOKSHELF_ID_RE = re.compile(".*(NBK[0-9]+)") + def __init__(self, clinvar_export_record: ClinVarExport): """ :param clinvar_export_record: the record to use as a basis to convert to ClinVar json (with validation) @@ -322,10 +325,14 @@ def citations(self) -> list[ValidatedJson]: citation_list = [] for citation in CitationFetchRequest.fetch_all_now(request_ids).all_citations: if clinvar_db := ClinVarExportConverter.CITATION_SOURCE_TO_CLINVAR.get(citation.source): - # NEED to test for NBCI + citation_id = citation.id + if citation.source == CitationSource.NCBI_BOOKSHELF: + if m := ClinVarExportConverter.BOOKSHELF_ID_RE.match(): + citation_id = m.group(1) + citation_json = { "db": clinvar_db, - "id": citation.id + "id": citation_id } messages = JSON_MESSAGES_EMPTY