3

任何人都可以举一个 Java REST 客户端使用 FHIR 数据模型搜索患者的示例吗?

4

1 回答 1

4

FHIR HAPI Java API是一个简单的RESTful 客户端 API,可与 FHIR 服务器一起使用。

这是一个简单的代码示例,它在给定服务器上搜索所有患者,然后打印出他们的姓名。

 // Create a client (only needed once)
 FhirContext ctx = new FhirContext();
 IGenericClient client = ctx.newRestfulGenericClient("http://fhirtest.uhn.ca/base");

 // Invoke the client
 Bundle bundle = client.search()
         .forResource(Patient.class)
         .execute();

 System.out.println("patients count=" + bundle.size());
 List<Patient> list = bundle.getResources(Patient.class);
 for (Patient p : list) {
     System.out.println("name=" + p.getName());
 }

上面的调用execute()方法调用目标服务器的 RESTful HTTP 调用,并将响应解码为 Java 对象。

客户端抽象出用于检索资源的 XML 或 JSON 的底层有线格式。在客户端构造中添加一行将传输从 XML 更改为 JSON。

 Bundle bundle = client.search()
         .forResource(Patient.class)
         .encodedJson() // this one line changes the encoding from XML to JSON
         .execute();

这是一个可以限制搜索查询的示例:

Bundle response = client.search()
      .forResource(Patient.class)
      .where(Patient.BIRTHDATE.beforeOrEquals().day("2011-01-01"))
      .and(Patient.PROVIDER.hasChainedProperty(Organization.NAME.matches().value("Health")))
      .execute();

同样,您可以使用来自HL7 FHIR 网站的 DSTU Java 参考库 ,其中包括模型 API 和 FhirJavaReferenceClient。

于 2014-11-24T03:05:07.447 回答