【问题标题】:Saving Binary Data FHIR DB保存二进制数据 FHIR DB
【发布时间】:2022-01-06 15:49:01
【问题描述】:

我正在尝试将二进制数据保存到 FHIR DB。

这是我的方法:

public static Patient SavePdfForms(string resource, HttpClientEventHandler messageHandler, string[] pdfForms, Patient patient, FhirClient BinaryBundleClient)
        {
            Bundle BinaryBundle = new Bundle();
            BinaryBundle.Type = Bundle.BundleType.Collection;
            try
            {
                foreach (var item in pdfForms)
                {
                    Binary BinaryData = new Binary();
                    var bytearray = Encoding.ASCII.GetBytes(item);

                    BinaryData.Data = bytearray;
                    BinaryData.ContentType = "application/fhir+json";
                   
                    var binaryResource = BinaryBundleClient.Create(BinaryData);
                    BinaryBundle.AddResourceEntry(BinaryData, resource + "/BundleResource/" + binaryResource.Id);
                }
            }
            catch (Exception ex)
            {
                throw;
            }

            var bundleId = BinaryBundleClient.Create(BinaryBundle);
            patient.Identifier.Add(new Identifier("BinaryBundle", bundleId.Id));
            return BinaryBundleClient.Update(patient);
        }

pdfForms 的字符串[] 是 base64,对于每个表单,我都在创建一个新的二进制文件并添加数据和内容类型。但是var binaryResource = BinaryBundleClient.Create(BinaryData); 行会引发错误,并且数据不是有效的 json。我尝试了不同的内容类型,但这不起作用。任何想法为什么?

【问题讨论】:

    标签: c# azure-functions hl7-fhir


    【解决方案1】:

    假设您正在BinaryBundleClient.Create(BinaryData) 中创建一个新的资源实例,并在服务器上存储它。

    在你的情况下,你直接传递Fhirclient.Create(your data)中的二进制信息

    binaryResource = BinaryBundleClient.Create(BinaryData);

    您必须提及以下资源实例的类型:

    创建Fhir客户端

    var client = new FhirClient("http://server.fire.ly");
    

    创建后FhirClient 你必须创建一个新的resource instance。会是这样的

    var pat = new Patient() { /* set up data */ };
    var created_pat = client.Create<Patient>(pat);
    

    当出现问题时,此交互将抛出异常,在大多数情况下是 FhirOperationException。此异常有一个包含 OperationOutcome 资源的 Outcome 属性,您可以检查它以了解有关交互失败原因的更多信息。大多数 FHIR 服务器会在 OperationOutcome 中返回人类可读的错误描述以帮助您解决问题。

    参考here

    【讨论】:

    • 如果回答对您有帮助,请Accept it as an Answer,以便遇到相同问题的其他人可以找到此解决方案并解决他们的问题。
    猜你喜欢
    • 2011-07-03
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多