1

我正在使用 Hapi FHIR DSTU2 HL7Org。在我的应用程序中,我需要创建一个 MedicationOrder 并提供更新/删除错误条目的可能性。我有创建的 MedicationOrder 的 id、patientId 等,但是用 where 子句编写代码是很成问题的。在我见过的所有例子中,条目如

where(Patient.FAMILY.matches().value("duck") 

礼物,但我得到 SP_PATIENT、SP_STATUS 等。

FhirContext ctx = FhirContext.forDstu2Hl7Org();
IGenericClient client = ctx.newRestfulGenericClient("http://fhirtest.uhn.ca/baseDstu2");
Bundle bundle = client.search().forResource(MedicationOrder.class).where(MedicationOrder.SP_PATIENT.equals("patientId")).returnBundle(Bundle.class).encodedXml().prettyPrint().execute();

上面的代码没有编译说“IQuery 类型中的方法 where(ICriterion) 不适用于参数 (boolean)”。我无法创建任何 IQuery 对象。

有人可以指导我如何进行吗?

4

1 回答 1

1

这有点奇怪——DSTU2 HL7Org 结构是在我们尚未将所有模型特征从 HAPI 结构引入 HL7Org 结构的时候创建的。那些“非 SP”标准常数是我们没有复制的东西之一。

好消息是,如果您愿意,您仍然可以使用 DSTU2 或 DSTU3 结构中的那些,即使您使用的是 DSTU2-Hl7Org 结构。你可以这样做:

FhirContext ctx = FhirContext.forDstu2Hl7Org();
IGenericClient client = ctx.newRestfulGenericClient("http://fhirtest.uhn.ca/baseDstu2");
Bundle bundle = client.search().forResource(MedicationOrder.class).where(ca.uhn.fhir.model.dstu2.resource.MedicationOrder.PATIENT.matches().value("duck")).returnBundle(Bundle.class).encodedXml().prettyPrint().execute();
于 2016-06-21T14:04:23.477 回答