Ich verwende Hapi FHIR DSTU2 HL7Org. In meiner Anwendung muss ich eine MedicationOrder erstellen und die Möglichkeit bieten, fehlerhafte Einträge zu aktualisieren/zu löschen. Ich habe die ID, patientId usw. der erstellten MedicationOrder, aber das Schreiben eines Codes mit where-Klausel ist ziemlich problematisch. In allen Beispielen habe ich gesehen, wie EinträgeDurchsuchen eines FHIR-Servers nach einer bestimmten Ressourcen-ID
where(Patient.FAMILY.matches().value("duck")
präsentiert, aber ich bekomme SP_PATIENT, SP_STATUS usw.
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();
Der obige Code kompiliert nicht sagen: „Das Verfahren, bei dem (ICriterion) in der Typ IQuery ist nicht anwendbar für die Argumente (boolean) ". Ich konnte kein IQuery-Objekt erstellen.
Kann mir bitte jemand Anweisungen geben, wie ich vorgehen soll?
Dank @James Agnew. Ich dachte, dass die Ressourcen-URL für eine bestimmte Ressource eindeutig ist. Wenn ich also eine Ressource aktualisiere/lösche, sollte sie in der WHERE-Klausel enthalten sein. Aber ich sehe, dass es in verfügbaren Suchparametern nichts dergleichen gibt. Gibt es einen Workaround dafür? –
Sorry, ich bin mir nicht sicher, ob ich folge. Der angezeigte Code dient zum Suchen, nicht zum Erstellen oder Löschen. Sie könnten die Ergebnisse nehmen und sie löschen, wenn Sie wollten. Wenn Sie versuchen, einen bedingten Löschvorgang auszuführen, finden Sie ein Beispiel auf unserer Dokumentationsseite [hier] (http://hapifhir.io/doc_rest_client.html#Conditional_Deletes), und Sie können den gleichen Typ der where-Klausel verwenden. –
Hallo, meine Anwendung erstellt MedicationOrder Ressourcen in einem Remote-FHIR-Server und die Möglichkeit, eine erstellte Ressource zu löschen, sollte ebenfalls verfügbar sein. Da ein Patient mehrere Bestellungen für verschiedene Verabreichungszeiten haben kann, dachte ich, dass eine bedingte Löschung mit dem idPart hier am besten ist. Dient das diesem Zweck? 'client.delete(). resourceById (" MedicationOrder "," ") .encodedXml(). prettyPrint(). execute();' –