fix(bib): elink snowball merged all seeds into one LinkSet; criteria clause (f) for code-family arm (refs #652)
All checks were successful
CI / lint (push) Successful in 32s
CI / notebooks-smoke (push) Successful in 1m37s
Deploy / notebooks (push) Has been skipped
Deploy / zotero (push) Has been skipped
Deploy / docs (push) Has been skipped
Deploy / api (push) Has been skipped
Deploy / llm (push) Has been skipped
Deploy / mc (push) Has been skipped
Infra CI / notebooks (push) Successful in 1m7s
Infra CI / zotero (push) Successful in 23s
Infra CI / docs (push) Successful in 21s
Infra CI / api (push) Successful in 1m48s
Infra CI / llm (push) Successful in 47s
Infra CI / mc (push) Successful in 22s
Deploy / report (push) Successful in 13s
CI / test (push) Successful in 13m3s

elink_cited_by sent seed PMIDs as one comma-joined id param, which
makes NCBI elink merge every seed into a single LinkSet — all citing
articles were attributed (and, in the palliative-rfi run, tagged) to
the first seed only. id now repeats per PMID so each LinkSet maps to
its own seed; the 2026-08-18 palliative snowball was re-run with
per-seed attribution (328 articles) after stripping the
mis-attributed tags.

Also adds review-question clause (f) to the palliative-rfi criteria
(records informing the proposed code family's descriptors are
includable) — synced to the live Zotero criteria anchor.
This commit is contained in:
kert
2026-08-18 12:10:58 -04:00
parent 4d3c9d4fac
commit 7ccbd2dfb0
2 changed files with 19 additions and 8 deletions

View File

@@ -54,13 +54,18 @@ def elink_cited_by(pmids: list[str], batch_size: int = 50) -> dict[str, list[str
result: dict[str, list[str]] = {}
for i in range(0, len(pmids), batch_size):
batch = pmids[i : i + batch_size]
params = _params(
dbfrom="pubmed",
db="pubmed",
id=",".join(batch),
linkname="pubmed_pubmed_citedin",
retmode="xml",
)
# `id` must repeat once per PMID: a single comma-joined value
# makes elink merge every seed into ONE LinkSet, so all citing
# articles get attributed to the first seed (bit the
# palliative-rfi snowball tagging on 2026-08-18).
params = list(
_params(
dbfrom="pubmed",
db="pubmed",
linkname="pubmed_pubmed_citedin",
retmode="xml",
).items()
) + [("id", p) for p in batch]
time.sleep(RATE_LIMIT)
try:
resp = httpx.get(f"{EUTILS_BASE}/elink.fcgi", params=params, timeout=60)

View File

@@ -211,7 +211,13 @@ included when it provides usable evidence for at least one:
management (interdisciplinary teams, home visits, 24/7 access,
care plans, post-discharge follow-up) drive outcomes;
- **(e)** how quality of palliative care management should be
measured (including CBE 3665, "feeling heard and understood").
measured (including CBE 3665, "feeling heard and understood");
- **(f)** informs the design of a proposed palliative care management
code family (palliative care screening/initial assessment;
palliative care planning; palliative care follow-up) — program
standards, interdisciplinary team composition and staffing, service
elements, assessment instruments, and documentation practices
(CAPC / NASW / Joint Commission anchored).
## Population