有人能举例说明Java REST客户端使用FHIR数据模型搜索患者吗?
答案 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。