Listar Questões Aninhadas
Utilize o método WsAcesso_listNestedQuestions para consultar as questões aninhadas (subperguntas) associadas a uma pergunta pai de um beneficiário no programa PBM.
🔐 Passo 1: Obtenção do Token de Autenticação e Headers
Antes de realizar qualquer consulta, é 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: Listagem de Questões Aninhadas
Utilize o método WsAcesso_listNestedQuestions para consultar todas as questões dependentes de uma pergunta pai do beneficiário.
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição | Valor |
|---|---|---|---|---|
| programCode | Int | Sim | Código do programa PBM | 126 |
| parentBeneficiaryQuestionCode | Int | Sim | Código da questão pai vinculada ao beneficiário | Passo 3 |
❓ Passo 3: Consultar Perguntas e Respostas Dinâmicas (opcional)
Caso o programa utilize perguntas e respostas dinâmicas, utilize o método WsAcesso_listDynamicsFieldsOrigin.
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição | Valor |
|---|---|---|---|---|
| programCode | Int | Sim | Código do programa PBM | 126 |
| originCode | Int | Sim | Código da origem de cadastro | 37 |
Exemplo de requisição
query {
WsAcesso_listDynamicsFieldsOrigin(
args: {
programCode: 126
originCode: 37
}
){
code
message
status
questionnaire {
code
message
status
questionCode
parentQuestionCode
programCode
titleDisplay
multipleChoice
required
displayOrder
tipQuestion
answers {
responseCode
titleDisplay
allowTypedValue
maximumSizeTypedValue
EnteredValue
displayOrder
effectiveDateStart
effectiveDateEnd
}
lineCode
effectiveDateStart
effectiveDateEnd
typeControl
flagQuestionType
nestedQuestion {
parentQuestionCode
parentResponseCode
codeNestedQuestion
}
productName
EAN
}
}
}
Exemplo de retorno
👉 Saiba mais sobre o Exemplo Retorno Perguntas Dinâmicas
Exemplo de utilização das Perguntas Dinâmicas
As questões que retornam o atributo ParentQuestionCode preenchido, é o código utilizado no método WsAcesso_listNestedQuestions
| questionCode | parentQuestionCode | titleDisplay | Respostas |
|---|---|---|---|
| 99 | — | Responsável Cadastro | - 960 – Cuidador - 961 – Paciente- 962 – Responsável Legal |
| 103 | 99 | Os dados são do paciente? | - 963 – Sim - 964 – Não |
| 104 | 99 | Nome | - 965 – Nome (valor digitável, até 100 caracteres) |
| 105 | 99 | Celular | - 966 – Celular (valor digitável, até 100 caracteres) |
Exemplo de consulta GraphQL
query {
WsAcesso_listNestedQuestions(
args: {
programCode: 126
parentBeneficiaryQuestionCode: 99
}
) {
code
message
status
nestedQuestions {
codQuestionBeneficiary
lineCode
productName
flagTypeQuestion
displayOrder
displayTitle
controlType
mandatory
questionParent {
codResponseParent
}
responses {
codResponseBeneficiary
displayTitle
displayOrder
allowTypedValue
maxTypedValueSize
defaultValue
}
}
}
}
Exemplo de resposta
{
"data": {
"listNestedQuestions": {
"code": 0,
"message": null,
"status": "00",
"nestedQuestions": [
{
"codQuestionBeneficiary": 103,
"productName": null,
"lineCode": null,
"flagTypeQuestion": 1,
"mandatory": 0,
"displayOrder": 1,
"controlType": "dropdownlist",
"displayTitle": "Os dados são do paciente?",
"questionParent": [
{
"codResponseParent": 960
},
{
"codResponseParent": 962
}
],
"responses": [
{
"codResponseBeneficiary": 963,
"displayOrder": 1,
"displayTitle": "Sim",
"defaultValue": null,
"allowTypedValue": 0,
"maxTypedValueSize": 0
},
{
"codResponseBeneficiary": 964,
"displayOrder": 2,
"displayTitle": "Não",
"defaultValue": null,
"allowTypedValue": 0,
"maxTypedValueSize": 0
}
]
},
{
"codQuestionBeneficiary": 104,
"productName": null,
"lineCode": null,
"flagTypeQuestion": 1,
"mandatory": 0,
"displayOrder": 1,
"controlType": "textbox",
"displayTitle": "Nome",
"questionParent": [
{
"codResponseParent": 960
},
{
"codResponseParent": 962
}
],
"responses": [
{
"codResponseBeneficiary": 965,
"displayOrder": 1,
"displayTitle": "Nome",
"defaultValue": null,
"allowTypedValue": 1,
"maxTypedValueSize": 0
}
]
},
{
"codQuestionBeneficiary": 105,
"productName": null,
"lineCode": null,
"flagTypeQuestion": 1,
"mandatory": 0,
"displayOrder": 2,
"controlType": "textbox",
"displayTitle": "Celular",
"questionParent": [
{
"codResponseParent": 960
},
{
"codResponseParent": 962
}
],
"responses": [
{
"codResponseBeneficiary": 966,
"displayOrder": 2,
"displayTitle": "Celular",
"defaultValue": null,
"allowTypedValue": 1,
"maxTypedValueSize": 0
}
]
}
]
}
}
}