Я использую Hapi FHIR DSTU2 HL7Org. В моем приложении мне нужно создать MedicationOrder и предоставить возможность обновления/удаления ошибочных записей. У меня есть id, patientId и т. Д. Созданного MedicationOrder, но написание кода с предложением where довольно проблематично. Во всех примерах, которые я видел, как записиПоиск FHIR-сервера для определенного идентификатора ресурса
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();
Приведенный выше код не компилируется говоря: «Метод где (ICriterion) в тип IQuery не применим для аргументов (boolean) ". Мне не удалось создать какой-либо объект IQuery.
Может кто-нибудь, пожалуйста, проинструктирует меня, как действовать дальше?
Thanks @James Agnew. Я думал, что URL-адрес ресурса уникален для данного ресурса, поэтому, если я обновляю/удаляю ресурс, предложение where должно содержать его. Но я вижу, что в доступных параметрах поиска ничего подобного нет. Есть ли обходной путь для этого? –
Извините, я не уверен, что я следую. Код, который вы показываете, предназначен для поиска, а не для создания или удаления. Вы можете взять результаты и удалить их, если хотите. Если вы пытаетесь выполнить условное удаление, есть пример этого на нашей странице документации [здесь] (http://hapifhir.io/doc_rest_client.html#Conditional_Deletes), и вы можете сделать тот же тип предложения where. –
Привет, Мое приложение создает ресурсы MedicationOrder на удаленном сервере FHIR, а также возможность удаления созданного ресурса. Поскольку у пациента может быть несколько заказов на разные времена администрирования, я подумал, что условное удаление с использованием idPart является лучшим здесь. Это служит этой цели? 'client.delete(). resourceById (" MedicationOrder "," ") .encodedXml(). prettyPrint(). execute();' –