Árvore de páginas


CONTEÚDO

  1. Visão Geral
  2. Configurações INI
  3. Verbos
  4. Query Params - GET
  5. Atributos de Resposta
  6. Exemplos de JSONs de Resposta
  7. Pontos de Entrada


01. VISÃO GERAL

A API UserUsage tem como objetivo retornar a utilização do plano de saúde de um beneficiário. A API recebe parâmetros como a matrícula, período de e até, e retorna os eventos executados pelo beneficiário no período informado.

Os registros listados são provenientes de uma Query executada na tabela BD6.


02. CONFIGURAÇÕES INI

Para iniciar a instalação do processo, devemos configurar seu INI Protheus com a funcionalidade REST para habilitar o acesso as API´s. Documentos auxiliares:

Configurando o REST

Com o INI Protheus configurado, a nomenclatura das API´s ficará no formato: <url + Porta + chave rest definidos no INI Protheus> +  /totvsHealthPlans/v1/userUsage. Exemplo:

Logo, a minha URL será: http://localhost:8080/rest/totvsHealthPlans/v1/userUsage

03. VERBOS

Seguem os verbos disponíveis na API:

VerboPathDescrição
GET/userUsageExtrato de utilização de beneficiários de saúde

04. QUERY PARAMS - GET

Lista de query params obrigatórios:

CampoDescrição
subscriberIdMatrícula do beneficiário
initialPeriodPeríodo inicial no formato YYYYMM
finalPeriodPeríodo final no formato YYYYMM


Exemplo de chamada para utilização de um beneficiário em Dezembro de 2017:

http://localhost:8080/rest/totvsHealthPlans/v1/userUsage?subscriberId=00010001000003002&initialPeriod=201712&finalPeriod=201712


Lista de query params não obrigatórios:

CampoDescrição
fieldsIndica os campos que serão retornados na consulta.
order

Indica uma lista de atributos para realizar a ordenação dos registros. Indicando o caracter – no início, indica que será realizado uma ordenação decrescente.

Lista de atributos que são passíveis de ordenação: procedureCode, procedureName,
executionDate, subscriberName, healthProviderCode, healthProviderName, quantity,
healthProviderDocument, cid, procedureName, healthProviderName, toothRegion, face.

pageSizeIndica quantos registros serão retornados na requisição. O padrão do
sistema são 20 registros. Caso ainda existam registros para serem exibidos, o atributo hasNext será
retornado com true.
pageIndica a página de ordenação que os registros serão apresentados. Se atentar ao controle booleano hasNext

procedureCode,

executionDate,

healthProviderCode,

healthProviderDocument,

cid,

procedureName,

healthProviderName,

quantity,

toothRegion,

face

Indicando um desses atributos e um valor, a API realizará um filtro adicional com o atributo e valor informado.



05. ATRIBUTOS DE RESPOSTA


AtributoCampoTipoDescrição
procedureCodeBD6_CODPROStringCódigo do procedimento
procedureNameBD6_DESPROStringDescrição do procedimento
executionDateBD6_DATPROStringData do evento no formato yyyy-mm-dd
subscribernameBD6_NOMUSRStringNome do beneficiário
healthProviderCodeBD6_CODRDAStringCódigo da rede de atendimento
healthProviderNameBD6_NOMRDAStringNome da rede de atendimento
serviceTypeBR8_CLASSEStringCódigo da classe de procedimento
serviceTypeDescriptionBJE_DESCRIStringDescrição da classe de procedimento
quantityBD6_QTDPRONumberQuantidade do evento
healthProviderDocumentBD6_CPFRDAStringCPF/CNPJ da rede de atendimento
cidBD6_CIDStringCID principal do atendimento
toothRegionBD6_DENREGStringRegião do dente
faceBD6_FADENTStringFace do dente
paidValueBD6_VLRPAGNumberValor pago
disallowanceValueBD6_VLRGLONumberValor de glosa
coPaymentValueBD6_VLRTPFNumberValor de co-participação
subscriberIdBD6_OPEUSR+BD6_CODEMP+BD6_MATRIC+BD6_TIPREG+BD6_DIGITOStringMatrícula do beneficiário
originIif(BD6_TIPGUI = '04', 'REEMBOLSO', 'CONVENIO') as BD6_TIPGUIStringOrigem
procedureTypeBR8_TPPROCStringTipo do Procedimento
genderBA1_SEXOStringSexo; M (Masculino) e F (Femino)
birthDateBA1_DATNASStringData de Nascimento
inclusionDateBA1_DATINCStringData de Inclusão
blockDateBA1_DATBLOStringData de Bloqueio
userTypeBA1_TIPUSUStringTipo do Usuário; T (Titular) e D (Dependente)
countyCodeBA1_CODMUNStringCódigo do Município (Padrão IBGE) 
hospitalizationNumber(CASE BD6_TIPGUI WHEN '03' THEN BD6_OPEINT + BD6_ANOINT + BD6_MESINT + BD6_NUMINT ELSE '' END) AS GUIAINTStringNúmero da Guia de Internação (Caso seja uma Internação)
status(CASE BA1_DATBLO WHEN '' THEN 'A' ELSE 'I' END) AS STATUSStringStatus; A (Ativo) e I (Inativo)


06. EXEMPLOS DE JSONS DE RESPOSTA


Sucesso 202
{
    "items": [
        {
            "healthProviderDocument": "34391654857",
            "paidValue": 90.64,
            "subscriberId": "00010001000003002",
            "face": "",
            "coPaymentValue": 0,
            "procedureCode": "10101012",
            "executionDate": "2017-12-27",
            "subscribername": "RENATA",
            "healthProviderName": "RDA SILVIA SANT'ANNA",
            "serviceTypeDescription": "CONSULTAS",
            "serviceType": "000001",
            "cid": "A00",
            "procedureName": "CONSULTA EM CONSULTORIO",
            "healthProviderCode": "000007",
            "disallowanceValue": 44.87,
            "quantity": 1,
            "toothRegion": "",
			"origin": "CONVENIO"
        }
    ],
    "hasNext": false
}



Erro 400
{
    "code": 400,
    "message": "Os parametros abaixo devem ter 6 caracteres: ",
    "detailedMessage": "initialPeriod, finalPeriod",
    "helpUrl": "",
    "details": [
        {
            "code": "",
            "message": "",
            "detailedMessage": "",
            "helpUrl": ""
        }
    ]
}


07. PONTOS DE ENTRADA

Foi desenvolvido o Ponto de Entrada PUTZBEN1, que permite trocar a Query padrão de busca dos registros BD6 por uma customizada:

Ponto de EntradaPUTZBEN1
FontePLUtzUsDao
Parâmetros

paramixb[1] → cQuery (Caracter) - Query padrão da rotina

RetornocQuery (Caracter) → Query padrão manipulada pelo usuário
Exemplo PUTZBEN1
#INCLUDE "TOTVS.CH"

User Function PUTZBEN1()

	Local cQuery := paramixb[1]

	//Ajuste de query do cliente

Return cQuery