es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Guardando datos binarios en la base de datos FHIR.

Estoy tratando de guardar datos binarios en la base de datos de FHIR.

Este es mi método:

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);
}

El string[] de pdfForms es base64 y para cada formulario estoy creando un nuevo binario y agregando los datos y el tipo de contenido. Pero la línea var binaryResource = BinaryBundleClient.Create(BinaryData); arroja un error y los datos no son un json válido. He intentado con diferentes tipos de contenido pero no funciona. ¿Alguna idea de por qué?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el tipo de contenido que se está utilizando no es apropiado para los datos binarios que se envían. El tipo de contenido que se está utilizando es “application/fhir+json”, que está destinado a recursos FHIR formateados en JSON. Como los datos binarios no están en formato JSON, este tipo de contenido no funcionará.

    En cambio, deberías utilizar un tipo de contenido más apropiado para el tipo de datos que se envía. Para datos binarios, el tipo de contenido adecuado es “application/octet-stream”. Cambiar el tipo de contenido a esto debería resolver el problema.

    Código actualizado con la corrección:

    BinaryData.ContentType = "application/octet-stream";
    

Comments are closed.