Transacciones de XDS para HCC



XDS y XDS.b

Para IHE la definición genérica del perfil se denomina XDS. Sin embargo, existen perfiles de implementación que describen como debe ser llevada a cabo la implementación, las cuales son XDS.a y XDS.b. Esto implica que actualmente el perfil XDS, en la realidad refiere a estos dos perfiles.

Para el mundo de IHE, en la actualidad, cuando se menciona el XDS.a en general se piensa en XDS, en cambio XDS.b introduce los siguientes elementos:

  1. Actualización de servicios web
  2. Actualización del estándar de registro (ebRIM)
  3. Uso de un MTOM en la transacción Provide and Registry

XDS.b viene a ser el estándar usado por HCC para la transacción y administración de los Documentos Clínicos

Este perfil además elimina:

  1. Query para SQL
  2. Retry vía HTTP Get
  3. Uso de SOAP con adjuntos

El flujo en general es bastante simple:

  1. El documento creado es guardado en el Repositorio
  2. Una vez guardado, este le avisa al registro sobre el documento guardado
  3. El Repositorio envía la metadata al Registro, como también la información de su registro
  4. Un Consumidor puede hacer un query en el Registro sobre el o los documentos de un paciente
  5. Si el documento existe, el mismo consumidor accede al Repositorio
Actores y Transacciones XDS

Como ya se mencionara en XDS.b se definen 4 actores que participan en las transacciones XDS

  1. Fuente de Documento
  2. Consumidor de Documento
  3. Registro de Documento
  4. Repositorio de Documento
  5. Adicional: MPI (para identificación de pacientes, usando transacciones específicas para ese caso)

Diagrama entre Actores y sus Transacciones se muestra a continuación

Adicional puede existir un actor denominado Administrador de Documento, encargado de actualizar y borrar documentos Las transacciones existentes para XDS.b son las siguientes:

Para el propósito de HCC y desde el punto de vista de los prestadores, las transacciones claves son las siguientes

  1. Provide and Register Document Set (ITI-41): El Actor Document Source genera una transacción para almacenar información en el Repositorio
  2. Register Document Set(ITI-42): Repositorio al momento de recibir un documento actualiza la información en el Registro.
  3. Registry Stored Query(ITI-18): El Consumidor, realiza una consulta al Registro sobre la existencia de documentos relacionado con el paciente.
  4. Retrieve Document Set(ITI-43): El consumidor recupera desde el Repositorio un documento determinado
Objetos

Existen diferentes objetos en una transacción, que se relacionan entre ellos, lo cual se puede apreciar en la siguiente imagen

Siendo organizados de la siguiente forma (Fuente: Salud.uy)

Los objetos en ebRIM se expresan siendo asociados, de forma que las transacciones tengan sentido. Para ebRIM estas asociaciones son las siguientes:

  1. RelatedTo
  2. HasMember
  3. ExternallyLink
  4. Contrains
  5. EquivalentTo
  6. Extends

Siendo SubmissionSet el objeto que actúa como contenedor, este se vincula con los otros objetos de la siguiente manera (fuente Salud.Uy):

Mensaje XDS

Para transar un SubmissionSet, XDS plantea una estructura de mensaje específica, dado que la arquitectura sobre la cual fue concebido es SOAP. En el caso de Provide and Registry Set sería la siguiente:

Metadata

Un mensaje XDS debe contener en base la Metadata necesaria para identificar y asociar apropiadamente un documento o set de estos. Esta Metadata se clasifica de la siguiente manera

Datos:

  1. Autor: autor del documento, especialidad
  2. Legal Authenticator: Quien valida legalmente el documento
  3. Title: Comentarios, hora de creación, service start/stop
  4. Availability Status: Disponibilidad y estatus
  5. Identifiers: Id paciente, UUID, identificador único
  6. Demographics: Id de la fuente del paciente, información demográfica del paciente

Valores Codificados (Tipo de Documento):

  1. ClassCode: Para el tipo de Documento transado. Es una descripción de nivel General y no debe describirlo de manera específica
  2. TypeCode: Similar al ClassCode pero asocia al documento con un tipo más específico
  3. EventCode: evento clínico principal
  4. HeathCareFacilityCode: organización
  5. PracticeSettingCode: especialidad
  6. ConfidentialityCode: nivel de confidencialidad

Datos Técnicos

  1. MimeType: tipo de mime para formato
  2. FormatCode: más detalle del formato
  3. Size: tamaño
  4. Hash: huella de seguridad
  5. uri: localización en el registro del documento
  6. Lenguaje: Idioma

Esta Información se detalla en la siguiente imagen (Fuente: Salud.Uy)

Modos Generales de ebRIM para Metadata

