Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Plataforma de consentimento do paciente para apps de saúde
Consentimento integrado na camada de dados: âmbitos OAuth 2.1 e SMART, finalidade e expiração escolhidas pela pessoa, um registo de acesso que podem ver, revogação no pedido seguinte e o que a sua app ainda possui.
Uma plataforma de consentimento do paciente permite que uma pessoa decida quais aplicações podem ler ou alterar o seu registo de saúde, para que propósito e por quanto tempo, e permite-lhes ver e revogar esse acesso a qualquer momento. A Anpheros integra o consentimento na camada de dados: uma aplicação acede ao registo FHIR R4 de um paciente apenas através de uma autorização que a pessoa aprovou na página de consentimento da Anpheros, cada leitura e escrita sob essa autorização é registada onde a pessoa pode vê-la, e a revogação entra em vigor no próximo pedido. Esta página mostra como isso funciona, o que a sua aplicação tem de fazer e o que não precisa de construir.
- 1 · Your app asksOAuth 2.1 with PKCE: SMART scopes, a purpose and the patient's language
- 2 · The person decidesOn the Anpheros consent page: what, for whom and for how long — 30, 90, 180 or 365 days
- 3 · Your app readsOne patient's record, only the granted resource types and categories
- 4 · Every access is loggedThe person sees each read and write by your application
- 5 · The person revokesThe next request fails; a refresh token cannot bring access back
Porquê o consentimento pertence à camada de dados
A maioria das aplicações de saúde regista o consentimento como uma caixa de seleção na sua própria base de dados e, em seguida, impõe-no no código da aplicação. Isto funciona até que uma segunda aplicação, uma integração clínica ou uma funcionalidade de IA necessite dos mesmos dados: cada uma tem de reimplementar as regras, e a pessoa não tem um único local para ver quem tem acesso. Quando a plataforma que armazena o registo também impõe o consentimento, cada cliente obtém as mesmas regras e a pessoa obtém uma lista de aplicações para rever.
| Consentimento como um indicador na sua aplicação | Consentimento na camada de dados (Anpheros) | |
|---|---|---|
| Onde é imposto | No código de cada aplicação | Em cada pedido de API, pela plataforma |
| Âmbito de acesso | Tudo o que a aplicação decide ler | Apenas os tipos de recursos e categorias concedidos |
| Expiração | Raramente implementado | Escolhido pela pessoa: 30, 90, 180 ou 365 dias |
| O que a pessoa vê | Depende da aplicação | Cada aplicação, os seus âmbitos e expiração, e um registo de acesso |
| Revogação | Tem de ser propagada manualmente | O próximo pedido falha; o token de atualização deixa de funcionar |
O que o paciente controla
Como a sua aplicação pede consentimento
Anpheros utiliza OAuth 2.1 com PKCE e âmbitos SMART on FHIR v2. A sua aplicação envia a pessoa para a página de consentimento com os âmbitos de que necessita e um propósito opcional; após aprovação, recebe um token de acesso (30 minutos) e um token de atualização rotativo (30 dias) para um paciente específico.
import { OAuthFlow, generatePkce } from '@anpheros/sdk';
const flow = new OAuthFlow({
baseUrl: 'https://platform.anpheros.com',
clientId: process.env.ANPHEROS_CLIENT_ID!,
redirectUri: 'https://your.app/callback',
});
const pkce = await generatePkce();
const url = flow.authorizeUrl({
scopes: ['patient/Observation.rs?category=laboratory', 'patient/Condition.rs', 'offline_access'],
purpose: 'treatment',
state: crypto.randomUUID(),
pkce,
lang: 'en',
});
// redirect the person to `url`; on the callback exchange the code (see the authentication guide)
Um âmbito como patient/Observation.rs?category=laboratory limita a leitura a resultados de laboratório; o filtro de categoria é aplicado pelo servidor. Um tipo de recurso fora da concessão retorna 403; um paciente fora da concessão retorna 404, pelo que os IDs não podem ser sondados.
Reagir à revogação
Quando a pessoa termina uma autorização, o próximo pedido com esse token falha e o token de atualização não consegue restabelecer o acesso. Para limpar imediatamente, subscreva o webhook consent.revoked, que transporta o grant_id, o ID do paciente que vê, os escopos e o revoked_at.
await anpheros.webhooks.create('https://your.app/anpheros/hook', { events: ['consent.granted', 'consent.revoked'] });
O que o Anpheros não faz
- Não recolhe consentimento para fins que vão além do acesso a dados, como marketing ou participação em investigação.
- Não decide a sua base legal. O consentimento para acesso é um controlo; o seu aviso de privacidade, contratos e registos de processamento continuam a ser seus.
- A chave API de um projeto vê os pacientes que esse projeto criou, sem uma concessão. O consentimento rege o acesso por outras aplicações.
Perguntas Frequentes
O que é uma plataforma de consentimento do paciente?
Software que regista quais as aplicações que uma pessoa permite aceder aos seus dados de saúde, impõe essas escolhas em cada pedido, mostra à pessoa quem acedeu ao quê e permite-lhe retirar o acesso. No Anpheros, o consentimento faz parte do registo FHIR R4 em si, em vez de ser um serviço separado.
Quais os padrões que o Anpheros utiliza para o consentimento do paciente?
OAuth 2.1 com PKCE para o fluxo de autorização e os âmbitos de paciente SMART on FHIR v2 (patient/<Type>.<cruds> com um filtro ?category= opcional) para o que uma aplicação pode ler ou escrever. OpenID Connect adiciona um ID token quando solicita openid fhirUser.
Pode um paciente limitar o acesso a apenas alguns dos seus dados?
Sim. O acesso é limitado aos tipos de recursos e categorias nos âmbitos concedidos, por exemplo, apenas Observações de laboratório. Todo o resto devolve um erro.
Quanto tempo dura o consentimento?
A pessoa escolhe 30, 90, 180 ou 365 dias na página de consentimento. Após esse período, a concessão expira e a aplicação tem de pedir novamente.
Pode o paciente ver o que uma aplicação fez com o acesso?
Sim. A pessoa vê cada aplicação com acesso, os seus âmbitos e data de expiração, e um registo de acesso listando o que cada aplicação leu ou escreveu.
O que acontece quando o consentimento é revogado?
O próximo pedido com esse token de acesso falha, o token de atualização não pode ser utilizado para obter um novo, e o seu servidor recebe um webhook consent.revoked se estiver subscrito.
Relacionado
- Modelo de consentimento e acesso: as regras na íntegra
- Autenticação e OAuth: tokens, scopes e a troca de código
- Como implementar o consentimento do paciente com SMART on FHIR
- Webhooks:
consent.grantedeconsent.revoked - Proveniência de dados médicos explicada
- API de dados longitudinais do paciente
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card