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.

Lea una sección en el documento de Referencia de Datos de FHIR.

¿Existe alguna manera de leer la sección de datos CCD dentro del XML de CCDA utilizando FhirSerialization en R4?
Tengo un objeto DocumentReference FHIR y en él tengo una sección de DATOS en formato de byte. Lo he convertido a una cadena utilizando la siguiente línea.

string decodedSamlRequest = System.Text.Encoding.UTF8.GetString(dfv);

y ahora en esta variable decodedSamlRequest tengo el contenido XML del CCD.

<?xml version="1.0" encoding="UTF-8"?>
<clinicaldocument xmlns="urn:hl7-org:v3" xmlns:voc="xyz" xmlns:sdtc="xyz" xmlns:xsi="xyz">
    <realmcode code="US"></realmcode>       
    <assignedcustodian>
        <representedcustodianorganization>
            <id root="123" extension="92"></id>
            <name>some xyz</name>
            <telecom use="WP" value="tel:1234"></telecom>
            <addr use="WP">
                <streetaddressline>address</streetaddressline>
                <city>city</city>
                <state>state</state>
                <postalcode>12345</postalcode>
                <country>US</country>
            </addr>
        </representedcustodianorganization>
    </assignedcustodian>
</clinicaldocument>

En este XML necesito leer el elemento CITY bajo la etiqueta Custodian.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    No es posible leer una sección de datos del CCD dentro del archivo XML CCDA utilizando FhirSerialization en R4 directamente. FhirSerialization se utiliza para convertir recursos FHIR a y desde formatos XML o JSON, y no proporciona funcionalidad para acceder a elementos específicos dentro del archivo XML fuera del contexto FHIR.

    Para leer el elemento CITY bajo la etiqueta Custodian en el contenido XML CCD, puedes utilizar técnicas de análisis de XML como XPath o LINQ to XML. Estas técnicas te permiten buscar y recuperar elementos o atributos específicos dentro de un archivo XML en función de su ubicación y contenido.

    Por ejemplo, para recuperar el elemento CITY en el contenido XML CCD mostrado anteriormente, puedes utilizar el siguiente código LINQ to XML:

    XDocument doc = XDocument.Parse(decodedSamlRequest);
    string city = doc.Descendants("custodian")
                    .Elements("assignedCustodian")
                    .Elements("representedCustodianOrganization")
                    .Elements("addr")
                    .Elements("city")
                    .FirstOrDefault()?.Value;
    

    Este código utiliza la clase XDocument para analizar la cadena decodedSamlRequest en un árbol XML, y luego utiliza los métodos Descendants y Elements para navegar hasta el elemento CITY bajo la etiqueta Custodian. El método FirstOrDefault devuelve el primer elemento CITY encontrado, o null si no existe dicho elemento.

    Ten en cuenta que este código asume que el contenido XML tiene una estructura válida con los elementos Custodian y CITY presentes en las ubicaciones esperadas. Si la estructura XML varía o los nombres de los elementos o atributos son diferentes, es posible que debas ajustar el código en consecuencia.

Comments are closed.