Health Information Exchange
0.1.0 - ci-build Costa Rica

Health Information Exchange - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Agrupaciones de actores requeridas

Un actor de HIX no se implementa desde cero. Se implementa agrupando actores de los perfiles IHE que HIX compone, y cada uno de ellos trae consigo sus transacciones, sus opciones y sus requisitos. La sección 2.2 dice qué transacciones ejecuta cada actor. Esta sección dice de qué está hecho, es decir, qué actores IHE agrupa y bajo qué opciones. Para quien implementa, es la lista de perfiles que debe leer y de agrupaciones que debe declarar al afirmar su conformidad. Para quien solo quiere entender la arquitectura, basta con la sección 2.2 y esta queda como referencia.

Cada actor de HIX SHALL implementar los actores agrupados que le asigna la Tabla 2.4-2. Las agrupaciones se describen primero en prosa, actor por actor, y la tabla las resume al final.

Lo que casi todos agrupan

Tres perfiles acompañan a casi todos los actores de HIX. Se describen aquí una sola vez y no se repiten en cada actor.

IUA pone el token en cada transacción. Todo miembro es un Authorization Client de IUA. Obtiene el token del Authorization Server con ITI-71 y el grant Client Credentials, salvo la aplicación del paciente, que lo obtiene con HIX-2, y lo presenta en cada solicitud con ITI-72. Todo actor ante el que un miembro presenta un token, directamente o a través del Record Locator Service, es un Resource Server de IUA, que recibe el token con ITI-72 y lo comprueba. Ambos pueden descubrir los endpoints del Authorization Server mediante ITI-1031.

IUA exige a todo Resource Server declarar con qué opción comprueba el token (IUA, Tabla 34.2-1)2. Cada actor declara al menos una de la JWT Token Option o la Token Introspection Option, y puede declarar además la Authorization Server Metadata Option para descubrir los endpoints del Authorization Server. La Tabla 2.4-1 dice cuáles declara cada actor de HIX.

Tabla 2.4-1: Cómo comprueba el token cada actor

Actor Opciones de IUA Cómo comprueba el token
Record Locator Service Token Introspection Pregunta al Authorization Server con ITI-102
Master Patient Index Token Introspection, JWT Token, Authorization Server Metadata El token del miembro que le declara o consulta identidades, y el token propio del Document Registry o del Authorization Server, preferiblemente con ITI-102
Document Registry Token Introspection, JWT Token, Authorization Server Metadata El token del miembro que publica y el token propio del Record Locator Service, preferiblemente con ITI-102. El token mediado, por sí mismo
Directorio de la comunidad Token Introspection, JWT Token, Authorization Server Metadata El token propio del Record Locator Service o del Document Registry, preferiblemente con ITI-102. El token mediado, por sí mismo
Custodio JWT Token, Authorization Server Metadata. Token Introspection, si la comunidad la admite Por sí mismo, con las claves que el Authorization Server publica, como fija la sección 2.6
Authorization Server JWT Token, Authorization Server Metadata, Token Introspection Emite los tokens, publica sus endpoints y sus claves con ITI-103 y responde ITI-102

Un mismo sistema puede ser las dos cosas. El Record Locator Service es Resource Server ante los miembros y Authorization Client ante los custodios y los actores centrales, y un custodio presenta tokens al publicar y los valida al servir documentos. Cómo se autentican entre sí los demás actores centrales queda a criterio de la implementación, porque pueden compartir un mismo sistema, como dice el apartado sobre los despliegues.

ATNA protege el canal y deja rastro. Todo sistema que participa en HIX, salvo la aplicación del paciente, es un Secure Node o Secure Application de ATNA. Autentica al nodo con el que habla y cifra el canal con ITI-19, bajo la opción STX: TLS 1.2 Floor using BCP195, y registra sus eventos de auditoría con ITI-20, como recursos AuditEvent bajo la opción ATX: FHIR Feed3 y con el contenido que cada perfil define a partir de los patrones de BALP. Esa opción pide a quien registra al menos una de las dos interacciones de ITI-20, y al Audit Record Repository las dos. Quien escribe esos registros es, en términos de BALP, un Audit Creator, que BALP agrupa precisamente con ese Secure Node o Secure Application (BALP, §1:52.1.1.1)4. Los actores centrales envían sus eventos al Audit Record Repository de la comunidad. Cada miembro conserva los suyos en su propio registro de auditoría.

