Skip to main content

Module pubmed

Module pubmed 

Source
Expand description

PubMed identifiers (#500, ADR-0061): a PMID or PMCID is resolved to the DOI PubMed lists for it, and the paper is then fetched, cited and stored under that DOI like any other.

A PubMed-identified entry used to be reported and left: “identified only by PMID, which doiget cannot resolve yet”. It is now an alias. The store identity stays the DOI, so no safekey class, no Ref variant and no store layout change: the id is looked up once, through NCBI E-utilities (esummary.fcgi, db=pubmed for a PMID, db=pmc for a PMCID), and the articleids[] entry with idtype == "doi" is the answer. A record with no DOI there is reported as such, never guessed from.

NCBI’s usage guidance (NBK25497): at most 3 requests a second without an API key, which is tighter than doiget’s global cap and therefore a crate::SOURCE_RATE_OVERRIDES entry; tool and email identify the caller and are sent (the email only when one is configured). doiget sends no API key, so the 10-a-second keyed rate is never assumed.

Structs§

Digits
The numeric part of a PubMed id: 1 to 12 ASCII digits. Only PubmedId::parse and PubmedId::from_kind make one, so a PubmedId always holds a valid id (#649 review).
Unresolved
A bibliography entry PubMed could not turn into a DOI.

Enums§

Lookup
What PubMed says about an id.
PubmedId
A PubMed identifier.
Resolved
One bibliography entry after PubMed resolution.

Constants§

NCBI
HTTP and rate-limiter source key for NCBI E-utilities.
NCBI_BASE_ENV
Base-URL override for NCBI.

Functions§

lookup
Ask NCBI E-utilities for the DOI of id.
lookup_in_session
lookup as its own logged session: session_start before and session_end after, for a caller whose context exists only for the lookup – so its resolve row is bracketed like every other call’s.
resolve_entries
Resolve every PMID / PMCID entry of a parsed bibliography to its DOI, leaving every other entry as it was. One request per PubMed id, at NCBI’s rate.
resolve_entries_in_session
resolve_entries as its own logged session (see lookup_in_session).