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」基準定数は、コピーしていないものの 1 つです。

幸いなことに、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();
于 2016-06-21T14:04:23.477 に答える