API de interoperabilidad de UnitedHealthcare
Las API de interoperabilidad de UnitedHealthcare son API basadas en estándares fáciles de usar para desarrolladores que les permiten a los proveedores de aplicaciones de terceros conectar sus programas de aplicación para acceder a los datos de UnitedHealthcare.
Generalidades
Las API de interoperabilidad de UnitedHealthcare les permiten a los miembros de UnitedHealthcare brindar su consentimiento para que sus datos se compartan con aplicaciones de terceros. Además, les permiten a los propietarios de aplicaciones de terceros conectarse a directorios de proveedores y farmacias, denominados, en adelante, "datos públicos no específicos de miembros".
La API de interoperabilidad de UnitedHealthcare proporciona las funciones que se indican a continuación:
- Permite que los desarrolladores registren aplicaciones destinadas a los miembros.
- Permite que los miembros brinden su consentimiento para que una aplicación acceda a sus datos.
- Utiliza el estándar HL7 Fast Healthcare Interoperability Resources (FHIR) para los datos de los miembros.
- Utiliza el estándar OAuth 2.0/Open ID Connect para autorizar a los miembros.
- Utiliza el estándar HL7 FHIR para compartir datos públicos no específicos de miembros.
Notas sobre las versiones
Para utilizar las API de interoperabilidad de UnitedHealthcare, el desarrollador debe registrar su aplicación. Las organizaciones deben registrarse como usuarios, crear una identificación de OneHealthcare y completar la solicitud de registro a través de la sección "App Owner" (Propietario de la aplicación) del portal para proveedores para poder registrar aplicaciones.
La aplicación registrada recibirá una identificación de cliente y un secreto de cliente. El secreto solo debe usarse si se puede mantener confidencial, como la comunicación entre su servidor y las API de interoperabilidad de UnitedHealthcare. Para implementaciones no seguras, como aplicaciones móviles, está disponible la clave de prueba para el intercambio de código (PKCE, por sus siglas en inglés).
UnitedHealthcare también admite extremos de directorios públicos no autenticados. Consulte la sección sobre la documentación de recursos básicos para obtener más detalles.
Los tokens de acceso tienen alcances que definen los permisos y los recursos a los que el token puede acceder. Los alcances se utilizan principalmente para determinar el tipo de datos que solicita una aplicación. Deben declararse explícitamente; no se admiten comodines. En la versión actual, están disponibles los siguientes alcances para los siguientes tipos de solicitudes:
Nota: El alcance que no figura no es compatible.
Acceso al paciente
patient/Condition.read
patient/Coverage.read
patient/Encounter.read
patient/ExplanationOfBenefit.read
patient/Immunization.read
patient/MedicationDispense.read
patient/MedicationRequest.read
patient/Observation.read
patient/Patient.read
patient/Procedure.read
Acceso público
Directorio de proveedores
public/Organization.read
public/OrganizationAffiliation.read
public/Practitioner.read
public/PractitionerRole.read
public/Network.read
public/Endpoint.read
public/HealthcareService.read
public/InsurancePlan.read
public/Location.read
Directorio de farmacias
public/HealthcareService.read
public/InsurancePlan.read
public/Location.read
public/Organization.read
public/OrganizationAffiliation.read
Esto brinda acceso a los extremos FHIR correctos.
Nuestra pantalla de autenticación OAuth2 exige el consentimiento de los miembros para compartir diferentes tipos de datos. Su aplicación deberá controlar la devolución de códigos de estado HTTP desde los extremos si se producen fallas de autenticación o configuración.
Si el miembro se niega a compartir la información que su solicitud necesita, puede mostrar un mensaje que explique por qué se necesita esa información y solicitar una nueva autorización o manejar la recopilación de esa información en otra parte de su solicitud.
La selección predeterminada será compartir los alcances incluidos en la solicitud inicial con su aplicación. Si un miembro rechaza un alcance, pero luego decide que quiere cambiar la selección, deberá volver a autenticarse y realizar una elección diferente en la pantalla OAuth2. Es importante explicarles a los miembros por qué se necesitan ciertos datos.
Si se requiere información limitada por un alcance para que su aplicación funcione de forma correcta y no es posible obtener la información en otro extremo, recomendamos proporcionar una explicación sobre por qué se necesitan ciertos datos en su flujo de usuarios. Por ejemplo, si utiliza información demográfica para ayudar a los miembros a completar, de forma automática, el tedioso ingreso de datos, es posible que desee explicar ese beneficio antes de que lleguen a la pantalla de autorización. Sin embargo, es esencial que les brinde una descripción completa. Si comparten datos con su aplicación, deben saber cuánto tiempo los conservará y si se utilizarán para otros fines.
Hay varios pagadores disponibles en UnitedHealthcare
Utilice esta tabla para completar las anotaciones de [pagador] en una URL a continuación.
ID | Descripción |
---|---|
hsid | UnitedHealthcare |
sierra | Sierra Health and Life |
rmhp | Rocky Mountain |
healthx** | People's Health |
sandbox | Sandbox Testing Environment |
La identificación 'healthx' para People's Health ya no está disponible desde 8/2024. Próximamente, habrá una nueva identificación disponible.
Compatibilidad para aplicaciones móviles nativas
Para clientes públicos, como la aplicación móvil nativa, OAuth 2.0 admite la extensión PKCE y permite URI personalizadas como redireccionamientos.
La implementación de la especificación PKCE les permite a los desarrolladores crear aplicaciones móviles sin necesidad de un servidor proxy para enrutar llamadas redirigidas a su aplicación móvil.
La extensión PKCE proporciona una técnica para que los clientes públicos disminuyan la amenaza de un ataque de un "intermediario". Implica crear un "secreto" que se utiliza al intercambiar el código de autorización para obtener un token de acceso.
PKCE utiliza un código de verificación que se deriva de un verificador de código. Las API de interoperabilidad 2.0 de UnitedHealthcare admiten el código de verificación de estilo "S256".
Donde:
code_verifier = código aleatorio, que no es posible adivinar
code_challenge = BASE64URL-ENCODE(SHA256(ASCII(codeverifier)))
Los siguientes parámetros y valores adicionales se envían como parte de la solicitud de autorización OAuth2.0:
- code_challenge
- codechallengemethod = "S256"
Protocolo URI
El protocolo redirect_uri admite cualquier protocolo URI. Vea los ejemplos a continuación:
- Protocolo https://
- Protocolo custom_uri://
El formato https:// se utiliza para una comunicación segura y es necesario para todas las aplicaciones en el entorno de producción, a menos que la aplicación utilice el método Mobile OAuth para manejar las devoluciones de llamadas.
Protocolo custom_uri://
Las aplicaciones móviles utilizan el protocolo custom_uri para manejar las comunicaciones directamente con su aplicación en un dispositivo móvil.
Si utiliza la compatibilidad con Mobile OAuth para comunicarse directamente con un dispositivo móvil, custom_uri debe seguir este formato:
Top-level.domain(TLD).domain-name[.sub-domain][.app_name]
Por ejemplo, si el equipo de la API de interoperabilidad de UnitedHealthcare creó una aplicación, podríamos crear un protocolo custom_uri de:
api.uhc.com
Luego, se incorporaría a una entrada de URI de redireccionamiento. Por ejemplo:
api.uhc.com&state=8e896a59f0744a8e93bf2f1f13230be5
Se requieren los siguientes parámetros de consulta:
Response_type | Código |
client_id | Proporcionado tras la aprobación de la solicitud del cliente. |
scope | Lista separada por espacios de los alcances solicitados.
|
estado | Una cadena aleatoria generada por el cliente que será enviada desde AuthZ para verificar la autenticidad. |
redirect_uri | El URI al que la solicitud de código OAuth devuelve al usuario. |
code_challenge (si se usa PKCE) |
Cadena aleatoria generada por el cliente con hash SHA256 y codificada en BASE64. (Consulte el cuadro de información más abajo) |
code_challenge_method (si se usa PKCE) |
S256 |
Generación del código de verificación
- Cree una cadena aleatoria para usar como code_verifier:
eae64b84b53f479d92ab81dce7c8bbe608492951def502d84b4f0cd7 - Cree la cadena con hash SHA256 y codificada en base64-URL:
hI2vVv0Er_dHX9lUJo2O8lbFzkxfChVyM2WcHfODLnU - Utilice la cadena codificada en base64 url como valor del parámetro code_challenge.
- code_challenge_method siempre será S256, y cada solicitud de código debe contener un valor code_challenge único.
Ejemplo 1: solicitud GET (PKCE)
GET /oauth/authorize HTTP/1.1
Host: https://[payer].authz.flex.optum.com
response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=patient/Patient.read%20patient/ExplanationOfBenefit.read%20patient/Procedure.read&state=1234zyx&code_challenge=CODE_CHALLENGE&code_challenge_method=S256
Ejemplo 2: solicitud GET (si no se usa PKCE)
GET /oauth/authorize HTTP/1.1
Host: https://[payer].authz.flex.optum.com
response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=patient/Patient.read%20patient/ExplanationOfBenefit.read%20patient/Procedure.read&state=1234zyx
Al llegar al extremo del pagador, el miembro será redirigido al proveedor de identidad (IDP, por sus siglas en inglés) OAuth2/OIDC respectivo para su plan.
El miembro se autenticará con el IDP y, en algún momento, será redirigido de nuevo al extremo proporcionado en el parámetro redirect_uri de la solicitud de autorización. Cuando el miembro regrese a redirect_uri, la solicitud contendrá los siguientes parámetros de cadena de consulta:
- code
- estado
Compare el valor de state con el valor enviado en la solicitud de token inicial. Los valores deben coincidir, o podría tratarse de un posible intento de secuestro.
La aplicación cliente intercambiará el valor del código por un token de autorización en una solicitud POST en segundo plano al extremo del token AuthZ: https://[payer].authz.flex.optum.com/oauth/token
Se enviarán los siguientes parámetros POST:
Nombre del parámetro | Valor del parámetro |
---|---|
client_id | La identificación del cliente proporcionada durante la aprobación de la solicitud. |
client_secret (si no se usa PKCE) | El secreto del cliente proporcionado durante la aprobación de la solicitud. |
code | El código devuelto en el redireccionamiento. |
code_verifier (si se usa PKCE) | La cadena aleatoria original que se utilizó para el parámetro code_challenge en la solicitud de código. No utilice el hash SHA256 ni codifique con Base64Url. |
grant_type | authorization_code |
redirect_uri | El mismo URI de redireccionamiento enviado en la solicitud de código. |
Ejemplo de solicitud de token
POST /oauth/token HTTP/1.1
Host: https://sandbox.authz.flex.optum.com
Tipo de contenido: application/x-www-form-urlencoded
(si se usa PKCE)
grant_type=authorization_code&code=AUTH_CODE_HERE&redirect_uri=REDIRECT_URI&client_id=CLIENT_ID&code_verifier=CODE_VERIFIER
o (si NO se usa PKCE)
grant_type=authorization_code&code=AUTH_CODE_HERE&redirect_uri=REDIRECT_URI&client_id=CLIENT_ID&client_secret=CLIENT_SECRET
La respuesta POST devolverá un objeto JSON con las siguientes propiedades:
access_token | El token de acceso utilizado para solicitudes de datos. |
refresh_token | Se utiliza para solicitar nuevos tokens de acceso. |
expires_in | El tiempo de vencimiento del token de acceso. |
scope | Los valores de alcance que admite el token. |
patient | El identificador del paciente utilizado para solicitudes FHIR |
Ejemplo de respuesta del token
{
"access_token": "RsT5OjbzRn430zqMLgV3Ia",
"patient": "2234234234"
"expires_in": 3600,
"scope": "patient/patient.read",
"refresh_token": "PiV5OjbzRn520zwCJwV3Ia"
}
Credenciales del cliente (sistema a sistema) y acceso público autenticado
Para la autenticación de sistema a sistema y de acceso público, el extremo del token admite el otorgamiento client_credentials. En este caso, se solicita el extremo del token, y se recibirá una respuesta de este.
POST /oauth/token HTTP/1.1
Host: https://[payer].authz.flex.optum.com
grant_type=client_credentials&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&scope=user/Practitioner.read%20user/PractitionerRole.read
Tokens de actualización
El token de acceso será de corta duración, por lo general, de 5 minutos o menos.
Si la solicitud de datos devuelve una respuesta HTTP 401, es probable que el token de acceso haya caducado, y se deba utilizar el token de actualización para recibir un nuevo token de acceso.
Para recibir un nuevo token de acceso, haga una solicitud POST al extremo del token anterior con grant_type=refresh_token, y refresh_token= devolverá una respuesta de token con un nuevo token de acceso. No se emitirá un nuevo token de actualización.
Ejemplo de POST de actualización:
POST /oauth/token HTTP/1.1
Host: https://[payer].authz.flex.optum.com
grant_type=refresh_token&refresh_token=xxxxxxxxxxx&client_id=CLIENT_ID&client_secret=CLIENT_SECRET
Los tokens de actualización deben estar asegurados. Un token de actualización es de larga duración y puede usarse para emitir tokens que brindan acceso a la información de un miembro durante la vida útil del token de actualización.
Uso de tokens de acceso
Las solicitudes de recursos a la capa FLEX requieren un token de autorización OAuth2 proporcionado en el encabezado de autorización HTTP en el formato del siguiente ejemplo:
Ejemplo de solicitud
curl -H "Authorization: Bearer AeT4OkbzMr288gJ2ag9Fwe"
https://[payer].fhir.flex.optum.com/formulary
Versiones
Target | Versión de IG | Versión de FHIR |
---|---|---|
US Core Implementation Guide | 3.2 | 4.01 |
CARIN Implementation Guide for Blue Button | 2.0.0 | 4.01 |
DaVinci Payer Data Exchange (PDEX) | 1.0.0 | 4.01 |
DaVinci PDEX Plan Net* | 1.0.0 1.1.0 |
4.01 |
DaVinci PDEX US Drug Formulary | 1.0.1 | 4.01 |
* Aviso de actualización: Directorio de proveedores de UHC
Está previsto que el Directorio de proveedores de UHC se actualice a la versión 1.1.0 en noviembre de 2024. La fecha de lanzamiento tentativa para la versión 1.1.0 está establecida para el 5 de noviembre de 2024.
Tenga en cuenta que la versión 1.1.0 quedará obsoleta 6 meses después de su fecha de lanzamiento. Asegúrese de planificar sus actualizaciones en consecuencia para hacer la transición a la nueva versión dentro de este período.
Nota: La siguiente herramienta se puede utilizar para la validación.
Historial de versiones
A continuación, se muestran enlaces a los historiales de las IG para cada fuente mencionada en la tabla anterior.
- US Core Implementation Guide: http://hl7.org/fhir/us/core/history.html
- CARIN Implementation Guide for Blue Button: http://hl7.org/fhir/us/carin-bb/history.html
- DaVinci Payer Data Exchange (PDEX): http://hl7.org/fhir/us/davinci-pdex/history.html
- DaVinci PDEX Plan Net: http://hl7.org/fhir/us/davinci-pdex-plan-net/history.html
- DaVinci PDEX US Drug Formulary: http://hl7.org/fhir/us/davinci-drug-formulary/history.html
Extremos requeridos con autorización
La documentación de autorización se encuentra en el portal para propietarios de la aplicación. Esta información se comparte después del registro y la aprobación correctos de la organización. Inicie sesión y registre su organización para ver esta información.
Extremos NO requeridos con autorización
- Estos extremos solo son aplicables a las llamadas API del directorio público
URL de solicitud base
https://public.fhir.flex.optum.com/R4
Declaración de capacidad de metadatos
https://public.fhir.flex.optum.com/R4/metadata
Nota: UnitedHealthcare también admite extremos de directorios públicos autenticados y no autenticados.
Servicio de atención médica [DaVinci PDEX Plan Net]
El recurso HealthcareService, por lo general, describe los servicios ofrecidos por una organización o un profesional en una ubicación. El recurso puede utilizarse para abarcar una variedad de servicios que cubren todo el espectro de atención médica, incluida la promoción, la prevención, el diagnóstico, la farmacia, la atención hospitalaria y ambulatoria, la atención domiciliaria, la atención a largo plazo y otros servicios comunitarios y relacionados con la salud.
Método (leer):
GET [base]/HealthcareService/[id]
Método (buscar):
GET [base]/HealthcareService?service-category=prov
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
endpoint | Referencia (extremo) |
location | Referencia (ubicación) |
name | Hilo |
organization | Referencia (organización) |
service-category | Token |
service-type | Token |
specialty | Token |
characteristic | Token |
coverage-area | Hilo |
location.address | Hilo |
location.address-city | Hilo |
location.address-postalcode | Hilo |
location.address-state | Hilo |
Ejemplos:
GET [base]/HealthcareService?service-category=prov&name=Stewart
GET [base]/HealthcareService?service-category=prov&name=Stewart&specialty=207R00000X
Plan de seguro [DaVinci PDEX Plan Net]
Un plan de seguro es un paquete discreto de beneficios de la cobertura del seguro de salud que se ofrecen en un tipo de red particular. Los productos de un pagador determinado, por lo general, difieren según el tipo de red o los beneficios cubiertos. Un plan combina los beneficios cubiertos de un producto con la estructura particular de los costos compartidos que se le ofrece a un consumidor. Un producto determinado puede comprender múltiples planes (es decir, cada plan ofrece diferentes requisitos de costos compartidos para el mismo conjunto de beneficios cubiertos).
Método (leer):
GET [base]/InsurancePlan/[id]
Método (buscar):
GET [base]/InsurancePlan
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
administered-by | Referencia (organización) |
coverage-area | Referencia (ubicación) |
name | Hilo |
owned-by | Referencia (organización) |
plan-type | Token |
type | Token |
Ejemplos:
GET [base]/InsurancePlan?name=AARP
GET [base]/InsurancePlan?type=mediadv
GET [base]/InsurancePlan?coverage-area=17d3a57ef4bce23a2ea4da87259a7934e99b539
Ubicación [DaVinci PDEX Plan Net]
Una ubicación es el lugar físico donde se brindan los servicios de atención médica, trabajan los profesionales, tienen su sede las organizaciones, etc.
Las ubicaciones pueden variar en alcance desde una habitación en un edificio hasta una región o área geográfica.
Método (leer):
GET [base]/Location/[id]
Método (buscar):
GET [base]/Location
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
address | Hilo |
organization | Referencia (organización) |
partof | Referencia (ubicación) |
type | Token |
address-city | Hilo |
address-state | Hilo |
address-postalcode | Hilo |
address-country | Hilo |
Ejemplos:
GET [base]/Location?address=Orlando
GET [base]/Location?address-state=CA
GET [base]/Location?address-postalcode=97035-2591
Organización [DaVinci PDEX Plan Net]
Una organización es una agrupación formal o informal de personas u organizaciones con un propósito común, como una empresa, institución, corporación, grupo comunitario o práctica de atención médica.
Método (buscar):
GET [base]/Organization/[id]
Método (buscar):
GET [base]/Organization
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
address | Hilo |
endpoint | Referencia (extremo) |
name | Hilo |
partof | Referencia (organización) |
perfil | Hilo |
address-city | Hilo |
address-state | Hilo |
address-postalcode | Hilo |
identifier | Hilo |
type | Hilo |
Ejemplos:
GET[base]/Organization?partof=Organization/UHC
GET[base]/Organization?name=UnitedHealthcare
GET[base]/Organization?type=prygrp
GET[base]/Organization?_profile=http://hI7.org/fhir/us/davinci-pdex-plan-net/StructureDefinition/plannet-Organization&type=prygrp
Red [DaVinci PDEX Plan Net]
Una red es un tipo de búsqueda de organizaciones con el parámetro profile.
Método (buscar):
GET [base]/ Organization?_profile=http://hl7.org/fhir/us/davinci-pdex-plan-net/StructureDefinition/plannet-Network
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
address | Hilo |
endpoint | Referencia (extremo) |
name | Hilo |
partof | Referencia (organización) |
perfil | Hilo |
address-city | Hilo |
address-state | Hilo |
address-postalcode | Hilo |
identifier | Hilo |
type | Hilo |
Ejemplos:
GET [base]/Organization?_profile=http://hl7.org/fhir/us/davinci-pdex-plan-net/StructureDefinition/plannet-Network&address=Bahama
GET [base]/Organization?_profile=http://hl7.org/fhir/us/davinci-pdex-plan-net/StructureDefinition/plannet-Network&partof=UHC
GET [base]/Organization?_profile=http://hl7.org/fhir/us/davinci-pdex-plan-net/StructureDefinition/plannet-Network&type=ntwk
Afiliación de organización [DaVinci PDEX Plan Net]
El recurso OrganizationAffiliation describe las relaciones entre dos o más organizaciones, incluidos los servicios que una organización proporciona a otra, las ubicaciones donde prestan servicios, la disponibilidad de esos servicios, los extremos electrónicos y otra información relevante.
Método (buscar):
GET [base]/OrganizationAffiliation?role=provider
Nota: role es un parámetro obligatorio para OrganizationAffiliation
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
location | Referencia (ubicación) |
red | Referencia (organización) |
participating-organization | Referencia (organización) |
primary-organization | Referencia (organización) |
rol (código) | Token |
service | Referencia (servicio de atención médica) |
specialty | Token |
location.address | Hilo |
location.address-city | Hilo |
location.address-state | Hilo |
location.address-postalcode | Hilo |
Ejemplos:
GET [base]/OrganizationAffiliation?specialty=230000000X& role=provider
GET [base]/OrganizationAffiliation?location.address-city=Orlando& role=provider
Profesional [DaVinci PDEX Plan Net]
Un profesional es una persona que se involucra, de forma directa o indirecta, en la prestación de servicios de atención médica.
Método (leer):
GET [base]/Practitioner/[id]
Método (buscar):
GET [base]/Practitioner
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
familia | Hilo |
given | Hilo |
name | Hilo |
identifier | Hilo |
address-state | Hilo |
qualification-wherevalid-code | Hilo |
Ejemplos:
GET [base]/Practitioner?name=dice
GET [base]/Practitioner?given=slice
GET [base]/Practitioner?address-state=CA
GET [base]/Practitioner?identifier=123456
Función del profesional [DaVinci PDEX Plan Net]
La función del profesional describe detalles sobre un proveedor, que puede ser un profesional o una organización. Cuando el proveedor es un profesional, puede haber una relación con una organización.
Un proveedor presta servicios a pacientes en un lugar. Cuando el proveedor es un profesional, también puede haber una relación con una organización. La participación de los profesionales en las redes de seguros de proveedores de atención médica puede ser directa o a través de su papel en una organización.
Método (leer):
GET [base]/PractitionerRole/[id]
Método (buscar):
GET [base]/PractitionerRole
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
endpoint | Referencia (extremo) |
location | Referencia (ubicación) |
red | Referencia (organización) |
organization | Referencia (organización) |
practitioner | Referencia (profesional) |
rol (código) | Token |
service | Referencia (servicio de atención médica) |
specialty | Token |
location.address | Hilo |
location.address-city | Hilo |
location.address-postalcode | Hilo |
location.address-state | Hilo |
Ejemplos:
GET [base]/PractitionerRole?specialty=340000000X
GET [base]/PractitionerRole?location.address-state =CA
Nota: UnitedHealthcare también admite extremos de directorios públicos autenticados y no autenticados.
Servicio de atención médica de farmacia [DaVinci PDEX Plan Net]
El recurso HealthcareService, por lo general, describe los servicios ofrecidos por una farmacia u organización farmacéutica. El recurso puede utilizarse para abarcar una variedad de servicios que cubren todo el espectro de atención médica, incluida la promoción, la prevención, el diagnóstico, la farmacia, la atención hospitalaria y ambulatoria, la atención domiciliaria, la atención a largo plazo y otros servicios comunitarios y relacionados con la salud.
El recurso HealthcareService, por lo general, describe servicios o conjuntos de valores de especialidades basados en el conjunto de códigos de taxonomía de proveedores de atención médica del Comité Nacional de Reclamos Uniformes (NUCC, por sus siglas en inglés).
Método (leer):
GET [base]/HealthcareService/[id]
Método (buscar):
GET [base]/HealthcareService?service-category=pharm&coverage-area=90210
Parámetros de búsqueda:
Nombre | Tipo | Obligatorio u opcional |
---|---|---|
_id | Token | |
Tipo |
Hilo |
Obligatorio |
name |
Hilo |
Opcional |
location |
Referencia (ubicación) |
Opcional |
organization |
Referencia (organización) |
Opcional |
coverage-area |
Hilo |
Obligatorio |
specialty |
Token |
Opcional |
service-category |
StringDt |
Obligatorio |
_count |
Hilo |
Opcional |
getpagesoffset |
Hilo |
Opcional |
Ejemplos:
GET [base]/HealthcareService?service-category=pharm&coverage-area=90210
GET [base]/HealthcareService?service-category=pharm&coverage-area=90210&specialty=3336C0003X&specialty=3336H0001X&specialty=332800000X
Plan de seguro de farmacia [DaVinci PDEX Plan Net]
Un plan de seguro es un paquete discreto de beneficios de la cobertura del seguro de salud que se ofrecen en un tipo de red particular. Los productos de un pagador determinado, por lo general, difieren según el tipo de red o los beneficios cubiertos. Un plan combina los beneficios cubiertos de un producto con la estructura de los costos compartidos que se le ofrece a un consumidor. Un producto determinado puede comprender múltiples planes (es decir, cada plan ofrece diferentes requisitos de costos compartidos para el mismo conjunto de beneficios cubiertos).
La API de farmacia proporciona información sobre el plan de seguro de salud proporcionado en virtud del programa federal de Medicare que cubre los medicamentos recetados, es decir, los planes de la Parte D de Medicare.
Método (leer):
GET [base]/InsurancePlan/[id]
Método (buscar):
GET [base]/InsurancePlan?type=medid
Parámetros de búsqueda
Nombre |
Tipo |
Obligatorio u opcional |
_id |
Token |
Opcional |
name |
Hilo |
Opcional |
type |
StringDt |
Obligatorio |
address-postalcode |
Hilo |
Obligatorio |
_count |
Hilo |
Opcional |
getpagesoffset |
Hilo |
Opcional |
Ejemplos:
GET [base]/InsurancePlan? type= medid & address-postalcode= 92629&Name= AARP Medicare Advantage Choice Plan 1 (PPO)
GET [base]/InsurancePlan? type= medid
Servicio de ubicación de farmacia [DaVinci PDEX Plan Net]
Las instancias Location brindan información sobre la ubicación donde se brinda el servicio de farmacia, como los datos de contacto, la dirección, la accesibilidad, el horario de atención y contacto, así como la posición (latitud y longitud).
La ubicación proporciona información demográfica sobre una farmacia en particular que cubre detalles, como la dirección y la información de contacto.
Método (leer):
GET [base]/Location/[id]
Método (buscar):
GET [base]/Location?type=pharm
Parámetros de búsqueda:
Nombre |
Tipo |
Obligatorio u opcional |
type |
Token |
Obligatorio |
address-postalcode |
Hilo |
Obligatorio |
_count |
Hilo |
Opcional |
getpagesoffset |
Hilo |
Opcional |
Ejemplos:
GET [base]/Location?type=pharm&address-postalcode=90210
Servicio de organización de farmacia [DaVinci PDEX Plan Net]
Una organización es una agrupación formal o informal de personas u organizaciones con un propósito común, como una empresa, institución, corporación, grupo comunitario o práctica de atención médica.
Método (leer):
GET [base]/Organization/[id]
Método (buscar):
GET [base]/Organization?type=phar
Parámetros de búsqueda:
Nombre |
Tipo |
Obligatorio u opcional |
_id |
Token |
Opcional |
Tipo |
Hilo |
Obligatorio |
name |
Hilo |
Opcional |
address-postalcode |
Hilo |
Obligatorio |
_count |
Hilo |
Opcional |
getpagesoffset |
Hilo |
Opcional |
Ejemplos:
GET [base]/Organization? type=phar&address-postalcode=90210
GET [base]/Organization? type=phar&address-postalcode=90210 &name=RITE AID PHARMACY
Afiliación de organización de farmacia [DaVinci PDEX Plan Net]
El recurso OrganizationAffiliation describe las relaciones entre dos o más organizaciones de farmacia; es una entidad que proporciona servicios relacionados con el almacenamiento, la preparación, la dispensación y la venta de medicamentos.
La API de afiliación de organización de farmacia proporciona información sobre las ubicaciones donde las farmacias brindan servicios, la disponibilidad de esos servicios, los extremos electrónicos y otra información relevante.
Método (leer):
GET [base]/ OrganizationAffiliation/[id]
Método (buscar):
GET [base]/OrganizationAffiliation?role=pharmacy
Parámetros de búsqueda:
Nombre |
Tipo |
Obligatorio u opcional |
_id |
Token |
Opcional |
role |
Hilo |
Obligatorio |
location |
Referencia (ubicación) |
Opcional |
service |
Referencia (servicio de atención médica) |
Opcional |
_count |
Hilo |
Opcional |
getpagesoffset |
Hilo |
Opcional |
address-postalcode |
Hilo |
Obligatorio |
identifier (contractId, segmentId, pbpNumber) |
StringAndListParam |
Opcional |
Ejemplos:
GET [base]/OrganizationAffiliation?role=pharmacy&address-postalcode=90210&identifier=segmentId-000&identifier=pbpNumber-001&identifier=contractId-H0543
GET [base]/OrganizationAffiliation?identifier=segmentId-000&identifier=pbpNumber-001&identifier=contractId-H0543&address-postalcode=90210&_count=2&_getpagesoffset=2&role=pharmacy
Paciente [CARIN BB]
Información demográfica y otra información administrativa sobre una persona o un animal que recibe atención u otros servicios relacionados con la salud.
Método (leer):
GET [base]/Patient/[id]
Método (buscar):
GET/Patient
Ejemplo:
GET [base]/Patient/123
GET [base]/Patient
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
_count | Número entero positivo |
gender | Token |
identifier | Token |
name | Hilo |
birthdate | Intervalo de fechas |
Cobertura [CARIN BB]
Este recurso proporciona los datos de cobertura que estaban vigentes a la fecha de notificación de la reclamación.
Método (leer):
GET [base]/Coverage/[id]
Método (buscar):
GET/Coverage
Ejemplo:
GET [base]/Coverage/123
GET [base]/Coverage
Nombre | Tipo |
---|---|
_id | Token |
_count | Número entero positivo |
patient | Token |
Explicación de beneficios (institucional, profesional, bucal, de la vista y farmacia) [CARIN BB]
Este recurso proporciona los detalles de la reclamación, los detalles de adjudicación del procesamiento de una reclamación y, de forma opcional, información del saldo de la cuenta, para informarle al suscriptor de los beneficios proporcionados.
Devuelve registros hasta el 01/01/2016, inclusive.
Método (leer):
GET [base]/ExplanationOfBenefit/[id]
Método (buscar):
GET [base]/ExplanationOfBenefit
POST [base]/ExplanationOfBenefit/_search
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
_count | Número entero positivo |
_lastUpdated | Intervalo de fechas |
identifier | Token |
service-date | Intervalo de fechas |
type | Token |
patient | Token |
Ejemplos:
GET [base]/ExplanationOfBenefit/219
GET [base]/ExplanationOfBenefit?patient=[id]&_lastUpdated=gt2019
GET [base]/ExplanationOfBenefit?patient=[id]&type=|professional
Afección [USCDI 2.0/US Core]
Afección clínica, problema, diagnóstico u otro evento, situación, problema o concepto clínico que ha alcanzado un nivel de preocupación.
Devuelve datos de la afección hasta el 01/01/2016, inclusive.
Método (leer):
GET [base]/Condition/[id]
Método (buscar):
GET [base]/Condition
POST [base]/Condition/_search
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
_count | Número entero positivo |
_lastUpdated | Intervalo de fechas |
_revinclude | (limitado a "Provenance:target") |
patient | Token |
onset-date | Intervalo de fechas |
Ejemplos:
GET [base]/Condition?patient=1291938
Interacción [USCDI 2.0/US Core]
Interacción entre un paciente y un proveedor de atención médica con el fin de brindar servicios de atención médica o evaluar el estado de salud de un paciente.
Devuelve datos del historial de interacciones hasta el 01/01/2016, inclusive.
Método (leer):
GET [base]/Encounter/[id]
Método (buscar):
GET [base]/Encounter
POST [base]/Encounter/_search
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
_count | Número entero positivo |
_revinclude | (limitado a "Provenance:target") |
date | Intervalo de fechas |
patient | Token |
Ejemplos:
GET [base]/Encounter?patient=1291938
GET [base]/Encounter?date=gt2021-01-01
Vacuna [USCDI 2.0/US Core]
Datos que reflejan el historial de vacunación de un paciente.
Devuelve datos de vacunación hasta el 01/01/2016, inclusive.
Método (leer):
GET [base]/Immunization/[id]
Método (buscar):
GET [base]/Immunization
POST [base]/Immunization/_search
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
_count | Número entero positivo |
_revinclude | (limitado a "Provenance:target") |
date | Intervalo de fechas |
patient | Token |
Estado | Token |
Ejemplos:
GET [base]/Immunization?patient=1291938
Dispensación de medicamentos [USCDI 2.0/US Core]
Datos que representan productos medicinales que se dispensarán o se han dispensado a un paciente.
Devuelve datos del historial de medicamentos hasta el 01/01/2016, inclusive.
Método (leer):
GET [base]/MedicationDispense/[id]
Método (buscar):
GET [base]/MedicationDispense
POST [base]/MedicationDispense/_search
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
_count | Número entero positivo |
_revinclude | (limitado a "Provenance:target") |
_lastUpdated | Intervalo de fechas |
patient | Token |
Ejemplos:
GET [base]/MedicationDispense?patient=1291938
GET [base]/MedicationDispense?_lastUpdated=gt2021-01-01
Solicitud de medicamentos [USCDI 2.0/US Core]
Datos que reflejan el historial de medicamentos prescritos de un paciente.
Devuelve datos del historial de medicamentos hasta el 01/01/2016, inclusive.
Método (leer):
GET [base]/MedicationRequest/[id]
Método (buscar):
GET [base]/MedicationRequest
POST [base]/MedicationRequest/_search
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token o lista |
_count | Número entero positivo |
_lastUpdated | Intervalo de fechas |
_revinclude | (limitado a "Provenance:target") |
authoredon | Intervalo de fechas |
patient | Token |
intent | Token o lista |
Estado | Token o lista |
Ejemplos:
GET [base]/MedicationRequest?patient=1291938
GET [base]/MedicationRequest?patient=1291938&intent=filler-order
GET [base]/MedicationRequest?patient=1291938&intent=filler-order,plan&status=active
Resultados y signos vitales del laboratorio de observación [USCDI 2.0/US Core]
Mediciones y afirmaciones simples realizadas sobre un paciente, incluidos los resultados de pruebas de laboratorio y signos vitales.
Devuelve las observaciones de hasta el 01/01/2016, inclusive.
Método (leer):
GET [base]/Observation/[id]
Método (buscar):
GET [base]/Observation
POST [base]/Observation/_search
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
_count | Número entero positivo |
_revinclude | (limitado a "Provenance:target") |
category | Token |
code | Token |
date | Intervalo de fechas |
patient | Token |
Ejemplos:
GET [base]/Observation?patient=[id]&category=http://terminology.hl7.org/CodeSystem/observation-category|laboratorio
GET [base]/Observation?patient=[id]&code={system|}[code]{,{system|}[code],...}
Paciente [USCDI/US Core]
Información demográfica y otra información administrativa sobre una persona o un animal que recibe atención u otros servicios relacionados con la salud.
Método (leer):
GET [base]/Patient/[id]
Método (buscar):
GET/Patient
Ejemplo:
GET [base]/Patient/123
GET [base]/Patient
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
_count | Número entero positivo |
gender | Token |
identifier | Token |
name | Hilo |
birthdate | Intervalo de fechas |
Procedimiento [USCDI 2.0/US Core]
Datos que reflejan una actividad que se realiza con un paciente como parte de la prestación del servicio de atención.
Devuelve datos del procedimiento hasta el 01/01/2016, inclusive.
Método (leer):
GET [base]/Procedure/[id]
Método (buscar):
GET [base]/Procedure
POST [base]/Procedure/_search
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Token |
_count | Número entero positivo |
_lastUpdated | Intervalo de fechas |
_revinclude | (limitado a "Provenance:target") |
code | Token |
Estado | Token |
date | Intervalo de fechas |
patient | Token |
Ejemplos:
GET [base]/Procedure?patient=1291938
GET [base]/Procedure?patient=1137192&date=ge2019-01-14
Plan de cobertura [DaVinci PDEX Drug Formulary]
El plan de cobertura describe detalles sobre el plan de salud que contiene enlaces a información administrativa, una lista de medicamentos del formulario cubiertos por ese plan y una definición de los niveles de medicamentos y sus modelos de costos compartidos asociados.
Método (buscar):
GET [base]/List
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
_id | Hilo |
_profile | Hilo |
identifier | Hilo |
Ejemplos:
GET [base]//List?_profile=http://hl7.org/fhir/us/Davinci-drug-formulary/StructureDefinition/usdf-CoveragePlan
Medicamento del formulario [DaVinci PDEX Drug Formulary]
El medicamento del formulario contiene información sobre el medicamento que forma parte de un plan con formulario. Como UHC FLEX admite el caso de uso de MemberSearch para medicamentos del formulario, se espera que el usuario introduzca la información del plan de medicamentos para obtener los detalles del formulario de medicamentos. Téngase en cuenta que los valores de código y las descripciones son una combinación de RXCUI y NDC (en casos de cobertura múltiple) y, por lo tanto, el ID del recurso también tiene el prefijo R o N, respectivamente.
Método (buscar):
GET [base]/ MedicationKnowledge?_DrugPlan=e8e60bdd29fb1e6d7039c6c927ed4b692f25a6502022cb06661f9d21348b5600
Parámetros de búsqueda opcionales:
Nombre | Tipo |
---|---|
DrugName | Hilo |
DrugTier | Hilo |
DrugPlan | Hilo |
Código | Hilo |
_id | Hilo |
_profile | Hilo |
Ejemplos:
GET [base]/ MedicationKnowledge?_profile=http://hl7.org/fhir/us/Davinci-drug-formulary/StructureDefinition/usdf-FormularyDrug&DrugPlan=[PlanID]
GET [base]/ MedicationKnowledge?_profile=http://hl7.org/fhir/us/Davinci-drug-formulary/StructureDefinition/usdf-FormularyDrug&DrugTier=NON-FORMULARY&DrugPlan= [PlanID]
El proceso para registrar aplicaciones de producción imita nuestro proceso anterior de zona de pruebas. Se recomienda que primero registre su aplicación como una aplicación de zona de prueba. Al hacerlo, obtendrá acceso inmediato a datos simulados para probar su aplicación. Una vez que se completen las pruebas, deberá volver a registrar su aplicación como una aplicación de producción.
La aplicación de producción para su uso con las API de acceso público (formulario, directorio de proveedores y directorio de farmacias) se aprobará automáticamente. Las solicitudes de aplicación de producción para las API de acceso de pacientes requerirán una revisión por parte de nuestro equipo de Seguridad y Cumplimiento antes de que se apruebe el acceso. Nuestro equipo de Seguridad y Cumplimiento se comunicará con usted si tiene alguna pregunta durante este proceso de revisión.
URL de inicio de autenticación para el acceso del paciente
La documentación de la URL de inicio del servidor de autorización se encuentra en el portal para propietarios de la aplicación. Esta información se comparte después del registro y la aprobación correctos de la organización. Inicie sesión y registre su organización para ver esta información.
A continuación, encontrará las pautas que debe seguir para integrar, de forma correcta, la API de interoperabilidad de UnitedHealthcare.
Su política de privacidad
Se le pedirá que proporcione una URL a su política de privacidad cuando registre su organización y su aplicación en el portal para propietarios de la aplicación de interoperabilidad de UnitedHealthcare. El miembro que utilice su aplicación debe acceder y comprender estos enlaces con facilidad.
El miembro revoca el acceso
Los miembros pueden revocar el acceso a su aplicación a través de su portal para miembros. Cuando encuentre un token no válido que indique que un miembro ha revocado el acceso, debe intentar, de forma razonable, manejar ese caso, de modo que sea más sencillo para el miembro comprender lo que está sucediendo con sus datos.
Para unirse a la zona de pruebas para desarrolladores, registrar una aplicación de muestra y recuperar datos sintéticos para una identificación de paciente de muestra llamando a la API, siga estos cuatro pasos:
Nota: Por el momento, solo se admiten Google Chrome y los navegadores móviles
Paso 1: Registre una aplicación de muestra navegando a la página de destino de la API de interoperabilidad de UnitedHealthcare y haciendo clic en el mosaico "App Owner" (Propietario de la aplicación).
A continuación, se muestra una captura de pantalla de la página de destino:
Paso 2: Cree una identificación de OneHealthcare. Todos los usuarios deben crear una identificación de OneHealthcare para acceder al portal para propietarios de la aplicación.
Paso 3: Cree su perfil (Nota: Solo verá esta página una vez al iniciar sesión por primera vez).
Paso 4: Registre su organización (Nota: Es un proceso que se realiza una sola vez. En el próximo inicio de sesión, accederá, de forma predeterminada, a una vista del panel de control de todas las aplicaciones).
Nuestro equipo de Seguridad y Cumplimiento revisará el registro de su organización y aprobará o negará su capacidad para registrar aplicaciones.
Paso 5: Cuando se apruebe o se rechace, recibirá una notificación por correo electrónico. Si se aprueba, podrá volver a iniciar sesión en el portal para propietarios de la aplicación y comenzar a registrar aplicaciones.
Paso 6: Use "Registrar nueva aplicación" para registrar una nueva aplicación y elegir la zona de pruebas como entorno (Nota: La zona de pruebas solo se aplica a aplicaciones de acceso de pacientes o a aplicaciones que utilizan las API de acceso de pacientes y de acceso público).
Paso 6.1: Obtenga la identificación y el secreto del cliente.
URL: https://sandbox.authz.flex.optum.com/
URL base para llamadas a la API de la zona de pruebas https://sandbox.fhir.flex.optum.com/R4
Para probar su aplicación de zona de prueba con la API de interoperabilidad de UnitedHealthcare, deberá crear una cuenta de miembro de prueba a través de la identificación de OneHealthcare cuando se le solicite iniciar sesión como parte del proceso de autenticación o autorización. Nota: Puede utilizar la misma identificación de OneHealthcare que se registró para acceder al portal para proveedores y registrar aplicaciones.
UnitedHealthcare ofrecerá la siguiente asistencia, de acuerdo con las regulaciones gubernamentales establecidas y las pautas operativas actuales.
Horario de asistencia general
El horario de asistencia general (horario de atención al público) será de lunes a viernes de 9 a. m. a 4 p. m., hora del Centro. No se proporciona asistencia los días festivos ni los fines de semana. El horario de asistencia se aplica a lo siguiente:
- Registro de proveedores (organización y aplicación)
- Zona de pruebas del paciente
- Producción (aislada y en todo el sistema)
Supervisión del sistema
UnitedHealthcare supervisa, de forma periódica, las operaciones y la capacidad de respuesta del sistema. Se espera que el sistema funcione las 24 horas al día, los 7 días a la semana, los 365 días al año. UnitedHealthcare hará todo lo posible para garantizar la disponibilidad del sistema. En caso de un problema de respuesta del sistema, las tareas de restauración comenzarán el siguiente día hábil.
Registro y tiempos de respuesta
No se requiere registro ni autenticación para extremos públicos.
El sistema aceptará y responderá a los envíos de registro de aplicaciones y organizacionales que realicen proveedores de aplicaciones externas de la siguiente manera:
Tipo de registro | Tiempo estimado de respuesta1 |
---|---|
Registro de nueva organización |
5 días hábiles |
Registro de nueva aplicación (acceso público) |
No se requiere aprobación |
Registro de nueva aplicación (acceso de pacientes) |
5 días hábiles |
Apelaciones de determinaciones |
5 días hábiles desde la recepción de la solicitud |
Solicitud de asistencia | Tiempo estimado de respuesta1 |
---|---|
Solicitud de asistencia de la zona de pruebas para desarrolladores |
48 horas hábiles |
Solicitud de asistencia de producción del proveedor |
24 horas hábiles |
Datos | Plazo de alimentación de datos |
---|---|
Reclamaciones |
1 día hábil desde la adjudicación |
Datos de la interacción |
1 día hábil desde la recepción de la interacción |
Datos clínicos | 1 día hábil desde la recepción de los datos |
Directorio de proveedores |
30 días calendario desde que el pagador recibe información del directorio de proveedores O una actualización de la información del directorio de proveedores |
Directorio de farmacias |
30 días calendario desde que el pagador recibe información del directorio de proveedores O una actualización de la información del directorio de proveedores |
Por problemas técnicos, utilice la pestaña de asistencia en el portal de administración para proveedores FLEX para enviar una solicitud de asistencia.
Para solicitar ayuda con el registro del portal, escriba al flexvendorsupport@optum.com.
La asistencia técnica no está disponible para directorios públicos no registrados. Para enviar comentarios, envíe un correo electrónico a flexvendorsupport@optum.com.