用于FHIR数据模型的Java REST客户端

时间:2014-07-23 13:05:44

标签: java rest hl7 hl7-fhir

有人能举例说明Java REST客户端使用FHIR数据模型搜索患者吗?

1 个答案:

答案 0 :(得分:3)

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();

这是example,您可以在其中约束搜索查询:

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 website中的DSTU Java参考库 包括模型API和FhirJavaReferenceClient。