You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用.NET Firely SDK对接EPIC FHIR时PATCH操作失败问题排查

解决.NET Firely SDK对接EPIC FHIR时PATCH操作的InternalServerError问题

可能的问题点及修复方案

1. PATCH参数的路径与值类型错误

你的代码存在两个关键问题:

  • 路径冗余:PATCH操作针对单个患者资源,路径不需要加Patient.前缀,直接写BirthDate即可
  • 值类型不匹配:Patient.BirthDate是FHIR的date类型,不能用FhirString传递,必须使用Date类型

修正后的Parameters格式代码:

var patch = new Parameters();
patch.Parameter.Add(new Parameters.ParameterComponent()
{
    Name = "OPERATION",
    Part = new List<Parameters.ParameterComponent>()
    {
        new Parameters.ParameterComponent()
        {
            Name = "type",
            Value = new FhirString("replace")
        },
        new Parameters.ParameterComponent()
        {
            Name = "path",
            Value = new FhirString("BirthDate")
        },
        new Parameters.ParameterComponent()
        {
            Name = "value",
            Value = new Date("2003-02-12") // 使用Date类型而非FhirString
        }
    }
});
var r = await _fhirClient.PatchAsync<Patient>(url, patch);

2. 尝试使用JSON Patch格式(EPIC更常用的PATCH方式)

部分FHIR服务器(包括EPIC)对JSON Patch(RFC 6902)的支持更完善,可改用Firely SDK的JSON Patch方式实现:

using Hl7.Fhir.Model;
using Hl7.Fhir.Rest;
using Newtonsoft.Json.Linq;

// 构建JSON Patch文档
var patchDocument = new JArray();
patchDocument.Add(JObject.Parse(@"{""op"": ""replace"", ""path"": ""/birthDate"", ""value"": ""2003-02-12""}"));

// 发送PATCH请求
var r = await _fhirClient.PatchAsync<Patient>(url, patchDocument, ContentType.JsonPatch);

3. 开启请求日志排查实际发送内容

如果以上方案仍报错,建议开启Firely SDK的请求日志,查看实际发送的HTTP请求体和头部,确认是否符合EPIC FHIR服务器的要求:

// 配置FhirClient的日志记录
_fhirClient.OnBeforeRequest += (sender, e) =>
{
    Console.WriteLine($"Request URI: {e.RawRequest.RequestUri}");
    Console.WriteLine($"Request Method: {e.RawRequest.Method}");
    // 读取请求体
    using var reader = new StreamReader(e.RawRequest.GetRequestStream());
    var requestBody = reader.ReadToEnd();
    Console.WriteLine($"Request Body: {requestBody}");
};

通过日志可验证请求格式是否正确,是否存在EPIC服务器不兼容的字段或格式问题。


内容的提问来源于stack exchange,提问作者Fayaz shaik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 12:33:30