CT mantiene los relojes de acuerdo. Todo sistema que participa en HIX, salvo la aplicación del paciente, es un Time Client de CT y sincroniza su reloj con ITI-1 contra el Time Server que la comunidad designa, propio o una fuente de tiempo externa. Sin relojes de acuerdo, los eventos de una misma divulgación no podrían ordenarse entre sistemas y la vigencia de dos minutos del token mediado no significaría lo mismo en cada extremo.

Esta guía deja por ahora a la aplicación del paciente fuera de ATNA y de CT. Su actividad queda registrada por los dos actores centrales ante los que actúa, el Authorization Server al lanzarse y el Record Locator Service en cada consulta.

Miembros

​Custodio. Es un Document Source de MHD con la Comprehensive Metadata Option, porque el Document Registry exige metadatos completos al publicar, como hace el de MHDS5. Declara también la UnContained Reference Option, porque el puntero no lleva copias contenidas. subject y custodian referencian lo que la comunidad conserva, y sourcepatient, que MHD deja opcional y sin forma fija bajo esa opción, es una referencia lógica por identificador6. No es un Document Responder de MHD, porque las localizaciones con ITI-66 e ITI-67 las responde el Document Registry, que guarda los punteros. Es el servicio que aloja el contenido fuera del Document Registry, como lo prevé MHDS (MHDS Vol. 1, §1:50.1.1.2)7, y lo sirve con ITI-68 solo al Record Locator Service. Por eso es también un Resource Server de IUA, que valida localmente el token mediado. Es un Patient Identity Source de PIXm, que declara sus identidades locales con ITI-104. Y es un Authorization Client de IUA, que obtiene el token con el que publica y declara. Puede agrupar además un Patient Identifier Cross-reference Consumer de PIXm para comprobar por su cuenta el contexto de paciente, como admite la sección 2.6. Bajo la Opción de Almacenamiento Central deja de alojar el contenido y de ser Resource Server, porque entrega el contenido al publicar y ya no responde recuperaciones.

Consumidor. Es un Document Consumer de MHD, que localiza con ITI-66 e ITI-67 y recupera con ITI-68 a través del Record Locator Service, y un Authorization Client de IUA. Puede agrupar además un Patient Identifier Cross-reference Consumer de PIXm, para resolver con ITI-83 un identificador que ya conoce, y, bajo la Opción de Demografía, un Patient Demographics Consumer de PDQm con la Patient Search Option, para buscar con ITI-78 a un paciente del que solo conoce sus datos. Bajo la Opción de Coincidencia Demográfica ese mismo actor declara la Match Operation Option, para buscarlo con ITI-119. No es Resource Server, porque no responde transacciones de nadie.

Aplicación del paciente. Es un Document Consumer de MHD y un Authorization Client de IUA, y nada más. Obtiene su token con HIX-2 y desde ahí localiza y recupera como cualquier consumidor, confinada al paciente que la usa.

Actores centrales

Record Locator Service. Hacia los miembros es un Document Responder de MHD, que recibe sus localizaciones y recuperaciones, y un Resource Server de IUA con la Token Introspection Option, porque comprueba cada token con ITI-102. Hacia el Document Registry y los custodios es un Document Consumer de MHD, que ejecuta esas mismas transacciones a nombre del solicitante, y un Authorization Client de IUA, que obtiene el token mediado con HIX-1 para cada custodio y, salvo que la comunidad autorice un token propio conforme a la sección 2.2, para cada actor central desplegado como un sistema distinto. Agrupa además un Query Client de mCSD, con el que obtiene el endpoint de cada custodio con ITI-90.

