Я использую пакет NuGet Hl7.Fhir.R4 для подключения к NHS ERS API. Часть метода CreateReferral требует такого расширения:
"extension": [
{
"url": "https://fhir.nhs.uk/STU3/StructureDefinition/Extension-eRS-Shortlist-SearchCriteria-1",
"valueReference": {
"reference": "#ServiceSearchCriteria-1"
}
}
]
Кажется, я не могу найти класс модели, который создаст этот вывод. Есть идеи?





Вы должны иметь возможность добавить расширение к элементу/ресурсу с помощью метода AddExtension. В качестве параметров вы вводите URL-адрес расширения и значение любого типа данных FHIR. Для вашего расширения это будет ссылка, которая моделируется классом ResourceReference:
element.AddExtension("https://fhir.nhs.uk/STU3/StructureDefinition/Extension-eRS-Shortlist-SearchCriteria-1",
new ResourceReference("#ServiceSearchCriteria-1"));
Глядя на реферальный API, кажется, что он использует FHIR STU3, поэтому вам может потребоваться изменить свою библиотеку на Hl7.Fhir.Stu3, чтобы избежать несоответствий в полях ресурса и других различий версий. Вышеупомянутый метод все еще должен работать для добавления вашего расширения.
FhirClient в SDK, по-видимому, ожидает только ответов «200 OK» или «202 Accepted» на вызовы операции. Для этого есть открытая проблема в репозитории GitHub (github.com/FirelyTeam/firely-net-sdk/issues/2295). В качестве обходного пути вы можете попробовать try..catch вокруг вызова и посмотреть на FhirClient.LastResult и FhirClient.LastBodyAsResource результат операции.
Спасибо Миржам. Это работает отлично. Теперь я могу создать реферал, но получаю от клиента следующую ошибку: Операция завершена успешно, но статус возврата 201 был неожиданным. Могу ли я что-то сделать с клиентом, чтобы он ожидал этот ответ, поскольку API возвращает его в случае успеха?