Pular para o conteúdo principal

Atualizar Paciente

Este método realiza a atualização do cadastro de pacientes no programa PBM. Ele depende de dados dinâmicos que variam conforme o programa e a origem de cadastro, por isso o fluxo requer validações prévias.


🔐 Passo 1: Obtenção do Token de Autenticação

Antes de realizar qualquer consulta, é obrigatório autenticar-se e obter um token JWT válido.

👉 Para mais detalhes, consulte: Como criar um token


📋 Passo 2: Consultar Campos do Formulário

Use o método consultProgramForm para obter os campos obrigatórios e opcionais do formulário conforme os parâmetros abaixo:

Parâmetros

ParâmetroTipoObrigatórioDescrição
programCodeIntSimCódigo do programa PBM
originCodeIntSimCódigo da origem de cadastro

Exemplo de requisição

query {
WsAcesso_consultProgramForm(args: { programCode: <Preencher programCode>, originCode: <Preencher originCode> }) {
code
message
status
forms {
formType
fields {
fieldName
displayName
type
displayConfiguration
}
}
}
}

Exemplo simplificado de retorno

{
"forms": [
{
"formType": "Paciente",
"fields": [
{ "fieldName": "Nome", "displayConfiguration": "Obrigatório" },
{ "fieldName": "DataNascimento", "displayConfiguration": "Obrigatório" },
{ "fieldName": "TelefoneCelular", "displayConfiguration": "Obrigatório" },
{ "fieldName": "Email", "displayConfiguration": "Opcional" }
]
},
{
"formType": "Medicamento",
"fields": [
{ "fieldName": "CRM", "displayConfiguration": "Obrigatório" },
{ "fieldName": "CRMUF", "displayConfiguration": "Obrigatório" }
]
}
]
}

❓ Passo 3: Consultar Perguntas e Respostas Dinâmicas (opcional)

Caso o programa utilize perguntas e respostas dinâmicas, utilize o método listDynamicsFieldsOrigin.

Parâmetros

ParâmetroTipoObrigatórioDescrição
programCodeIntSimCódigo do programa PBM
originCodeIntSimCódigo da origem de cadastro

Exemplo de requisição

query {
WsAcesso_listDynamicsFieldsOrigin(args: { programCode: <Preencher programCode>, originCode: <Preencher originCode> }) {
code
message
status
questionnaire {
questionCode
titleDisplay
productName
answers {
responseCode
titleDisplay
allowTypedValue
}
}
}
}

Exemplo de retorno (resumido)

{
"questionnaire": [
{
"questionCode": 1,
"titleDisplay": "Indicação",
"productName": "MEDICAMENTO EXEMPLO",
"answers": [
{ "responseCode": 101, "titleDisplay": "Indicação Genérica" }
]
}
]
}

📝 Passo 4: Enviar Dados para Atualização do Cadastro

Com todos os dados coletados, envie a mutation updatePatient.

Parâmetros

ParâmetroTipoObrigatórioDescrição
programCodeIntSimCódigo do programa PBM
originCodeIntSimCódigo da origem de cadastro
cpfStringSimCPF do Paciente
formsformsSimPreencher os formulários

Exemplo de requisição

mutation {
WsAcesso_updatePatient(
input: {
programCode: <Preencher programCode>
updatePatient: {
cpf: "12345678909"
originCode: <Preencher originCode>
forms: [
{
formType: "Paciente"
fields: [
{ name: "Nome", value: "PACIENTE EXEMPLO" },
{ name: "DataNascimento", value: "01/01/1990" },
{ name: "Sexo", value: "M" },
{ name: "TelefoneCelular", value: "11999990000" },
{ name: "Email", value: "exemplo@email.com" },
{ name: "AutorizaContato", value: "S" },
{ name: "AutorizaContatoTelefone", value: "S" },
{ name: "AutorizaContatoEmail", value: "S" },
{ name: "AutorizaContatoSMS", value: "S" },
{ name: "AutorizaContatoCorreio", value: "S" }
]
},
{
formType: "Medicamento"
fields: [
{ name: "TipoConselho", value: "1" },
{ name: "CRMUF", value: "SP" },
{ name: "CRM", value: "123456" },
{ name: "CodigoProdutoRegra", value: "999" }
]
}
]
}
}
) {
code
message
status
}
}

Exemplo de retorno

{
"data": {
"updatePatient": {
"code": 0,
"message": "CPF já existe na base. Dados cadastrais atualizados",
"status": "00"
}
}
}

✅ Observações Finais

  • Os campos variam conforme o programa e devem ser validados dinamicamente.
  • Utilize exatamente os nomes de campo (fieldName) retornados nas consultas.
  • Os campos dinâmicos podem incluir respostas obrigatórias ou múltiplas, dependendo do programa.