hl7-fhir - 如何使用 Hl7.Fhir.Rest 客户端搜索 HealthCareService 的
问题描述
我对 FHIR 完全陌生,偶然发现了这个 NuGet 包“Hl7.Fhir.STU3”,并想用它来搜索此处定义的医疗保健服务:https ://digital.nhs.uk/developer/api-catalogue/ e-referral-service-fhir#api-Default-a010-patient-service-search。
到目前为止,我的代码有限,并且知道我需要通过某种形式的搜索条件,但不知道如何继续。我从 NHS 客户那里得到的只是:
“根对象没有类型指示 (resourceType),因此不能用于构造 FhirJsonNode。或者,使用参数指定 nodeName。”
我的代码是:
var settings = new FhirClientSettings
{
Timeout = 10,
PreferredFormat = ResourceFormat.Json,
PreferredReturn = Prefer.ReturnMinimal,
};
var client = new FhirClient("https://sandbox.api.service.nhs.uk/referrals/FHIR/STU3/HealthcareService/$ers.searchHealthcareServicesForPatient", settings);
client.RequestHeaders.Add("Authorization", "Bearer g1112R_ccQ1Ebbb4gtHBP1aaaNM");
client.RequestHeaders.Add("nhsd-ers-ods-code", "R69");
client.RequestHeaders.Add("nhsd-ers-business-function", "REFERRING_CLINICIAN");
client.RequestHeaders.Add("X-Correlation-Id", Guid.NewGuid().ToString());
var services = client.Search<HealthcareService>();
我真的很感激任何帮助。
解决方案
您设置为 FHIR 服务器端点的 URL 实际上是操作调用的 URL,因此这不起作用。如果将服务器 URL 设置为"https://sandbox.api.service.nhs.uk/referrals/FHIR/STU3/"
,则应该可以使用 FhirClient 进行操作调用:
// Note that you have to send parameters in with your request, so set them up first:
var params = new Parameters();
params.Add("requestType", new Coding("https://fhir.nhs.uk/STU3/CodeSystem/eRS-RequestType-1", "APPOINTMENT_REQUEST"));
// etc...
var result = c.TypeOperation<HealthcareService>("ers.searchHealthcareServicesForPatient", params);
原始 url 中的 $ 符号不是操作名称的一部分,所以我在请求中省略了它。FhirClient 将在传出请求中添加 $。
推荐阅读
- dart - 从自制软件安装飞镖
- javascript - 哪张图表适合 12 个月内可交付成果的明智员工?
- wordpress - WordPress 网站上的 ERR_CONNECTION_TIMED_OUT
- windows - 如何获得适用于 Windows 平板电脑的数字键盘?
- css - 如何判断一个 URL 包含一个特定的单词和一个大于一的数字,但它不是在开头
- jquery - 如何在 nouislider 中为最小范围(从)和最大范围(到)设置不同的范围?
- javascript - 数组中的那些三点是什么?用评论标记它
- mysql - 在mysql中为每个组获取具有最大值的行的效率?
- matplotlib - 使用 pyplot 绘制 ln y 比例和 ln(ln(x)) 比例
- r - 如何为自定义投影仪模板提供资源文件