Skip to content

fix(pubmed): usar journal-id[nlm-ta] em JournalTitle em vez da abreviação SciELO#1244

Open
Rossi-Luciano wants to merge 1 commit into
scieloorg:masterfrom
Rossi-Luciano:fix/1235-pubmed-journal-title-nlm-ta
Open

fix(pubmed): usar journal-id[nlm-ta] em JournalTitle em vez da abreviação SciELO#1244
Rossi-Luciano wants to merge 1 commit into
scieloorg:masterfrom
Rossi-Luciano:fix/1235-pubmed-journal-title-nlm-ta

Conversation

@Rossi-Luciano

Copy link
Copy Markdown
Collaborator

O que esse PR faz?

Corrige get_journal_title() em packtools/sps/formats/pubmed.py, que gerava a tag <JournalTitle> do XML PubMed usando journal_meta.Title.abbreviated_journal_title — a abreviação genérica de título registrada na SciELO (abbrev-journal-title[@abbrev-type="publisher"]).

O guia SPS 1.10 e a doc oficial do PubMed (NBK3828) especificam que JournalTitle deve ser a abreviação registrada no próprio PubMed (NLM Title Abbreviation), disponível em journal-id[@journal-id-type="nlm-ta"] — presente apenas quando o periódico é indexado no PubMed. O model journal_meta.JournalID.nlm_ta já existia no código mas não era usado por este pipeline.

A função passa a priorizar nlm-ta, com fallback para abbreviated_journal_title quando nlm-ta está ausente (necessário porque JournalTitle é um elemento obrigatório na DTD do PubMed — omiti-lo geraria XML inválido para periódicos não indexados).

Onde a revisão poderia começar?

packtools/sps/formats/pubmed.py, função get_journal_title (linha ~47). É a única função alterada; xml_pubmed_journal_title_pipe, que a consome, não muda.

Como este poderia ser testado manualmente?

  1. Rodar a suíte: source .venv/bin/activate && python -m pytest tests/sps/formats/test_pubmed.py -v (47 passed: 46 originais + 1 novo, cobrindo a prioridade de nlm-ta sobre abbrev-journal-title).
  2. Comparar antes/depois com um artigo real indexado no PubMed:
    from packtools.sps.formats import pubmed
    from packtools.sps.utils import xml_utils
    
    xml_tree = xml_utils.get_xml_tree('tests/samples/0034-7094-rba-69-03-0227.xml')
    print(pubmed.get_journal_title(xml_tree))
    Antes deste PR: 'Rev. Bras.\n Anestesiol.' (abreviação genérica da SciELO, com quebras de linha do XML fonte preservadas). Depois: 'Rev Bras Anestesiol' (valor correto de journal-id[@journal-id-type="nlm-ta"], sem os artefatos de whitespace).

Algum cenário de contexto que queira dar?

Parte da quebra da #1226 (conversor SPS 1.10 → PubMed XML) em sub-issues. Este bug foi identificado durante o levantamento inicial de contexto da #1226, antes mesmo de abrir as sub-issues: o model JournalID.nlm_ta já existia no código, mas nunca tinha sido conectado a este pipeline. Independente das demais sub-issues (não depende nem é dependência de nenhuma outra).

Screenshots

Não se aplica — mudança em geração de XML, sem interface gráfica.

Quais são tickets relevantes?

Closes #1235. Relacionado a #1226 (issue-mãe).

Referências

…ação SciELO

get_journal_title() usava journal_meta.Title.abbreviated_journal_title
(abrev-journal-title[@abbrev-type="publisher"], a abreviação genérica
da SciELO). O guia SPS 1.10 e a DTD do PubMed esperam a abreviação
registrada no PubMed, disponível em
journal-id[@journal-id-type="nlm-ta"] quando o periódico é indexado.

Passa a usar journal_meta.JournalID.nlm_ta, com fallback para
abbreviated_journal_title quando nlm-ta está ausente (JournalTitle é
obrigatório na DTD do PubMed).

Refs scieloorg#1226, scieloorg#1235
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pubmed XML: corrigir JournalTitle para usar journal-id[@journal-id-type="nlm-ta"]

2 participants