Skip to main content

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âmetroTipoObrigatórioDescriçãoValor
programIdIntNãoCódigo do programa PBM. Se não informado, será identificado pelo productEan126
patientNameStringNãoNome do pacienteNOME PACIENTE
originAuthorizationOriginNãoOrigem da requisição. Padrão: MEVOMEVO
emailStringSimE-mail do pacientepaciente@email.com
phoneStringSimTelefone com 10 a 15 dígitos (aceita + no início)+5543999998888
patientDocumentStringSimCPF do paciente. Aceita 99999999999 ou 999.999.999-99 e valida se o CPF é válido529.982.247-25
productEanStringSimEAN 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: 99999999999 ou 999.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 programId for enviado, o productEan deve pertencer ao programa informado.
  • Quando programId não for enviado, ele será definido automaticamente a partir do productEan.
  • 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 data requestedAt é 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
}