CONTEÚDO

  1. Visão Geral
  2. Configuração INI
  3. Verbos
  4. Exemplo de Chamada da API
  5. Atributos de Resposta
  6. Exemplos de JSON de Resposta

01. VISÃO GERAL

A API xmlManager tem como objetivo, receber um XML de faturamento e realizar a inclusão nas tabelas do sistema de gestão Plano de Saúde para que seja feita a submissão e validação do mesmo.


VERBO POST

Através do verbo POST, a API pode incluir o XML na pasta e gravar as tabelas BXX e B1R. Esta solicitação é feita através de 4 Queryparams para realizar este filtro:

QueryParamCampoDescriçãoTipo de Dado
healthProviderB1R_ORIGEM/BXX_CODRDACódigo Rede de AtendimentoCaracter
fileNameBXX_ARQINNome do arquivoCaracter
batchNumberB1R_PROTOG/BXX_PLSHATProtocolo origem Caracter
typeB1R_HATTIP

Código da ação(E=Exclusão, 0=Inclusão)

Default: Inclusão

Caracter


VERBO POST

Através do verbo POST, a API permite realizar a solicitação de inclusão de um novo profissional no Corpo Clínico.

Caso o parametro MV_PLINBC1 esteja desativado, esta solicitação deve ser analisada posteriormente na rotina Análise de Alterações Cadastrais (PLSA814). A solicitação POST permite realizar também, o upload de um arquivo para análise do Auditor (o arquivo deve ser enviado no formato Base 64).





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:

1. Configuração do REST do Protheus

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

image2020-12-17_15-28-30.png

Logo, a minha URL será: http://localhost:8080/rest/clinicalStaff

03. VERBOS

Seguem os verbos disponíveis na API:

VerboPathQueryParamsPathParamDescrição
GETclinicalStaffhealthProviderCode - RDA
locationCode - Local de Atendimento
specialtyCode - Especialidade 

Retorna os profissionais de um corpo clínico.
POSTclinicalStaff

Solicita o cadastramento de um novo profissional no corpo clínico.
PUTclinicalStaff/{id}/block
id - Recno do profissionalBloqueia um profissional no corpo clínico.

04. EXEMPLO DE CHAMADA DA API

Chamada GET

Exemplo solicitando o Corpo Clínico da RDA 000004, Local de Atendimento 001 e Especialidade 001  .

http://spon019400235:8080/rest/totvshealthplans/v1/clinicalStaff?healthProviderCode=000004&locationCode=001&specialtyCode=001


Chamada POST

Exemplo solicitando a inclusão de um profissional no corpo clínico.

http://spon019400235:8080/rest/totvshealthplans/v1/clinicalStaff

{
    "professionalCouncil": "CRM",
    "professionalCouncilNumber": "951248",
    "name": "TESTE INCLUSAO API 4",
    "stateAbbreviation": "SP",
    "locationCode": "001",
    "specialtyCode": "001",
    "healthProviderCode": "000004",
    "filename": "totvs_4.png",
    "officialRecord": "92632864003",
    "base64file": "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"
}
AtributoDescriçãoTipo
professionalCouncilCódigo do conselho médicoCaracter
professionalCouncilNumberNúmero do conselho médicoCaracter
nameNome do profissionalCaracter
stateAbbreviationSigla do EstadoCaracter
locationCodeCódigo do Local de AtendimentoCaracter
specialtyCodeCódigo da EspecialidadeCaracter
healthProviderCodeCódigo da Rede de AtendimentoCaracter
filenameNome de arquivo de anexoCaracter
officialRecordCPF/CNPJ do profissional de saúdeCaracter
base64fileBase64 do arquivo de anexoCaracter


Chamada PUT - Bloqueando um profissional

Exemplo bloqueando o profissional com o Recno 1 (o Recno do profissional enviado deve ser o mesmo do atributo id ao realizar uma solicitação GET previamente)

http://spon019400235:8080/rest/totvshealthplans/v1/clinicalStaff/1/block

05. ATRIBUTOS DE RESPOSTA

Solicitação GET

AtributoCampoTipo
idOnHealthInsurerBC1_CODRDACaracter
professionalCouncilBC1_SIGLCRCaracter
professionalCouncilNumberBC1_NUMCRCaracter
stateAbbreviationBC1_ESTCRCaracter
nameBC1_NOMPRFCaracter
idR_E_C_N_O_Caracter


Solicitação POST

Atributo

Campo

Tipo

code

Campo fixo que indica a ação encontrada: 0001

Caracter
message

Mensagem indicativa referente ao código acima:

0001 - Pedido de inclusao gerado com sucesso

0002 - Não foi encontrada guia, e possível realizar o reenvio

Caracter


06. EXEMPLOS DE JSON DE RESPOSTA


Solicitação GET:


{
    "items": [
        {
            "idOnHealthInsurer": "000008",
            "professionalCouncil": "",
            "professionalCouncilNumber": "",
            "id": 8,
            "name": "",
            "stateAbbreviation": ""
        },
        {
            "idOnHealthInsurer": "000005",
            "professionalCouncil": "",
            "professionalCouncilNumber": "",
            "id": 9,
            "name": "",
            "stateAbbreviation": ""
        },
        {
            "idOnHealthInsurer": "000003",
            "professionalCouncil": "CRM",
            "professionalCouncilNumber": "555555",
            "id": 10,
            "name": "RDA CLAUDIA",
            "stateAbbreviation": "SP"
        },
        {
            "idOnHealthInsurer": "",
            "professionalCouncil": "CRM",
            "professionalCouncilNumber": "654987",
            "id": 11,
            "name": "DAIANE BERNARDE BATISTA",
            "stateAbbreviation": "SP"
        },
        {
            "idOnHealthInsurer": "",
            "professionalCouncil": "CRO",
            "professionalCouncilNumber": "321987",
            "id": 12,
            "name": "ALMIRO NOGUEIRA FILHO",
            "stateAbbreviation": "SP"
        },
        {
            "idOnHealthInsurer": "000007",
            "professionalCouncil": "CRM",
            "professionalCouncilNumber": "19011985",
            "id": 13,
            "name": "RDA SILVIA SANT ANNA",
            "stateAbbreviation": "SP"
        }
    ],
    "hasNext": false
}
{
    "code": 400,
    "message": "Registros nao encontrados",
    "detailedMessage": "Nao foi encontrado o corpo clinico para os parametros informados",
    "helpUrl": "",
    "details": [
        {
            "code": "",
            "message": "",
            "detailedMessage": "",
            "helpUrl": ""
        }
    ]
}



Solicitação POST:

{
    "code": "0001",
    "message": "Pedido de inclusao gerado com sucesso: 000030"
}
{
    "code": 400,
    "message": "Falha ao criar pedido",
    "detailedMessage": "Nao foi possivel gerar o pedido de inclusao de Profissional no Corpo Clinico",
    "helpUrl": "",
    "details": [
        {
            "code": "",
            "message": "",
            "detailedMessage": "",
            "helpUrl": ""
        }
    ]
}


Solicitação PUT - Bloqueio de Profissional

Sucesso - HTTP Status 200

{
    "code": 400,
    "message": "Registros nao encontrados",
    "detailedMessage": "Nao foi encontrado corpo clinico com o id informado",
    "helpUrl": "",
    "details": [
        {
            "code": "",
            "message": "",
            "detailedMessage": "",
            "helpUrl": ""
        }
    ]
}