Criar Pré-cadastro de Paciente no Programa
Utilize a mutation WsAcesso_createPatientProgramPreRegistration para registrar um pré-cadastro de paciente em um programa PBM.
Esse método permite capturar interesse inicial do paciente por produto/programa antes do cadastro completo.
🔐 Passo 1: Obtenção do Token de Autenticação e Headers
Antes de realizar qualquer operação, é obrigatório autenticar-se e obter um token JWT válido.
Todos os endpoints deste fluxo utilizam os mesmos headers de autenticação.
👉 Para mais detalhes, consulte: Autenticação e Headers
📋 Passo 2: Criar Pré-cadastro
Utilize a mutation WsAcesso_createPatientProgramPreRegistration para criar (ou atualizar a data de solicitação de) um pré-cadastro.
O campo patientDocument representa o CPF do paciente e é obrigatório nesta operação.
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição | Valor |
|---|---|---|---|---|
| programId | Int | Não | Código do programa PBM. Se não informado, será identificado pelo productEan | 126 |
| patientName | String | Não | Nome do paciente | NOME PACIENTE |
| origin | AuthorizationOrigin | Não | Origem da requisição. Padrão: MEVO | MEVO |
| String | Sim | E-mail do paciente | paciente@email.com | |
| phone | String | Sim | Telefone com 10 a 15 dígitos (aceita + no início) | +5543999998888 |
| patientDocument | String | Sim | CPF do paciente. Aceita 99999999999 ou 999.999.999-99 e valida se o CPF é válido | 529.982.247-25 |
| productEan | String | Sim | EAN do produto vinculado ao programa (8 a 14 dígitos numéricos) | 7896026304276 |
Regras de validação do patientDocument
- O campo é obrigatório.
- Aceita CPF com ou sem pontuação:
99999999999ou999.999.999-99. - O CPF é validado de forma completa, incluindo os dígitos verificadores.
- Antes da busca por duplicidade e da gravação, o CPF é normalizado para conter apenas números.
Exemplo de mutation GraphQL (com programId)
mutation {
WsAcesso_createPatientProgramPreRegistration(
input: {
programId: 126
patientName: "NOME PACIENTE"
origin: MEVO
email: "paciente@email.com"
phone: "+5543999998888"
patientDocument: "529.982.247-25"
productEan: "7896026304276"
}
) {
id
programId
patientName
origin
requestedAt
email
phone
patientDocument
productEan
}
}
Exemplo de mutation GraphQL (sem programId)
mutation {
WsAcesso_createPatientProgramPreRegistration(
input: {
patientName: "NOME PACIENTE"
origin: MEVO
email: "paciente@email.com"
phone: "+5543999998888"
patientDocument: "52998224725"
productEan: "7896026304276"
}
) {
id
programId
patientName
origin
requestedAt
email
phone
patientDocument
productEan
}
}
Exemplo de resposta (sucesso)
{
"data": {
"WsAcesso_createPatientProgramPreRegistration": {
"id": 1024,
"programId": 126,
"patientName": "NOME PACIENTE",
"origin": "MEVO",
"requestedAt": "2026-02-12T13:20:45.000Z",
"email": "paciente@email.com",
"phone": "+5543999998888",
"patientDocument": "52998224725",
"productEan": "7896026304276"
}
}
}
📌 Regras de negócio importantes
- Quando
programIdfor enviado, oproductEandeve pertencer ao programa informado. - Quando
programIdnão for enviado, ele será definido automaticamente a partir doproductEan. - A verificação de duplicidade considera o par
patientDocument+productEan. - O valor de
patientDocumenté normalizado para conter apenas números antes dessa verificação. - Se já existir pré-cadastro para o mesmo
patientDocument+productEan, o registro não é duplicado: apenas a datarequestedAté atualizada. - Se não existir pré-cadastro para o par
patientDocument+productEan, um novo registro é criado.
⚠️ Exemplo de erro
Quando houver falha de validação ou o produto não for encontrado, a API retorna erro.
CPF em formato inválido:
{
"errors": [
{
"message": "O CPF deve estar no formato 99999999999 ou 999.999.999-99.",
"extensions": {
"code": "BAD_USER_INPUT"
}
}
],
"data": null
}
CPF inválido:
{
"errors": [
{
"message": "O CPF informado não é válido.",
"extensions": {
"code": "BAD_USER_INPUT"
}
}
],
"data": null
}
Com programId informado e vínculo inválido:
{
"errors": [
{
"message": "Produto não encontrado para o programa informado.",
"extensions": {
"code": "BAD_REQUEST"
}
}
],
"data": null
}
Sem programId e EAN não encontrado:
{
"errors": [
{
"message": "Produto não encontrado para o EAN informado.",
"extensions": {
"code": "BAD_REQUEST"
}
}
],
"data": null
}