A continuación, mostraremos el formato genérico de los atributos en los mensajes ebRIM

Encontraremos que según el tipo de elemento de dato que deseamos manejar es el formato que debe tener

Se define Slot como una ranura de información particular que posee un valor específico genérico para la Metadata.Para un Slot sería


<rim:Slot>
    <rim: Slot name=”lenguajeCode”>
        <rim:ValueList>
           
                   
           <rim:Value>es-Cl</rim:Value>
                        
        </rim:ValueList>
    </rim: Slot name=”lenguajeCode”>
</rim:Slot>

                     

Se define como Clasificación a la Metadata que incluye un tipo de información que debe ser clasificada bajo algún esquema de codificación. Para una Clasificación sería


<rim: Classification 
    classificationScheme="urn:uuid:93606bcf-9494-43ec-9b4ea7748d1a838d" <--Representa al author-->
    classifiedObject="1.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- id del documento con alguna variacion-->
    id="HCC01" <-- Valor de uso interno-->
    objectType="urn:oasis:names:tc:ebxmlregrep:ObjectType:RegistryObject:Classification" <-- por definición de Clasificación-->
    nodeRepresentation=""  <-- en blanco-->
    <-- Ahora Definimos los Slots-->
        <rim: Slot EL QUE SEA”>
        
        </rim:Slot>
</rim: Classification>

                     

Dada la existencia de identificadores que son propios de los Actores existe el formato de Identificador Externo. Para un Identificador Externo sería:


<rim:ExternalIdentifier  
    identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427"    <-- Sugerido por IHE-->
    value="12235111-1^^^&2.16.840.1.113883.2.22.1.152.69100&ISO"   <-- En este caso es el tipo de Documento de ID-->
    id="eHCC_01" <-- Valor propio-->
    objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" <-- Por defecto por ser un Ex ID-->
   registryObject="1.2.16.840.1.113883.2.22.2.100.100.201908100949.1"> <-- documento CDA Asociado-->
    <-- Ahora Definimos los Elementos-->
        <rim: lo que sea”>
        
        </rim:Slot>
</rim: ExternalIdentifier>

                     
Metadata para XDS-HCC, ITI-41

En base a los elementos genéricos descritos anteriormente indicaremos todos los elementos de Metadata que se podrían describir en una transacción ITI-41

DocumentEntry

Esta Metadata describe al documento que se desea transar. Cabe destacar que se parte de la base que el objeto a describir es un documento en CDA. El formato en el cual se especifica el atributo usa como prefijo el nombre DocumentEntry seguido por un punto y el nombre del atributo

Los atributos usados para HCC son los siguientes

# Atributo Metadata Document Entry Descripción
1 author Atributo del autor del documento, en general el médico. Este puede poseer sub-atributos como authorInstitution o authorSpecility
2 classCode Atributo que especifica en alto nivel el uso del documento (Reporte, Resumen, Imagen, etc.)
3 comments Comentarios Asociados al Documento
4 confidentialityCode Código asociado al grado de acceso que se tiene del documento. Este debe estar en formato de HL7 V3
5 creationTime Fecha y hora en la cual el documento fue creado. Formato especificado en CDA
6 entryUUID Identificador único global que identifica la transacción
7 eventCodeList Código del acto representado en el documento, por ejemplo un procedimiento de colonoscopía o apendicetomía
8 formatCode Detalle técnico del formato del documento, en nuestro caso es texto
9 hash Hash del contenido del documento (SHA1)
10 healthcareFacilityTypeCode Lugar de ocurrencia del acto clínico
11 homeComunnityId Identificación del Dominio al cual pertenece esta transacción, en este saco siempre será MINSAL
12 languageCode Código del tipo de lenguaje usado en el documento
13 legalAuthenticator Información del autentificador legal del documento
14 mimeType tipo de estructura del documento, en nuestro caso siempre es Texto
15 patientId Identificación del paciente especificada en el recordTarget del documento
16 practiceSettingCode Código de la especialidad clínica presente en el acto clínico
17 repositoryUniqueId Identificación del repositorio sobre el cual se almacena el documento
18 size Tamaño total del documento
19 sourcePatientId Referencia al organismo que entrega la identificación al Paciente
20 sourcePatientInfo Información demográfica del Paciente
21 title Título del Documento
22 typeCode Código especificando el tipo preciso de documento (En LOINC)
23 uniqueId Identificador único global que se le asigna al documento al momento de ser creado
24 intendedRecipient Persona u Organización a quien va dirigido el documento

Author

Este atributo es una clasificación RIM. Para nuestro caso especificaremos el Médico como autor y se identificará su especialidad Cabe indicar que el formato en el cual se expresa la información es en mensaje V2 por lo que se debe seguir el formato especificado


