{ "translatorID":"fcf41bed-0cbc-3704-85c7-8062a0068a7a", "translatorType":12, "label":"NCBI PubMed", "creator":"Simon Kornblith, Michael Berkowitz and Rintze Zelle", "target":"http://[^/]*(www|preview)\\.ncbi\\.nlm\\.nih\\.gov[^/]*/(pubmed|sites/entrez|entrez/query\\.fcgi\\?.*db=PubMed)", "minVersion":"1.0.0b3.r1", "maxVersion":"", "priority":100, "inRepository":true, "lastUpdated":"2009-10-22 19:00:00" } function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { if (prefix == 'x') return namespace; else return null; } : null; var items = doc.evaluate('//input[@name="EntrezSystem2.PEntrez.Pubmed.Pubmed_ResultsPanel.Pubmed_ResultsController.ResultCount"]', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); if (items) { if (items.value > 1) { return "multiple"; } else if (items.value == 1) { return "journalArticle"; } } var uids = doc.evaluate('//input[@type="checkbox" or @name="uid"]', doc, nsResolver, XPathResult.ANY_TYPE, null); if(uids.iterateNext() && doc.title.indexOf("PMC Results") == -1) { if (uids.iterateNext() && doc.title.indexOf("PMC Results") == -1){ return "multiple"; } return "journalArticle"; } } function getPMID(co) { var coParts = co.split("&"); for each(part in coParts) { if(part.substr(0, 7) == "rft_id=") { var value = unescape(part.substr(7)); if(value.substr(0, 10) == "info:pmid/") { return value.substr(10); } } } } function detectSearch(item) { if(item.contextObject) { if(getPMID(item.contextObject)) { return "journalArticle"; } } return false; } function lookupPMIDs(ids, doc) { Zotero.wait(); var newUri = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=PubMed&retmode=xml&rettype=citation&id="+ids.join(","); Zotero.Utilities.HTTP.doGet(newUri, function(text) { // Remove xml parse instruction and doctype text = text.replace(/]*>/, "").replace(/<\?xml[^>]*\?>/, ""); var xml = new XML(text); for(var i=0; i pageRangeEnd.length) { pageRangeEnd = pageRangeStart.substring(0,pageRangeStart.length-pageRangeEnd.length) + pageRangeEnd; fullPageRange = fullPageRange.replace(pageRange[j],pageRangeStart+"-"+pageRangeEnd); } } newItem.pages = fullPageRange; } if(article.Journal.length()) { var issn = article.Journal.ISSN.text().toString(); if(issn) { newItem.ISSN = issn; } if(citation.Article.Journal.ISOAbbreviation.length()) { newItem.journalAbbreviation = Zotero.Utilities.superCleanString(citation.Article.Journal.ISOAbbreviation.text().toString()); } else if(citation.MedlineJournalInfo.MedlineTA.length()) { newItem.journalAbbreviation = Zotero.Utilities.superCleanString(citation.MedlineJournalInfo.MedlineTA.text().toString()); } if(article.Journal.Title.length()) { newItem.publicationTitle = Zotero.Utilities.superCleanString(article.Journal.Title.text().toString()); } else if(newItem.journalAbbreviation.length()) { newItem.publicationTitle = newItem.journalAbbreviation; } if(article.Journal.JournalIssue.length()) { newItem.volume = article.Journal.JournalIssue.Volume.text().toString(); newItem.issue = article.Journal.JournalIssue.Issue.text().toString(); if(article.Journal.JournalIssue.PubDate.length()) { // try to get the date if(article.Journal.JournalIssue.PubDate.Day.text().toString() != "") { newItem.date = article.Journal.JournalIssue.PubDate.Month.text().toString()+" "+article.Journal.JournalIssue.PubDate.Day.text().toString()+", "+article.Journal.JournalIssue.PubDate.Year.text().toString(); } else if(article.Journal.JournalIssue.PubDate.Month.text().toString() != "") { newItem.date = article.Journal.JournalIssue.PubDate.Month.text().toString()+" "+article.Journal.JournalIssue.PubDate.Year.text().toString(); } else if(article.Journal.JournalIssue.PubDate.Year.text().toString() != "") { newItem.date = article.Journal.JournalIssue.PubDate.Year.text().toString(); } else if(article.Journal.JournalIssue.PubDate.MedlineDate.text().toString() != "") { newItem.date = article.Journal.JournalIssue.PubDate.MedlineDate.text().toString(); } } } } if(article.AuthorList.length() && article.AuthorList.Author.length()) { var authors = article.AuthorList.Author; for(var j=0; j