带有软件包的Smart-on-FHIR Python客户端

时间:2016-08-24 22:18:05

标签: python json hl7-fhir

所以我有一个FHIR病人捆绑json来自" $ everything"操作: https://www.hl7.org/fhir/operation-patient-everything.html

我现在有兴趣在FHIR Python客户端模型上使用Smart,以便更轻松地使用json文件。给出的示例如下:

<div class="tooltip">floating tooltip</div>

是否可以使用通用的bundle对象类来实例化某些内容,以便能够访问bundle中的不同资源?

1 个答案:

答案 0 :(得分:1)

是的,您可以实例化Bundle,就像您可以从JSON手动实例化任何其他模型,或者从服务器实例化read。每个search也返回一个Bundle。然后你可以遍历bundle的条目并使用它们,就像把它们放在一个数组中一样:

resources = []
if bundle.entry is not None:
    for entry in bundle.entry:
        resources.append(entry.resource)

P.S。 应该可以对客户端执行任何$operation,返回您提到的Bundle,但是我必须检查是否已经暴露了它或者它是否已经提交。

命令行示例:

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>