Document Registry. HIX toma el nombre y la función de este actor del Document Registry de MHDS y adapta sus agrupaciones a la arquitectura de la comunidad8. Agrupa los siguientes actores:

  • Un Document Recipient de MHD con la Comprehensive Metadata Option y la UnContained Reference Option, que recibe las publicaciones sin exigir copias contenidas, de modo que sourcepatient nombra a la identidad local por su identificador en el dominio del custodio. Esta referencia conserva la identidad con la que la fuente conoce al paciente y no debe confundirse con subject, que HIX vincula con la identidad maestra (golden record) de la comunidad.
  • Un Document Responder de MHD, que responde las localizaciones y, bajo la Opción de Almacenamiento Central, también las recuperaciones.
  • Un Patient Identity Consumer de PMIR, que recibe por ITI-93 las altas, los cambios y las fusiones de las identidades maestras. Aplica las fusiones a los punteros y a las listas que conserva, que es lo que MHDS pide a su Document Registry, y conserva las altas y los cambios solo para comprobar que un paciente es reconocido y está activo9. Las recibe porque está suscrito con ITI-94. Esa suscripción la crea un Patient Identity Subscriber de PMIR, que puede ser el propio Document Registry o la operación de la comunidad.
  • Un Query Client de mCSD (que MHDS todavía denomina Care Services Selective Consumer), con el que comprueba que quien publica es un miembro activo de la comunidad.
  • Un Patient Identifier Cross-reference Consumer de PIXm, que HIX añade, con el que comprueba al indexar que la persona existe y está activa en la comunidad, la misma comprobación que MHDS pide a su Document Registry al validar una publicación10, y con el que resuelve a la identidad maestra los identificadores con los que el custodio nombra al paciente en subject y en sourcepatient, y con los que una consulta ITI-66 o ITI-67 nombra al paciente.
  • Un Authorization Client de IUA, que obtiene con ITI-71 y el grant Client Credentials el token con el que consulta el Master Patient Index y el directorio.
  • Un Resource Server de IUA, que comprueba cada token que recibe con las opciones de la Tabla 2.4-1.

De las opciones que MHDS define para su Document Registry, HIX adopta las agrupaciones de la Authorization Option, salvo la del Authorization Server, y las de la UnContained References Option. El Authorization Server queda fuera de la agrupación porque la comunidad dispone de uno solo para todos sus Resource Servers, como explica la sección 2.1. La decisión de divulgación la garantiza el Record Locator Service, y la evalúa él mismo o el Document Registry cuando la comunidad la sitúa allí, como fija la sección 2.2.

Nota. HIX todavía no define cómo manejar la SVCM Validation Option. Validar la terminología de los metadatos queda a criterio de cada implementación.

Authorization Server. Es el Authorization Server de IUA, con las tres opciones de la Tabla 2.4-1. Es también un OpenID Provider, es decir, un servidor de autorización que además autentica a la persona y acredita esa autenticación con un id_token11. Lo es porque HIX-2 se apoya en SMART App Launch, y SMART entrega ese id_token junto con el access token cuando la aplicación pide el scope openid12. Y agrupa un Patient Identifier Cross-reference Consumer de PIXm, con el que resuelve a la identidad maestra la identidad de la persona autenticada para fijar el contexto de paciente.

Directorio de la comunidad. Es el Directory de mCSD. Lo consultan el Record Locator Service, para dirigir cada recuperación cuando el contenido queda en el custodio, y el Document Registry, para validar a quien publica. Es Resource Server de IUA, porque el Record Locator Service le presenta un token en cada consulta, y agrupa además los comunes de lo que casi todos agrupan.

Master Patient Index. Agrupa tres actores que trabajan sobre los mismos datos, y es Resource Server de IUA ante todos ellos.

  • El Patient Identity Registry de PMIR, que recibe por ITI-93 las identidades maestras de la fuente autoritativa, responde las suscripciones de ITI-94 y envía por ITI-93 cada cambio a quien está suscrito, como el Document Registry. PMIR le exige además responder ITI-83 e ITI-78 con las reglas del Patient Identifier Cross-reference Manager y del Patient Demographics Supplier13.
  • El Patient Identifier Cross-reference Manager de PIXm, que aporta ITI-104, con el que recibe las identidades locales que los miembros declaran y las enlaza con la identidad maestra.
  • El Patient Demographics Supplier de PDQm con la Match Operation Option, que aporta ITI-119, la búsqueda por coincidencia probabilística.

Audit Record Repository. Es el Audit Record Repository de ATNA con la opción ATX: FHIR Feed, que recibe por ITI-20 los eventos de los actores centrales como recursos AuditEvent. No agrupa más actores que los comunes de lo que casi todos agrupan.

Fuente autoritativa de identidad. Es el Patient Identity Source de PMIR, que crea, actualiza, fusiona y desactiva las identidades maestras con ITI-93, y un Authorization Client de IUA, porque lo hace con un token que obtiene del Authorization Server de la comunidad con ITI-71 y el grant Client Credentials. Es externa a la comunidad, y HIX no le pide nada que PMIR, IUA, ATNA, BALP y CT no pidan a cualquier sistema que participa.

Resumen

La Tabla 2.4-2 reúne lo anterior en una sola vista. Las opciones van entre corchetes. ATNA Secure Node o Secure Application, BALP Audit Creator y CT Time Client acompañan a todos los actores salvo a la aplicación del paciente y no se repiten en cada fila.

Tabla 2.4-2: Actores que agrupa cada actor de HIX

