我正在使用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中的(ICriterion)不适用于参数(boolean)"的方法。我无法创建任何IQuery对象。
有人可以告诉我如何继续吗?
答案 0 :(得分:0)
这有点奇怪--DSTU2 HL7Org结构是在我们尚未将所有模型特征从HAPI结构转换为HL7Org结构的地方创建的。那些“非SP”标准常数是我们没有复制过的东西之一。
好消息是,即使您使用的是DSTU2-Hl7Org结构,您仍然可以使用DSTU2或DSTU3结构中的结构。你可以这样做:
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();