Home > News

News

17.04.2025
References were updated (as usual, weekly), however with all dates corrected using the RIS field "DA" (derived from "ET") instead of "PY" for better importing into Zotero and, consequently, into MySQL with the ZotSpip plugin. I am working on a bash script to automatically select senior researchers (i.e. last author with affiliation to a Swiss emergency department and at least 4 articles published) from the RIS file exported from Scopus. I am still making progress, but I’m improving (full names not working, some known authors are missing). If you have any suggestions, please contact me via email. Here is the script so far:

#!/bin/bash

file="$1"

awk '
BEGIN {
RS = "ER  -"; FS = "\n"; IGNORECASE = 1
tag_re = "^[A-Z0-9]{2}  -"
}
{
last_au = ""
n1_block = ""
in_n1 = 0
ad_block = ""
ad_last = ""

for (i = 1; i <= NF; i++) {
line = $i

if (line ~ /^AU  - /) {
last_au = substr(line, 7)
}

if (line ~ /^AD  - /) {
ad_block = substr(line, 7)
} else if (ad_block != "" && line !~ tag_re) {
ad_block = ad_block "\n" line
} else if (line ~ tag_re && ad_block != "") {
split(ad_block, ad_lines, "\n")
ad_last = ad_lines[length(ad_lines)]
ad_block = ""
}

if (line ~ /^N1  - /) {
in_n1 = 1
n1_block = substr(line, 7)
} else if (in_n1 && line !~ tag_re) {
n1_block = n1_block "\n" line
} else if (line ~ tag_re) {
in_n1 = 0
}
}

# Final AD block if at end
if (ad_block != "") {
split(ad_block, ad_lines, "\n")
ad_last = ad_lines[length(ad_lines)]
}

lc_ad = tolower(ad_last)

if (lc_ad ~ /switzerland/ && lc_ad ~ /emergency/ && lc_ad ~ /department/) {

full_name = ""
n = split(n1_block, n1_lines, "\n")
for (j = 1; j <= n; j++) {
if (n1_lines[j] ~ last_au) {
full_name = n1_lines[j]
break
}
}

# Count the qualifying last author
count[last_au]++
fullname[last_au] = full_name
lastaffil[last_au] = ad_last
}
}
END {
# Sort authors alphabetically and print their details
for (a in count) {
if (count[a] >= 4) {
# Print the author and their affiliation in alphabetical order
authors_sorted[a] = fullname[a]
}
}

# Sort and print authors alphabetically
n = asorti(authors_sorted, sorted_authors)
for (i = 1; i <= n; i++) {
author = sorted_authors[i]
print author
print lastaffil[author]
print "---"
}
}
' "$file"

30.01.2025
Updated the references using both Scopus and PubMed :-) Unfortunately, however not using open-source/free software at the moment :-( I first imported the library from Zotero into EndNote (X9), then imported the PubMed search results (see search string below), with initially around 5,400 items, without duplicates (EndNote function), resulting in 150 items remaining (after some manual fixing because of some wrong lines). I then exported the list to Excel (csv), where the affiliations were stored in a single cell but across multiple lines. To search for specific affiliations (keywords listed below), I used VBA:

Function CheckKeywordsCHED(cell As Range) As String
Dim lines As Variant, line As Variant

' Split cell content into individual lines
lines = Split(cell.Value, vbLf)

' Loop through each line
For Each line In lines
' Check if all the keywords appear in a single line
If InStr(1, line, "emergency", vbTextCompare) > 0 And _
InStr(1, line, "department", vbTextCompare) > 0 And _
InStr(1, line, "switzerland", vbTextCompare) > 0 Then
CheckKeywordsInLine = "Match"
Exit Function ' Stop checking once a match is found
End If
Next line

' If no match was found in any line
CheckKeywordsInLine = "No Match"
End Function

I selected the "matched" references in EndNote and re-imported them into Zotero. After deduplication, 28 additional articles were identified. I’m not sure if this approach could be useful in the future, but it demonstrates an alternative search strategy. In any case, the Traumox2 trial was correctly identified ;-)

18.01.2025
Updated the references. I am currently working on an R script to search PubMed using the easyPubMed library. The script includes XML parsing to filter affiliations and expand the database. However, I am still encountering challenges due to the heterogeneity of the data in PubMed. Progress is being made, and I am getting closer to a solution.

For your reference, following the latest draft. If you would like to assist or have any suggestions to address this issue, please feel free to reach out to me at info@emresearch.ch.

library(easyPubMed)
library(XML)

# Search PubMed for articles with the query
query <- "(Emergency[Affiliation] AND Department[Affiliation] AND Switzerland[Affiliation])"
pubmed_ids <- get_pubmed_ids(query)

# Fetch article metadata
xml_data <- fetch_pubmed_data(pubmed_ids)

# Parse the XML data to extract affiliations
parsed_data <- xmlParse(xml_data)
affiliations <- xpathSApply(parsed_data, "//Affiliation", xmlValue)

# Filter for affiliations containing all three keywords from the query for each single author and exclude the same terms as in the Scopus query
filtered_affiliations <- affiliations[
grepl("Emergency", affiliations, ignore.case = TRUE) &
grepl("Department", affiliations, ignore.case = TRUE) &
grepl("Switzerland", affiliations, ignore.case = TRUE) &
!grepl("intensive", affiliations, ignore.case = TRUE) &
!grepl("critical", affiliations, ignore.case = TRUE) &
!grepl("anesth*", affiliations, ignore.case = TRUE) &
!grepl("anaesth*", affiliations, ignore.case = TRUE) &
!grepl("psych*", affiliations, ignore.case = TRUE) &
!grepl("radiol*", affiliations, ignore.case = TRUE)
]

20.12.2024
Updated the references and senior researchers’ list. The default citation style is now the Chicago Manual of Style for better readability (removing full links and access tags). Full list of author names is included, aligning with the focus of this collection. Notably, some studies, such as TRAUMOX2, are published but not yet indexed in Scopus, though they are available in PubMed. I will monitor this and consider integrating a PubMed search if needed.

13.12.2024
Updated the references and standardized the publication date format to enable filtering by date and year, ensuring that the newest articles appear first. Senior researchers’ list was last updated on December 5, 2024. Updates are now scheduled weekly.