Actor de HIX Actores agrupados
Custodio MHD Document Source [Comprehensive Metadata, UnContained Reference], PIXm Patient Identity Source, IUA Authorization Client. Salvo bajo la Opción de Almacenamiento Central, también IUA Resource Server [JWT Token, Authorization Server Metadata, Token Introspection si la comunidad la admite] como servicio que aloja el contenido. Opcionalmente PIXm Patient Identifier Cross-reference Consumer, para comprobar por su cuenta el contexto de paciente
Consumidor MHD Document Consumer, IUA Authorization Client. Opcionalmente PIXm Patient Identifier Cross-reference Consumer y, bajo las opciones de Demografía y de Coincidencia Demográfica, PDQm Patient Demographics Consumer [Patient Search, Match Operation]
Aplicación del paciente MHD Document Consumer, IUA Authorization Client
Record Locator Service MHD Document Responder, MHD Document Consumer, mCSD Query Client, IUA Resource Server [Token Introspection], IUA Authorization Client
Document Registry MHD Document Recipient [Comprehensive Metadata, UnContained Reference], MHD Document Responder, PMIR Patient Identity Consumer, mCSD Query Client, PIXm Patient Identifier Cross-reference Consumer, IUA Resource Server [Token Introspection, JWT Token, Authorization Server Metadata], IUA Authorization Client
Authorization Server IUA Authorization Server [JWT Token, Authorization Server Metadata, Token Introspection], OpenID Provider de OpenID Connect, PIXm Patient Identifier Cross-reference Consumer, IUA Authorization Client
Directorio de la comunidad mCSD Directory e IUA Resource Server [Token Introspection, JWT Token, Authorization Server Metadata]
Master Patient Index PMIR Patient Identity Registry, PIXm Patient Identifier Cross-reference Manager, PDQm Patient Demographics Supplier [Match Operation], IUA Resource Server [Token Introspection, JWT Token, Authorization Server Metadata]
Audit Record Repository ATNA Audit Record Repository [ATX: FHIR Feed]
Fuente autoritativa de identidad PMIR Patient Identity Source, IUA Authorization Client

Sobre los despliegues

Las agrupaciones anteriores describen funciones, no servidores. Una comunidad puede repartirlas entre varios sistemas o reunirlas en uno solo. Por ejemplo, el Document Registry, el Master Patient Index y el directorio pueden compartir un mismo servidor FHIR central.

La distribución no cambia las responsabilidades. El Record Locator Service atiende siempre las localizaciones y recuperaciones de los miembros y garantiza que se aplique la decisión de divulgación. El Document Registry recibe las publicaciones y el Master Patient Index, las declaraciones y consultas de identidad. Cada actor comprueba el token del miembro y aplica las reglas de la comunidad para la transacción que recibe.

La comunidad puede colocar una fachada común delante de estos servicios, incluido el propio Record Locator Service. Esa fachada cambia cómo se llega a ellos, pero cada actor conserva sus responsabilidades. Cuando el Record Locator Service y otro actor central forman un mismo sistema, sus llamadas son internas y no requieren intercambio de tokens mediante HIX-1.

Los requisitos de autorización de cada actor se detallan en la sección 2.2.

Referencias