<rim: Classification 
    classificationScheme="urn:uuid:93606bcf-9494-43ec-9b4ea7748d1a838d" <--Representa al author-->
    classifiedObject="1.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- id del documento con alguna variacion-->
    id="HCC01" <-- Valor de uso interno-->
    objectType="urn:oasis:names:tc:ebxmlregrep:ObjectType:RegistryObject:Classification" <-- por definición de Clasificación-->
    nodeRepresentation=""  <-- en blanco-->
    <-- Ahora Definimos el author en Slot-->
        <rim: Slot name="authorPerson" >
           <ValueList >
              <Value> <"13345322-2^Perez^Javier^^^Doctor^^^&Registro Civil^^^^2.16.840.1.113883.2.22.1.152.787300&ISO">  </Value> < -- PV1-8 con definición de tipo de id segun esquema IHE-->
              
           </ValueList >
        
        </rim:Slot>
        <rim: Slot name="authorSpeciality" >
           <ValueList >
              <Value> <Broncopulmonar>  </Value> < -- Según el caso se deberá definir el código según V2-->
              
           </ValueList >
        </rim:Slot>
        
</rim: Classification>

                     

classCode

Este atributo es una clasificación RIM. Para nuestro caso especificaremos la categoría de documento según especificación IHE


<rim: Classification 
    classificationScheme="urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a" <--Representa classCode-->
    classifiedObject="1.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- id del documento con alguna variacion-->
    id="HCC02" <-- Valor de uso interno-->
    objectType="urn:oasis:names:tc:ebxmlregrep:ObjectType:RegistryObject:Classification" <-- por definición de Clasificación-->
    nodeRepresentation="SUMMARY"  <-- para este ejemplo-->
    <-- Ahora Definimos el classCode en Slot-->
        <rim: Slot name="codingSchemm" >
           <ValueList >
              <Value> <1.3.6.1.4.1.19376.1.2.6.1>  </Value> < -- PV1-8 con definición de tipo de id segun esquema IHE-->
              
           </ValueList >
        
        </rim:Slot>
        
        
        <rim: Name> <-- Este es optativo-->
           <rim:LocalizedString value="Summary" > </>
              
        </Name >
        
        
</rim: Classification>

                     

Coments

Este solo cumple con la propiedad de elemento por lo que su codificación es simple


<rim: description >
  
        <rim:LocalizedString value = "Comentarios asociados al documento" >  </>
</rim: description >          

                     

ConfidentialityCode

Este atributo es una clasificación y su descripción corresponde al usado en CDA. Se puede tener cardinalidad mayor de 1 lo cual no es nuestro caso


 <rim: Classification 
     classificationScheme="urn:uuid:f4f85eac-e6cb-4883-b524-f2705394840f" <--Representa confidentialityCode-->
     classifiedObject="1.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- id del documento con alguna variacion-->
     id="HCC03" <-- Valor de uso interno-->
     objectType="urn:oasis:names:tc:ebxmlregrep:ObjectType:RegistryObject:Classification" <-- por definición de Clasificación-->
     nodeRepresentation="N"  <-- Valor de N=Normal según código -->
                                                                
       <rim: Name> <-- Se define la Glosa del código-->
          <rim:LocalizedString value="Normal para el Acceso a la Data Clínica" > </>
                                
       </Name >
       <rim: Slot name="codingSystem"> <-- Se define el sistema de codificación para el codigo expesado-->
          <ValueList >
                 <Value ><2.16.840.1.113883.5.25 ></> <-- OID de Confidentiality Code de HL7 V3-->
          </ValueList >
        </rim: Slot>
                                
    </rim: Classification>
                                

creationTime

Este solo cumple con ser un Slot. Representa la fecha de creación del documento


<rim: Slot name="creationTime" >
  <ValueList >
       <Value ><2.16.840.1.113883.5.25 ></> <-- OID de Confidentiality Code de HL7 V3-->
  </ValueList >
</rim: Slot>
  
       
                     

EntryUUID

Se usará para motivos de identificación externa del Documento Para este caso usaremos el Id del Documento con un 1. delante del OID de dicho identificador, dado que es una identificación define el objeto razón por la cual se define como ExtrinsicObject


<ExtrinsicObject 
    id="1.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- Id del Documento un 1 antepuesto-->
    objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1"/ > <-- Por Defecto-->
  
       
                     

EventCodeList

