Syntegra 的合成数据 API 入门 | Syntegra
Syntegra 的合成数据 API 入门 | Syntegra
Syntegra 的 Synthetic Data API 的目标是让数据科学家、分析工程师和产品开发人员更容易访问患者级别的医疗保健数据。
直接在您首选的计算环境中访问数千甚至数百万的患者记录,以比以往更轻松、更快地构建、测试和分析。
无论您是早期健康科技初创公司的“万事通”数据专家,还是大公司的数据科学家,或者您正在寻求构建下一个(或第一个)AI/ML 模型——以及一切介于两者之间 — Syntegra 的合成数据 API 允许您访问您需要的患者级合成医疗保健数据。
使用 Syntegra 的 Synthetic Data API 回答医疗保健问题
Syntegra 的 Synthetic Data API 提供了一个易于使用的工具,用于使用合成数据快速回答数据科学和分析问题。为了演示这是如何工作的,Tuva Health 联合创始人 Coco Zuloaga 演示了如何在 Python Jupyter Notebook 环境中使用 API,展示了如何访问合成医疗保健数据并比较完整患者群体与特定患者群体的特征。您还可以观看完整的示例视频 这里 .
访问数据
使用您的 API 密钥进行身份验证后,您可以运行命令来查看您可以根据订阅访问的合成数据集,包括多种格式的 EHR 和索赔数据集。
r =requests.get(f'{api_url}/datasets', headers=auth_info) pd.DataFrame(r.json()['Contents'])
然后,您可以 ping API 以探索和了解每个数据集下的表和字段。在此示例中,我们将查看经过预处理的 Tuva 数据模型格式的索赔数据集。查看数据集中的主表——例如“条件”、“覆盖率”、“遭遇”等。进一步深入了解这些主表中可用的列,例如“遭遇 ID”、“收费金额”、 “设施 NPI”、“遭遇类型”等。
在确定这是您要使用的数据集后,您可以通过 API 请求访问所需的数据集,它将在 S3 上可用。在那里,您可以轻松地将数据集的全部内容以及其中的特定表保存到 pandas DataFrame 中。
r = requests.get(f'{api_url}/dataset/CLAIMS_TUVA_SAMPLE/data', headers=auth_info) print(r.json()) df = pd.DataFrame.from_records(r.json()['Contents']).T df = pd.read_csv(df.loc[“s3Url”,2], 压缩='gzip')
df.head()
设置分析
现在您可以访问了,您可以针对数据集提出特定问题。例如:整个患者群体的住院患者利用率如何?
要回答这个问题,首先通过 API 查看“遭遇”表,在数据集中检查以下内容:
-
数据集中有多少独特的患者?
-
发生了多少次急性住院治疗?
number_of_patients = len(df['PATIENT_ID'].unique()) 打印(number_of_patients) 急性住院病人遭遇 = df[df['ENCOUNTER_TYPE'] == '急性住院病人'].shape[0]
打印(acute_inpatient_encounters)
然后,计算整个人群中的急性住院率。
full_population_AIP_rate=acute_inpatient_encounters / number_of_patients
打印(full_population_AIP_rate)
用概念定义患者群组
接下来,将全部人群的急性住院率与特定患者队列的相同率进行比较。
Syntegra 已经包含许多您可以探索和使用的预定义概念和群组。或者,您可以创建与您感兴趣的领域相关的自己的概念和群组。 Syntegra 的一些预建队列与糖尿病、肝病、妊娠和心肌梗塞等疾病有关。您构建的概念和同类群组存储在您的 API 工作区中(与您的 API 密钥相关联),因此可以重复使用。 Ping API 以查看哪些概念已经可用。
r = requests.get(f'{api_url}/concepts/', headers=auth_info)
df = pd.DataFrame(r.json()['Contents'])
df
在这个例子中,让我们看一组糖尿病患者。使用 API 定义群组并仅为该群组请求数据,然后通过 S3 可用并保存到 pandas DataFrame 中。
队列 = = {“模式”:“CLAIMS_TUVA_SCHEMA”,“名称”:“糖尿病”,“定义”:[“clm_diabetes”],“私人”:“真”} r = requests.post(f'{api_url}/cohorts/', headers=auth_info, data = json.dumps(cohort))
打印(r.json()) r = requests.get(f'{api_url}/dataset/CLAIMS_TUVA_SAMPLE/data?cohort=39', headers=auth_info) 打印(r.json())
再次查看糖尿病队列数据集的“遭遇”表,我们可以使用与全部患者群体相同的步骤再次计算糖尿病患者的急性住院率。
df.loc[“s3Url”,2]
df = pd.read_csv(df.loc[“s3Url”,2], 压缩='gzip') number_of_patients = len(df['PATIENT_ID'].unique()) 打印(number_of_patients) 急性住院病人遭遇 = df[df['ENCOUNTER_TYPE'] == '急性住院病人'].shape[0]
打印(acute_inpatient_encounters0 糖尿病人口 AIP 率 = 急性住院病人遭遇数/患者人数打印(糖尿病人口 AIP 率)
如本示例所示,在使用 API 不到 10 分钟的时间内,您可以对数据集和特定患者队列进行快速评估和比较。在这种情况下,在计算了索赔数据集的全部患者群体以及特定的糖尿病患者队列的急性住院率之后,我们发现糖尿病人群的急性住院率几乎是以前的三倍为全体人口。这只是您可以使用 Syntegra 的 Synthetic Data API 进行的无数探索性分析之一。
更多的视觉学习者? 观看完整视频 .
问题?不是订阅者? 免费试用 API .
看看我们的 文件 .
想探索使用 API 的不同方式吗? 伸手 !
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明