EHRXQA
收藏EHRXQA: A Multi-Modal Question Answering Dataset for Electronic Health Records with Chest X-ray Images
概述
EHRXQA是一个结合了结构化电子健康记录(EHRs)和胸部X光图像的多模态问答数据集,旨在促进EHR问答系统中图像和表格模态的联合推理。该数据集通过整合两个单模态资源构建而成:1) MIMIC-CXR-VQA数据集,一个专门设计用于增强EHR问答中图像模态的新型医学视觉问答(VQA)基准;2) EHRSQL(MIMIC-IV),一个重新设计的基于表格的EHR问答数据集。通过集成这两个单模态资源,成功构建了一个需要单模态和跨模态推理的多模态EHR问答数据集。
更新
- 2024年7月24日:在Physionet上发布了EHRXQA数据集。
- 2023年12月12日:在NeurIPS 2023数据集和基准测试轨道上展示了我们的研究工作。
- 2023年10月28日:在arXiv上发布了我们的研究论文。
特性
- 提供脚本下载源数据集(MIMIC-CXR-JPG、Chest ImaGenome和MIMIC-IV)。
- 提供脚本预处理源数据集。
- 提供脚本构建集成数据库(MIMIC-IV和MIMIC-CXR)。
- 提供脚本生成包含答案信息的EHRXQA数据集。
安装
对于Linux:
确保您的机器上安装了Python 3.8.5或更高版本。使用以下命令设置环境并安装所需包: bash
设置环境
conda create --name ehrxqa python=3.8.5
激活环境
conda activate ehrxqa
安装所需包
pip install pandas==1.1.3 tqdm==4.65.0 scikit-learn==0.23.2 pip install dask==2022.12.1
设置
克隆此仓库并导航到其中: bash git clone https://github.com/baeseongsu/ehrxqa.git cd ehrxqa
使用
隐私
我们非常重视数据隐私。通过此仓库访问的所有数据都经过精心准备,以防止任何隐私泄露或数据泄露。您可以放心使用这些数据,因为所有必要的预防措施都已采取。
访问要求
EHRXQA数据集是从MIMIC-CXR-JPG(v2.0.0)、Chest ImaGenome(v1.0.0)和MIMIC-IV(v2.2)构建的。所有这些源数据集都需要经过认证的Physionet许可证。由于这些要求,只有经过认证的用户才能访问MIMIC-CXR-VQA数据集文件。要访问源数据集,您必须满足以下所有要求:
- 成为经过认证的用户
- 如果您没有PhysioNet账户,请在此注册:https://physionet.org/register/
- 按照这些说明进行PhysioNet认证:https://physionet.org/credential-application/
- 完成“CITI数据或标本仅用于研究”培训课程:https://physionet.org/about/citi-course/
- 签署每个项目的数据使用协议(DUA)
- https://physionet.org/sign-dua/mimic-cxr-jpg/2.0.0/
- https://physionet.org/sign-dua/chest-imagenome/1.0.0/
- https://physionet.org/sign-dua/mimiciv/2.2/
访问EHRXQA数据集
在Physionet平台上准备发布完整的EHRXQA数据集的同时,我们为经过认证的用户通过此仓库提供部分数据集访问。要访问EHRXQA数据集,您可以运行此仓库中提供的main脚本(需要您的Physionet凭据): bash bash build_dataset.sh
在脚本执行期间,输入您的PhysioNet凭据:
- 用户名:输入您的PhysioNet用户名并按
Enter。 - 密码:输入您的PhysioNet密码并按
Enter。密码字符不会显示在屏幕上。
该脚本执行以下操作:1) 从Physionet下载源数据集,2) 预处理这些数据集,3) 通过创建真实答案信息生成完整的EHRXQA数据集。
数据集结构
数据集结构如下:
ehrxqa └── dataset ├── train.json ├── _valid.json ├── _test.json ├── train.json (脚本执行后可用) ├── valid.json (脚本执行后可用) └── test.json (脚本执行后可用)
ehrxqa是根目录。其中,dataset目录包含EHRXQA数据集的各种JSON文件。_train.json、_valid.json和_test.json是数据集文件的预发布版本,分别对应训练、验证和测试集。这些版本故意不完整,以保护隐私并防止敏感信息泄露;它们不包含某些关键信息,如答案。- 使用有效的Physionet凭据执行主脚本后,将生成这些文件的完整版本 -
train.json、valid.json和test.json。这些文件包含完整信息,包括每个条目对应的答案。
数据集描述
EHRXQA数据集中的问答样本存储在单独的.json文件中。每个文件包含一个Python字典列表,每个键表示:
db_id:表示相应数据库ID的字符串。split:数据集分割类别(例如,训练、测试、验证)。id:数据集中每个实例的唯一标识符。question:问题的改写版本。template:通过将真实数据库值注入标签创建的最终问题模板。这代表了问题完全指定和上下文化的形式。query:问题的相应NeuralSQL/SQL查询。value:与问题相关的特定键值对,从数据库中采样。q_tag:初始采样的问题模板。这作为问题的基础结构。t_tag:采样的时间模板,用于为问题提供时间上下文和具体性。o_tag:查询的采样操作值,通常包含形成问题所需的数值或计算方面。v_tag:采样的视觉值,包括对象、类别、属性和比较等元素,为问题添加更多细节。tag:综合标签,将增强的q_tag与额外元素(t_tag、o_tag、v_tag)合成。这代表了在形成最终模板之前的中间、更具体化的问题模板。para_type:改写的来源,来自通用机器生成工具或GPT-4。is_impossible:布尔值,表示问题是否可根据数据集回答。_gold_program:用于生成答案的临时程序。
验证PhysioNet凭据后,create_answer.py脚本生成以下内容:
answer:基于查询执行的答案字符串。
具体示例: json { "db_id": "mimic_iv_cxr", "split": "train", "id": 0, "question": "how many days have passed since the last chest x-ray of patient 18679317 depicting any anatomical findings in 2105?", "template": "how many days have passed since the last time patient 18679317 had a chest x-ray study indicating any anatomicalfinding in 2105?", "query": "select 1 * ( strftime(%J,current_time) - strftime(%J,t1.studydatetime) ) from ( select tb_cxr.study_id, tb_cxr.studydatetime from tb_cxr where tb_cxr.study_id in ( select distinct tb_cxr.study_id from tb_cxr where tb_cxr.subject_id = 18679317 and strftime(%Y,tb_cxr.studydatetime) = 2105 ) ) as t1 where func_vqa("is the chest x-ray depicting any anatomical findings?", t1.study_id) = true", "value": {"patient_id": 18679317}, "q_tag": "how many [unit_count] have passed since the [time_filter_exact1] time patient {patient_id} had a chest x-ray study indicating any ${category} [time_filter_global1]?", "t_tag": ["abs-year-in", "", "", "exact-last", ""], "o_tag": {"unit_count": {"nlq": "days", "sql": "1 * ", "type": "days", "sql_pattern": "[unit_count]"}}, "v_tag": {"object": [], "category": ["anatomicalfinding"], "attribute": []}, "tag": "how many [unit_count:days] have passed since the [time_filter_exact1:exact-last] time patient {patient_id} had a chest x-ray study indicating any anatomicalfinding [time_filter_global1:abs-year-in]?", "para_type": "machine", "is_impossible": False, "answer": "Will be generated by dataset_builder/generate_answer.py" }
版本控制
我们采用语义版本控制,当前版本为v1.0.0。通常,我们只维护和提供最新版本的数据集更新。然而,在发生重大更新或需要验证先前研究时,我们可能会例外地保留旧版本数据集,最长可达一年。有关每个版本中更改的详细列表,请查看我们的CHANGELOG。
贡献
欢迎对提高此数据集的可用性和功能性做出贡献。如果您有兴趣贡献,请随意fork此仓库,进行更改,然后提交拉取请求。对于重大更改,请先打开一个问题以讨论拟议的更改。
联系
如有关于此数据集的任何问题或疑虑,请随时联系我们(seongsu@kaist.ac.kr 或 kyungdaeun@kaist.ac.kr)。我们感谢您的兴趣,并乐于提供帮助。
引用
当您使用EHRXQA数据集时,我们希望您引用以下内容:
@article{bae2023ehrxqa, title={EHRXQA: A Multi-Modal Question Answering Dataset for Electronic Health Records with Chest X-ray Images}, author={Bae, Seongsu and Kyung, Daeun and Ryu, Jaehee and Cho, Eunbyeol and Lee, Gyubok and Kweon, Sunjun and Oh, Jungwoo and Ji, Lei and Chang, Eric I and Kim, Tackeun and others}, journal={arXiv preprint arXiv:2310.18652}, year={2023} }
许可证
此仓库中的代码根据MIT许可证提供。使用此代码创建的最终数据集输出EHRXQA,受Physionet原始数据集的条款和条件约束:MIMIC-CXR-JPG许可证、Chest ImaGenome许可证和MIMIC-IV许可证。