Aquí se representa el Acto Clínico ejecutado en muchos casos es inherente al typeCode (Consulta Ambulatoria) pero puede que en otras no (procedimientos dentro de urgencia o epicrisis. Por ahora vamos a definir el mismo que typeCode pero no necesariamente debe ser así. Cardinalidad mayor de 1


<rim: Classification 
     classificationScheme="urn:uuid:2c6b8cb7-8b2a-4051-b291-b1ae6a575ef4" <--Representa EventCodeList-->
     classifiedObject="1.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- id del documento con alguna variacion-->
     id="HCC04" <-- Valor de uso interno-->
     objectType="urn:oasis:names:tc:ebxmlregrep:ObjectType:RegistryObject:Classification" <-- por definición de Clasificación-->
     nodeRepresentation="47519-4"  <--Código Loinc que representa colonoscopía -->
                                                                
       <rim: Name> <-- Se define la Glosa del código-->
          <rim:LocalizedString value="Nombre del Evento/Procedimiento (colonoscopia) descritos en la seccion Procedimientos" > </>
                                
       </Name >
       <rim: Slot name="codingSystem"> <-- Se define el sistema de codificación para el codigo expesado-->
          <ValueList >
                 <Value ><2.16.840.1.113883.6.1 ></> <-- OID de LOINC-->
          </ValueList >
        </rim: Slot>
                                
    </rim: Classification>
       
                     

formatCode

Representa el formato en el cual se desarrolla el documento en muchos casos es inherente al typeCode (Consulta Ambulatoria) pero puede que en otras no (procedimientos dentro de urgencia o epicrisis).


<rim: Classification 
     classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d" <--formatCode-->
     classifiedObject="1.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- id del documento con alguna variacion-->
     id="HCC05" <-- Valor de uso interno-->
     objectType="urn:oasis:names:tc:ebxmlregrep:ObjectType:RegistryObject:Classification" <-- por definición de Clasificación-->
     <-- En Node se define el perfil de Documento code
      si es uno determinado por dominio ITI debe ser de la forma urn:ihe:iti:
       si es de dominio IHE debe llevar el orefijo urn:ihe:’domain initials’:
     en caso de no ser ihe o ITI debe ser un unico valido URN
    
       https://wiki.ihe.net/index.php/IHE_Format_Codes
    
      en base a esos codes se decide usar para ambulatorio el del perfiles PCC "Medical Sumamries" 	urn:ihe:pcc:xds-ms:2007-->
     nodeRepresentation="urn:ihe:pcc:xds-ms:2007"  <--Sugerido por IHE -->
                                                                
       <rim: Name> <-- Se define la Glosa del código-->
          <rim:LocalizedString value="XDS- Resumemenes Médicos: Documento de Alta Ambulatoria" > </>
                                
       </Name >
       <rim: Slot name="codingSystem"> <-- Se define el sistema de codificación para el codigo expesado-->
          <ValueList >
                 <Value ><1.3.6.1.4.1.19376.1.2.3></> <-- sugerido por IHE, indicando el formatCode de EV de mimeTypeSufficient indicando que el mimeType es suficiente para indicar el formato del documento-->
          </ValueList >
        </rim: Slot>
                                
    </rim: Classification>
       
                     

hash

Hash para el contenido del documento, cuya longitud máxima 256 y el formato del valor es un hash SHA 1. En este caso mostramos un ejemplo


<rim: Slot name="hash" >
  <ValueList >
       <Value ><da39a3ee5e6b4b0d3255bfef95601890afd80709 ></> <-- hash de prueba-->
  </ValueList >
</rim: Slot>
  
       
                     

healthCareFacilityTypeCode

Lugar de ocurrencia del acto clínico


<rim: Classification 
     classificationScheme="urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1" <--Representa healthCareFacilityTypeCode-->
     classifiedObject="1.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- id del documento con alguna variacion-->
     id="HCC06" <-- Valor de uso interno-->
     objectType="urn:oasis:names:tc:ebxmlregrep:ObjectType:RegistryObject:Classification" <-- por definición de Clasificación-->
     nodeRepresentation="12345"  <--Código DEIS del Prestador -->
                                                                
       <rim: Name> <-- Se define la Glosa del código-->
          <rim:LocalizedString value="Hospital de la Buena Fe" > </>
                                
       </Name >
       <rim: Slot name="codingSystem"> <-- Se define el sistema de codificación para el codigo expesado-->
          <ValueList >
                 <Value ><2.16.840.1.113883.2.22.0.202.10323 ></> <-- OID de un servicio de salud al que pertenece el hospital-->
          </ValueList >
        </rim: Slot>
                                
    </rim: Classification>
       
                     

homeComunityId

es la identificación del dominio en el cual se aplica XDS. en este caso dado que es un proyecto nacional este será la Id de MINSAL


<ExtrinsicObject home="urn:oid:2.16.840.1.113883.2.22.1.152.100">
   <rim: Name>
         <rim:LocalizedString value="Comunidad Asociada a la Concurrente del MINSAL"/>
   </rim>
</ExtrinsicObject>    
  
       
                     

languageCode

Código del lenguaje sobre el cual está escrito el documento


<rim: Slot name="labguajeCode" >
  <ValueList >
       <Value ><es-CL ></> <-- codigo de español-Chileno-->
  </ValueList >
</rim: Slot>
  
       
                     

legalAuthenticator

El autentificador Legal se despliega en un slot donde en el valor de éste se especifican los datos del autentificador. La expresión es en formato similar al author en V2


<rim: Slot name="legalAuthenticator" >
  <ValueList >
       <Value ><13345322-2^Perez^Javier^^^Doctor&2.16.840.1.113883.2.22.1.152.69100&ISO ></> <-- id, nombre,apellido,,, profesion, finaliza con tipo de documento-->
  </ValueList >
</rim: Slot>
  
       
                     

mimeType

MIME type del documento en Repositorio, en nuestro caso siempre será text/xml.


<ExtrinsicObject mimeType="text/xml"> <--Identifica el formato en el cual se despliega el documento-- >
   id="2.16.840.1.113883.2.22.1.152.100.80.1" <--repositorio 1 del MINSAL-- >
   objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1"><--Valor por Defecto-- >
</ExtrinsicObject>    
  
       
                     

patientId

Identificación del paciente. Por ser un identificador asignado por una entidad externa, este atributo es de tipo ExternalIdentifier Su formato es distinto a un clasification y siempre debe ser como sigue. Importante de considerar que la descripción del identificador del paciente es en formato V2


 <rim: ExternalIdentifier
     id="iE01" <--Valor de uso interno-->
     registryObject="1.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- id del documento en donde se identifica al paciente con alguna variacion-->
     identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427" <-- por definición de Identificación-->
     value="25124849-1^^^Registro_de_cédula_Identidad_Chile & 2.16.840.1.113883.2.22.0.101^2.16.840.1.113883.2.22.1.152.787300 & ISO">  <-- run, AA,OID de tipo de doc-->
     
                                                                
       <rim: Name> <-- Se define la Glosa del código-->
          <rim:LocalizedString value="Normal para el Acceso a la Data Clínica" > </>
                                
       </Name >
       
                                
    </rim: ExternalIdentifier>
                                

practiceSettingCode

Clasificación correspondiente a la especialidad bajo la cual se desarrolla el acto clínico. Puede ser asociada a la especialidad médica o al acto de agenda según sea el caso


<rim: Classification 
     classificationScheme="urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead" <--Representa practiceSettingCode-->
     classifiedObject="1.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- id del documento con alguna variacion-->
     id="HCC07" <-- Valor de uso interno-->
     objectType="urn:oasis:names:tc:ebxmlregrep:ObjectType:RegistryObject:Classification" <-- por definición de Clasificación-->
     nodeRepresentation="2"  <--valor de cardiología segun Tabla MAestra de Especialidades -->
                                                                
       <rim: Name> <-- Se define la Glosa del código-->
          <rim:LocalizedString value="Especialidad Cardiología" > </>
                                
       </Name >
       <rim: Slot name="codingSystem"> <-- Se define el sistema de codificación para el codigo expesado-->
          <ValueList >
                 <Value ><2.16.840.1.113883.2.22.0.100.90.10 ></> <-- OID de Tabla Maestra de Especialidades-->
          </ValueList >
        </rim: Slot>
                                
    </rim: Classification>
       
                     

repositoryUniqueId

Identificador externo único del repositorio donde el documento puede ser accesado. Formato OID


<rim: Slot name="repositoryUniqueId" >
  <ValueList >
       <Value ><2.16.840.1.113883.2.22.0.100.80.1 ></> <-- Por Definir pero en principio ese sería el OID HCC de Repositorio 1 del MINSAL-->
  </ValueList >
</rim: Slot>
                    

Size

Tamaño en bytes calculado por el sistema, del documento


<rim: Slot name="size" >
  <ValueList >
       <Value ><2584 ></> <-- 2584 bytes tamaño del doc, a modo de ejemplo-->
  </ValueList >
</rim: Slot>
                    

PatientSourceId

Slot en el cual se identifica la organización que le entrega identificación al paciente. Este atributo puede parecer innecesario dado que en la misma identificación del paciente agregamos la AA dado eso es importante mantener la coherencia


<rim: Slot name="PatientSourceId" >
  <ValueList >
       <Value ><251248491^^^Registro de Identificación para CI, Chile & 2.16.840.1.113883.2.22.1.152.787300 & ISO></> <-- en este caso agregamos el OID de Registro Civil para HCC y luego el tipo de documento (787300=CI)-->
  </ValueList >
</rim: Slot>
                    

SourcePatientInfo

Uno de los slots más grandes debido a que se colocará acá toda la información relativa al paciente contenida en el Documento. Esta información debe ir colocada en formato V2, razón por la cual se debe especificar el elemento de dato del cual proviene la información. Para el ejemplo ha quedado fuera la dirección y los contactos


<rim: Slot name="sourcePatientInfo" >
  <ValueList >
       <Value ><PID-3|231123465-2^^^&2.16.840.1.113883.2.22.0.101;&ISO></> <-- identificacion-->
       <Value ><PID-5|Beltran^Rigoberta Elvira^^^^></> <-- Primer Apellido, Nombre, sin nombre Social-->
       <Value ><PID-6|Arce></> <-- Segundo Apellido-->
       <Value ><PID-7|20141015></> <-- Fecha de Nacimiento-->
       <Value ><PID-8|02></> <-- Sexo=Mujer segun tabla maestra -->
       <Value ><PID-9|^Eriberto></> <-- Nombre Social-->
       <Value ><PID-22|10^Otros (Sin Especificar)></> <-- Grupo Etnico segun tabla maestrea-->
       <Value ><PID-23|Chile></> <-- País de Nacimento-->
  </ValueList >
</rim: Slot>
                    

Title

Es el Título en el CDA con máximo 128 caracteres. Es el valor del elemento LocalizedString dentro de una estructura Name; solo puede haber una en el DocumentEntry. Dado que es un atributo propio del documento es un elemento de tipo ExtrinsicObject


 <ExtrinsicObject
     id="1.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <--documento al cual hace referencia
     objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1" <-- por definición de Title-->
     mimeType="text/xml">  <-- se identifica un texto como titulo-->
     
                                                                
       <rim: Name> <-- Se define el título-->
          <rim:LocalizedString value="Documento de Cierre Atención Ambulatoria" > </>
                                
       </Name >
       
       <-- TODO LO QUE VENGA DESPUES -->
                                
    </>
                                

typeCode

Tipo de Documento desde la perspectiva del usuario, se recomienda usar LOINC.


<rim: Classification 
     classificationScheme="urn:uuid:f0306f51-975f-434e-a61c-c59651d33983" <--Representa TypeCode-->
     classifiedObject="1.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- id del documento con alguna variacion-->
     id="HCC08" <-- Valor de uso interno-->
     objectType="urn:oasis:names:tc:ebxmlregrep:ObjectType:RegistryObject:Classification" <-- por definición de Clasificación-->
     nodeRepresentation="51845-6"  <--Documento de Cierre de Consulta -->
                                                                
       <rim: Name> <-- Se define la Glosa del código-->
          <rim:LocalizedString value="Nota de Consulta Albulatoria" > </>
                                
       </Name >
       <rim: Slot name="codingSystem"> <-- Se define el sistema de codificación para el codigo expesado-->
          <ValueList >
                 <Value ><2.16.840.1.113883.6.1 ></> <-- OID de Loinc-->
          </ValueList >
        </rim: Slot>
                                
    </rim: Classification>
       
                     

UniqueID

Identificador Externo entregado por el creador del documento para identificarlo. Este elemento existe en el documento y debe ser extraído del ID de este, siguiendo las reglas de creación indicadas en las guías de implementación de los CDA


 <rim: ExternalIdentifier
     id="iE02" <--Valor de uso interno-->
    identificationScheme="urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab" <-- por definición de Identificación-->
     value="2.16.840.1.113883.2.22.2.100.100.201908100949.1">  <-- id del documento transado-->
     
                                                                
       <rim: Name> <-- Se define la glosa del tipo de identificación externo-->
          <rim:LocalizedString value="XDSDocumentEntry.uniqueId " > </>
                                
       </Name >
       
                                
    </rim: ExternalIdentifier>
                                

intendedRecipient

Quien se espera reciba el documento (solo si se requiere) debe ir: id, primer apellido, nombres, AA nombre, AA id, Tipo de Documento puede ser 1..*. Igual que las otras definiciones de participantes esta es llevada en formato V2. A este formato se le puede agregar perfectamente datos demográficos como nombres, apellidos, etc., en el formato de sorcePatientInfo, en caso de necesitarse


<rim: Slot name="intendedRecipient" >
  <ValueList >
       <Value ><8345123-8^Rodriguez^Mirko Javier^^^^^^2.16.840.1.113883.2.22.1.152.101&Registro de CI Chile^^^^2.16.840.1.113883.2.22.1.152.787300&ISO ></> <-- Ver las otras identificacioes-->
  </ValueList >
</rim: Slot>
                    
SubmissionSet

Esta Metadata describe la información global del paquete de documentos que se va a intercambiar durante la transacción para entregar información sobre un acto clínico específico. El SubmissionSet es parte de una ITI-41 y debe ser creada su Metadata. El formato en el cual se especifica el atributo usa como prefijo el nombre SubmissionSet seguido por un punto y el nombre del atributo

Los atributos usados para HCC son los siguientes:

# Atributo Metadata SubmissionSet Descripción
1 author Atributo del autor del submissionSet, en general el médico. Este puede poseer sub atributos como authorInstitution o authorSpecility
2 comments Comentarios Asociados al Set de Documentos
3 contentTypeCode el contenido del Set de documentos en relación a la actividad clínica por la cual fue creado este set
4 entryUUID Identificación única Global del Set
5 homeCommunityId Identificación de dominio al cual pertenece el set, en este caso es MINSAL
6 patientId Identificador del paciente sobre el cual se arma el submissionSet
7 sourceId Fuente de la organización que entrega la id del paciente
8 submissionTime Hora en la cual se crea el Submission
9 title Título General del Submission
10 uniqueId Identificador único global para el submissionSet

Author

El author máquina o persona que genera el Set de Documentos Este atributo se puede complementar con datos adicionales


<rim: Classification 
     classificationScheme="urn:uuid:a7058bb9-b4e4-4307-ba5b-e3f0ab85e12d" <--Representa submissionSet.Author -->
     classifiedObject="2.2.16.840.1.113883.2.22.2.100.100.201908100949.2" <-- id del documento con alguna variacion, se agrega un 2-->
     id="HCCSS_01" <-- Valor de uso interno-->
     objectType="urn:oasis:names:tc:ebxmlregrep:ObjectType:RegistryObject:Classification" <-- por definición de Clasificación-->
     nodeRepresentation=""  <--En Blanco -->
                                                                
       <-- Ahora Definimos el author en Slot-->
        <rim: Slot name="authorPerson" >
           <ValueList >
              <Value> <"13345322-2^Perez^Javier^^^Doctor^^^&Registro Civil^^^^2.16.840.1.113883.2.22.1.152.787300&ISO">  </Value> < -- PV1-8 con definición de tipo de id segun esquema IHE-->
              
           </ValueList >
        
        </rim:Slot>
        <rim: Slot name="authorSpeciality" >
           <ValueList >
              <Value> <Broncopulmonar>  </Value> < -- Según el caso se deberá definir el código según V2-->
              
           </ValueList >
        </rim:Slot>
        
</rim: Classification>
       
                     

comments

Este solo cumple con la propiedad de elemento por lo que su codificación es simple


<rim: description >
  
        <rim:LocalizedString value = "El Subset Creado es de documentos Para uso de investigación (Ejemplo) " >  </>
</rim: description >          

                     

contentTypeCode

Es un código que especifica el tipo de actividad clínica que es interpretado por el set de documentos/Carpetas o asociaciones El código debe ser extraído de un vocabulario definido por la entidad creadora.


<rim: Classification 
     classificationScheme="urn:uuid:aa543740-bdda-424e-8c96-df4873be8500" <--Representa contentTypeCode-->
     classifiedObject="2.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- id del documento con alguna variacion, en este caso por ser summisionSet se agrega un 2-->
     id="HCCSS_02" <-- Valor de uso interno-->
     objectType="urn:oasis:names:tc:ebxmlregrep:ObjectType:RegistryObject:Classification" <-- por definición de Clasificación-->
     nodeRepresentation="19829001"  <--Todos los documentos son de temas relacionados con problemas Broncopulmonares -->
                                                                
       <rim: Name>
          <rim:LocalizedString value="Problemas Pulmonares" > </>
                                
       </Name >
       <rim: Slot name="codingSystem"> <-- Se define el sistema de codificación para el codigo expesado-->
          <ValueList >
                 <Value ><2.16.840.1.113883.6.96 ></> <-- OID de SNOMED-->
          </ValueList >
        </rim: Slot>
                                
    </rim: Classification>
       
                     

entryUUID

Identificador Global usado internamente para manejo de documentos. en este caso se usa para referencias externas


<rim: RegistryPackage >
        
        id="2.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- Identificación del documento con un 2 antepuesto-->
        <rim:LocalizedString value = "El Subset Creado es de documentos Para uso de investigación (Ejemplo) " >  </>
        objectType="urn:oasis:names:tc:ebxmlregrep:ObjectType:RegistryObject:RegistryPackage" <-- para RegistryPackage -->
</rim: description >          

        <-- Todo lo que venga después --> 
        
        </> 
                              

homeComunityId

Es la identificación del dominio en el cual se aplica XDS. En este caso dado que es un proyecto nacional este será la Id de MINSAL


<rim: ExtrinsicObject home="urn:oid:2.16.840.1.113883.2.22.1.152.100">
   <rim: Name>
         <rim:LocalizedString value="Comunidad Asociada a la Concurrente del MINSAL"/>
   </rim>
</ExtrinsicObject>    
  
       
                     

patientId

El paciente es el sujeto de acción al cual se refiere el submissionSet


 <rim: ExternalIdentifier
     id="iE01" <--Valor de uso interno-->
     registryObject="2.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- id del documento en donde se identifica al paciente con alguna variacion-->
     identificationScheme="urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446" <-- por definición de Identificación-->
     value="25124849-1^^^RegistroCivil & 2.16.840.1.113883.2.22.0.101^2.16.840.1.113883.2.22.1.152.787300 & ISO">  <-- run, AA,OID de tipo de doc-->
     
                                                                
       <rim: Name> <-- Se define la Glosa del código-->
          <rim:LocalizedString value="XDSSubmissionSet.patientId" > </>
                                
       </Name >
       
                                
    </rim: ExternalIdentifier>
                                

sourceId

Aquí se identifica la fuente del submission, debe ser una identificación global reconocible


 <rim: ExternalIdentifier
     id="iE02" <--Valor de uso interno-->
     registryObject="2.2.16.840.1.113883.2.22.2.100.100.201908100949.1" <-- id del documento en donde se identifica al paciente con alguna variacion-->
     identificationScheme="urn:uuid:554ac39e-e3fe-47fe-b233-965d2a147832" <-- por definición de Identificación-->
     value="2.16.840.1.113883.2.22.0.2.102100">  <-- OID hospital de IQQ-->
     
                                                                
       <rim: Name> <-- Se define la Glosa del código-->
          <rim:LocalizedString value="XDSSubmissionSet.sourceId" > </>
                                
       </Name >
       
                                
    </rim: ExternalIdentifier>
                                

submissionTime

Hora en la cual se crea la submission de documentos


<rim: Slot name="submissionTime" >
  <ValueList >
       <Value ><201812041129 ></> <-- las 11:29 del día 04 del 12 de 2018-->
  </ValueList >
</rim: Slot>
                    

submissionTitle

Con un máximo de 256 caracteres es el atributo que le da un título al submissionSet


<rim: Name >
  <LocalizedString value="Documentos para Análisis de Caso de alteración Neurológica de Paciente (ejemplo)"/ >
 
</rim: Name>
                    

uniqueID

Identificador Global que tiene como propósito identificar unívocamente al submissionSet


 <rim: ExternalIdentifier
     id="iE03" <--Valor de uso interno-->
     identificationScheme="urn:uuid:96fdda7c-d067-4183-912e-bf5ee74998a8" <-- por definición de Identificación-->
     objectType="urn:oasis:names:tc:ebxmlregrep:ObjectType:RegistryObject:ExternalIdentifier"
     value=2.16.840.1.113883.2.22.2.114101.100.201908100949.1">  <-- documento generado con un "2" que lo precede-->
     
                                                                
       <rim: Name> <-- Se define la Glosa del código-->
          <rim:LocalizedString value="XDSSubmissionSet.uniqueId" > </>
                           
                           
       </Name >
       
                                
    </rim: ExternalIdentifier>
                                

Relaciones

El Set de documentos debe tener relaciones de manera que pueda ser vinculado a la hora de hacer la transacción. Esto se hace vinculando el submissionSet generado con el documento, haciendo uso de sus identificaciones declaradas en la metadata


 <rim: Classification
     id="HCCSS_10"
     classifiedObject="2.16.840.1.113883.2.22.2.114101.100.201908100949.1"
     classificationNode="urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd"
     
 </Classification> 
 
 <rim: Association
     id="HCCas_01"
     associationType="HasMember"
     sourceObject="2.16.840.1.113883.2.22.2.114101.100.201908100949.1"
     targetObject="1.16.840.1.113883.2.22.2.114101.100.201908100949.1"
      <rim:Slot name="SubmissionSetStatus">
         <rim: Valuelist>
            <rim:Value>Original </rim:Value>
         </rim: Valuelist>
      </rim:Slot> 
 </Association> 
 
                                
Ejemplo ITI-41

En el siguiente link podrá descargar un ejemplo para esta unidad: ITI-41.xml

Ejercicio

En el siguiente link podrá descargar el ejercicio para esta unidad: Ejercicio