CoolFace
Datasetpublic

NLP-FBK/e3c-crf-italian

Here we realease the dataset to perform the Case Report Forms filling task obtained from The European Clinical Case Corpus as described in the paper Converting Annotated Clinical Cases into Structured Case Report Forms presented at the BioNLP workshop at ACL 2025. The dataset is composed by a set patients with related clinical_note that describe their history and conditions. Each patient is uniquely identified by the document_id column. The task consists of filling a set of items for each… See the full description on the dataset page: https://huggingface.co/datasets/NLP-FBK/e3c-crf-italian.

sourceHugging Faceupdated 10mo agoView on Hugging Face
1likes34downloads
Dataset Card

Here we realease the dataset to perform the Case Report Forms filling task obtained from The European Clinical Case Corpus as described in the paper Converting Annotated Clinical Cases into Structured Case Report Forms presented at the BioNLP workshop at ACL 2025.

The dataset is composed by a set patients with related clinical_note that describe their history and conditions. Each patient is uniquely identified by the document_id column. The task consists of filling a set of items for each patient given the clinical_note. The items belong to 3 cathegories:

  • —results and measures of laboratory tests (rml)
  • —clinical history (history)
  • —diagnosis (diagnosis).

Each dataset split represents a combination of items cathegory and train-validation-test split. Each row in the dataset represents one item for one patient.

Reconstruct item set for each patient

To reconstruct the item set for each patient, you can group by document_id among splits:

python

import pandas as pd
from datasets import load_dataset, concatenate_datasets, Dataset
d = load_dataset(f"NLP-FBK/e3c-crf-italian")
d = concatenate_datasets([d for d in d.values()])
d = d.to_pandas()
grouped = d.groupby('document_id').agg({
    'clinical_note': 'first',
    'group_id': 'first',
    'item': list,
    'ground_truth': list
}).reset_index()
grouped.head()
grouped['annotations'] = grouped.apply(lambda row: [{'item': item, 'ground_truth': gt} for item, gt in zip(row['item'], row['ground_truth'])], axis=1)
grouped = grouped.drop(columns=['item', 'ground_truth'])
grouped.head() 
d = Dataset.from_pandas(grouped)

The group_id column represents the clusters to which each patient is assigned as described in the paper. Practically, this means that patients with the same group_id have the exact same item.

Project page: https://huggingface.co/collections/NLP-FBK/e3c-to-crf-67b9844065460cbe42f80166

@inproceedings{ferrazzi-etal-2025-converting,
    title = "Converting Annotated Clinical Cases into Structured Case Report Forms",
    author = "Ferrazzi, Pietro  and
      Lavelli, Alberto  and
      Magnini, Bernardo",
    editor = "Demner-Fushman, Dina  and
      Ananiadou, Sophia  and
      Miwa, Makoto  and
      Tsujii, Junichi",
    booktitle = "Proceedings of the 24th Workshop on Biomedical Language Processing",
    month = aug,
    year = "2025",
    address = "Viena, Austria",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2025.bionlp-1.26/",
    doi = "10.18653/v1/2025.bionlp-1.26",
    pages = "307--318",
    ISBN = "979-8-89176-275-6",
}