将FHIR数据集转换为

fhir2dataset的Python项目详细描述


FHIR查询

使用SQL查询任何FHIR api。在

使用

importfhir2datasetasquerysql_query="SELECT p.name.family, p.address.city FROM Patient AS p WHERE p.birthdate=1944 AND p.gender = 'female'"query.sql(sql_query)
^{pr2}$

FHIR查询仍在积极开发中,欢迎反馈和投稿!在

安装

pip install fhir2dataset

来源

克隆此存储库后,可以安装所需的依赖项

pip install -r requirements.txt
npm install --prefix ./fhir2dataset/metadata

入门

输入查询有两种可能的方法:作为SQL查询或JSON配置文件

SQL查询

您可以定义以下形式的SQL查询:

sql_query="""SELECT (alias n°1).a, (alias n°1).b, (alias n°2).a FROM (Resource type 1) as (alias n°1)INNER JOIN (Resource type 2) as (alias n°2) ON (alias n°1).d = (alias n°2)WHERE (alias n°2).c = "value1"AND (alias n°2).d = "value2""""

请注意,我们只支持SQL关键字的一个子集。在

默认情况下,FHIR查询将使用HAPI FHIR Api。但您可以使用以下语法使用自己的api:

importfhir2datasetasqueryfhir_api_url='https://api.awesome.fhir.org/baseR4/'query.sql(sql_query,fhir_api_url=fhir_api_url)

JSON配置文件

您还可以使用JSON配置文件

fromfhir2dataset.queryimportQueryfromfhir2dataset.fhirrules_getterimportFHIRRulesfhir_api_url='http://hapi.fhir.org/baseR4/'fhir_rules=FHIRRules(fhir_api_url=fhir_api_url)query=Query(fhir_api_url,fhir_rules=fhir_rules)

config.json

{"select":{"alias n°1":["a","b","c"],"alias n°2":["a"]},"from":{"alias n°1":"Resource type 1","alias n°2":"Resource type 2","alias n°3":"Resource type 3"},"join":{"inner":{"alias n°1":{"d":"alias n°2"},"alias n°2":{"b":"alias n°3"}}},"where":{"alias n°2":{"c":"value 1","d":"value 2"},"alias n°3":{"a":"value 3","b":"value 4"}}}
# Enter in dirname the path of config.jsonfilename_config='config.json'withopen(os.path.join(dirname,filename_config))asjson_file:config=json.load(json_file)query.from_config(config)query.execute()df=query.main_dataframe

对于扩展用法,您可以引用这个tutorial,然后引用这个Jupyter Notebook

更多示例

看看查询的例子,以及它们是如何在调用FHIR api时转换的!在

贡献

终端和虚拟环境中的以下命令允许您在每次提交之前执行一些最小的本地测试:

pip install -r requirements-dev.txt
pre-commit install

如果您想删除它们,只需:

pre-commit clean

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
spring JSTL:绝对uri:http://java.sun.com/jsp/jstl/core无法在两个站点中解析。xml或与此应用程序一起部署的jar文件   java在Junit测试中找不到失败的符号   java为什么在没有同步块的情况下调用wait()、notify()或notifyAll()不是编译器错误?   使用onDraw()绘制多个位图的java Android在曲面视图上放大缩小画布   在java中比较args值和字符串   java更改文件中的特定字节   java TransformerFactory破坏<html>标记中的<input>和<br>标记   azure appinsights java自定义指标不起作用   Java泛型在实现接口的类上指定上界,接口本身指定上界   java AS400 prog和动态类路径   java应用程序截图时收到空消息   java无法从片段中获取上下文   找不到java配置单元UDF类   linux是一个提供java的接口。lang.NoClassDefFoundError   java如何使用面向对象建模创建此数据库