Las citas reproducen el texto publicado por su fuente. Los recortes se marcan con "[…]" y la negrita es de esta guía.

  1. IUA, Table 34.1-1 IUA Profile - Actors and Transactions: "Authorization Client | Get Access Token | R […] Incorporate Access Token | R […] Get Authorization Server Metadata | O […] Resource Server | Incorporate Access Token | R […] Introspect Token | O (Note 1) […] Get Authorization Server Metadata | O […] Note 1: Optionality of this transaction is "R" for an actor that supports the Token Introspection Option." ↩

  2. IUA, Table 34.2-1 IUA - Actors and Options, Note 1: "Authorization Server or Resource Server Actors shall support at least one of the following options: JWT Token, SAML, or Token Introspection. The Authorization Client is not and does not need to be aware of the token processing options." ↩

  3. RESTful ATNA (Query and Feed), Rev. 3.6, §9.2.7.1 ATX: FHIR Feed Option: "The ATX: FHIR Feed Option enables sending ATNA audit records using RESTful capabilities and FHIR resources. An Audit Record Repository that supports this option shall implement the two RESTful interactions defined in the Record Audit Event [ITI-20] transaction. A Secure Node, Secure Application or Audit Record Forwarder that supports this option shall at least support one of the two RESTful interactions defined in the Record Audit Event [ITI-20] transaction." ↩

  4. BALP, §1:52.1.1.1 Audit Creator: "The Audit Creator shall detect the defined auditable events and record a complaint [sic] AuditEvent as defined. The Audit Creator shall be grouped with an ATNA Secure Application or ATNA Secure Node with support for ATNA ATX:FHIR Feed Option defined in the RESTful ATNA Supplement for the recording of the compliant AuditEvent to the Audit Record Repository." ↩

  5. ​MHDS, §1:50.4.2.1 Use Case #1: Publication of a new document with persistence: "The MHD Comprehensive Metadata Option is required of the MHD Document Source as the MHD Document Recipient within the MHDS Document Registry will implement the Comprehensive Metadata Option." ↩

  6. MHD, §1:33.2.3 UnContained Reference Option: "When this longitudinal consistency is managed, then the author, authenticator, sourcePatientInfo, and author entries do not need to be a contained copy of the information known at the time of publication ITI-65 since a Reference to the information in these directories will be valid over the full lifecycle of the entries." §2:3.65.4.1.2.2 Patient Identity: "When the UnContained Reference Option is used, there is no need to populate the sourcePatient extension." ↩

  7. ​MHDS Vol. 1, §1:50.1.1.2 Storage of Binary: "This might be other centralized infrastructure, distributed infrastructure, or within the system implementing the Document Source. […] When this is used by the Community, the service hosting the Binary shall: persist the Binary for the lifecycle expected of the Community; provide access to the community members; use the security model agreed to by the community members." ↩

  8. ​MHDS, Table 1:50.3-1 Required Actor Groupings: "Document Registry | Required | CT / Time Client […] Required | ATNA / Secure Node or Secure Application with the STX: TLS 1.2 with the BCP195 Option and the ATX: FHIR Feed Option […] Required | MHD / Document Responder […] Required | MHD / Document Recipient with the Comprehensive Metadata Option […] Required | PMIR / Patient Identity Consumer […] if the Authorization Option | IUA / Resource Server with the The IUA Authorization Server Metadata Option if the Authorization Option | IUA / Authorization Server with the The IUA Authorization Server Metadata Option […] if the UnContained References Option | mCSD / Care Services Selective Consumer […] if the SVCM Validation Option | SVCM / Terminology Consumer". ↩

  9. ​MHDS Vol. 1, §1:50.1 MHDS Actors, Transactions, and Content Modules: "PMIR - Patient Identity Consumer provides patient identity synchronization and specifically the merge function to be applied to any data managed in the Document Registry." §1:50.1.1.1.3 When the grouped PMIR Patient Identity Consumer – is triggered: "No behavior is expected of the Document Registry on receipt of a feed containing create, delete, or update, although the Document Registry may consume and persist these to support the Document Registry requirements to validate Patient references as a recognized Patient within the Community." ↩

  10. ​MHDS Vol. 1, §1:50.1.1.1.1 When the grouped MHD Document Recipient – is triggered: "The Document Registry SHALL validate that the subject of the DocumentReference, and List Resources is the same Patient, and that Patient is a recognized and active Patient within the Community. The Patient identity must be recognized and active by the PMIR Patient Identity Registry in the document sharing community. This may be accomplished by a query of the PMIR Patient Identity Registry, by way of a cached internal patient database, or other means." ↩

  11. OpenID Connect Core 1.0, §1.2 Terminology: "OpenID Provider (OP): OAuth 2.0 Authorization Server that is capable of Authenticating the End-User and providing Claims to a Relying Party about the Authentication event and the End-User." ↩

  12. SMART App Launch, Scopes for requesting identity data: "Some apps need to authenticate the end-user. This can be accomplished by requesting the scope openid. […] When these scopes are requested (and the request is granted), the app will receive an id_token that comes alongside the access token. This token must be validated according to the OIDC specification." ↩

  13. PMIR Vol. 1, §1:49.1 PMIR Actors, Transactions, and Content Modules: la Tabla 1:49.1-1 da al "Patient Identity Registry" las transacciones "Mobile Patient Identifier Cross-reference Query [ITI-83]" y "Mobile Patient Demographics Query [ITI-78]" como "Responder" con opcionalidad "R". "Note 1: The Patient Identity Registry shall respond to [ITI-83] queries using the requirements in that transaction for the Patient Identity Cross-Reference Manager." "Note 2: The Patient Identity Registry shall respond to [ITI-78] queries using the requirements in that transaction for the Patient Demographics Supplier." ↩