带捆绑包的FHIR Python客户端上的Smart
因此,我有一个来自“$everything”操作的FHIR患者捆绑json: 我现在感兴趣的是使用FHIR Python客户机模型上的Smart使处理json文件变得更容易。下面给出了一个示例:带捆绑包的FHIR Python客户端上的Smart,python,json,hl7-fhir,Python,Json,Hl7 Fhir,因此,我有一个来自“$everything”操作的FHIR患者捆绑json: 我现在感兴趣的是使用FHIR Python客户机模型上的Smart使处理json文件变得更容易。下面给出了一个示例: import json import fhirclient.models.patient as p with open('path/to/patient.json', 'r') as h: pjs = json.load(h) patient = p.Patient(pjs) patient
import json
import fhirclient.models.patient as p
with open('path/to/patient.json', 'r') as h:
pjs = json.load(h)
patient = p.Patient(pjs)
patient.name[0].given
# prints patient's given name array in the first `name` property
是否可以仅使用一个通用的bundle对象类来实例化某个对象,以便能够访问bundle中的不同资源?是的,您可以实例化一个
bundle
,就像您可以实例化任何其他模型一样,可以从JSON手动实例化,也可以从服务器通过读取。每次搜索
也会返回一个包。然后,您可以迭代bundle的条目并使用它们,就像将它们放入数组中一样:
resources = []
if bundle.entry is not None:
for entry in bundle.entry:
resources.append(entry.resource)
p、 美国。
应该可以使用客户端执行任何$操作
,返回您提到的捆绑包
,但我必须检查我们是否已公开该操作,或者该操作是否尚未提交
命令行示例:
import fhirclient.models.bundle as b
import json
with open('fhir-parser/downloads/bundle-example.json', 'r') as h:
js = json.load(h)
bundle = b.Bundle(js)
bundle.entry
[<fhirclient.models.bundle.BundleEntry object at 0x10f40ae48>,
<fhirclient.models.bundle.BundleEntry object at 0x10f40ac88>]
for entry in bundle.entry:
print(entry.resource)
// prints
<fhirclient.models.medicationorder.MedicationOrder object at 0x10f407390>
<fhirclient.models.medication.Medication object at 0x10f407e48>
将fhirclient.models.bundle作为b导入
导入json
将open('fhir-parser/downloads/bundle example.json','r')作为h:
js=json.load(h)
bundle=b.bundle(js)
bundle.entry
[,
]
对于bundle.entry中的条目:
打印(entry.resource)
//印刷品
@Pascal感谢您提供更多详细信息!我想我明白你的建议了。在我的情况下,我已经将所有完整的patient FHIR捆绑包(从$everything)写入目录中的各个json文件,因为所讨论的服务器没有在FHIR上使用Smart。所以我希望在这些任意包上手动使用智能模型,而不是遍历这么多字段。“import fhirclient.models.object.bundle as b”似乎不允许我与我发布的患者示例.Hy@Pylander进行相同的操作。这肯定会奏效,我已经添加了刚刚从命令行执行的完整代码,阅读了FHIR网站提供的文件Bundle example.json
。这就是你想要实现的吗?嗨,你有从FHIR将数据导入python的完整示例吗?这样你就可以分享了。我想学习如何将FHIR数据输入R