Árvore de páginas

CONTEÚDO

  1. Visão Geral
  2. Exemplo de utilização

01. VISÃO GERAL

Ponto de entrada utilizado para criar validações de cobertura de procedimentos adicionais na checagem de regras de elegibilidade do Beneficiário, além de também possibilitar as validações já realizadas pelo sistema até o momento da execução do ponto de entrada.

Importante

O Evento de chamada do ponto de entrada pode entrar em recursividade caso a cobertura do beneficiário tenha sido negada devido a regra de carência (criticas "002 - Procedimento em carência para este usuário." e "005 - Procedimento em carência para este usuário (PREEXISTENCIA)."). Como existe a possibilidade do usuário ter sofrido transferências ao longo do tempo de contrato, o sistema utiliza o passo recursivo para avaliar se a carência foi cumprida em matriculas antigas do usuário. Portanto, nesse caso, o parâmetro referente a matrícula pode ser diferente da informada no cabeçalho da guia.

02. EXEMPLO DE UTILIZAÇÃO

Características do Requisito

Rotina:

Rotina(s) envolvida(s)

Nome Técnico

Atendimento (Liberação/SADT/Odonto)

PLSA090

Autorização de Internação

PLSA092
Anexos ClinicosPLSA09A
Digitação de Contas MedicasPLSA498
Portal do PrestadorPLSWEB

Ponto de Entrada:

PLSAUT02


O retorno da função deve respeitar a seguinte estrutura:

aRet := {lOK, aCriticas,cNivAut,cNivCri}

Onde:

Posição

Conteúdo

Descrição

[1]lOkAutorizada ou não (.T. ou .F.)
[2]



Estado lOk

Conteúdo

TruecNivel
FalseaCriticas

Essa posição é definida de acordo com o conteúdo da primeira posição (lOk)

cNivel

aCriticas

Tipo de autorização

0 - Dispensa Autorização
1 - Automática
2 - Guia Operadora
3 - Auditoria
4 - Guia Empresa
5 - Guia Empresa/Operadora
6 - Avaliação Contratual

Matriz com a seguinte estrutura

[1] Código da Critica - Caracter
[2] Descrição da Critica - Caracter
[3] Informação da critica - Caracter
[4] Nível - Caracter
[5] Tipo - Caracter
[6] Cod.TpProced - Caracter
[7] Código do Procedimento - Caracter

[3]cAliCamAlias do caminho da critica
[4]cChaveAuxChave do caminho da critica

Importante: O retorno deve respeitar a mesma estrutura do primeiro parâmetro de entrada, a incorreta devolução do retorno pelo ponto de entrada pode ocasionar em inconsistências na base de dados e erros na execução do programa.

Ponto de Entrada 

Eventos:

Checagem de cobertura para autorização de procedimentos

Programa Fonte:

PLSXAUT.PRW

Função:

PLSAUTP - Autorização de Procedimentos

Parâmetros de entrada:

Nome

Tipo

Descrição

aRetcaracterRetorno padrão da função até o momento da execução do Ponto de Entrada
dDatadataData de execução do procedimento
cHoracaracterHora de execução do procedimento
cCdTbPdcaracterCódigo da tabela
cCodProcaracterCódigo do procedimento
nQtdnumericoQuantidade Executada
cCidcaracterCID do atendimento
cLOCALExeccaracterLocal de execução ("1" - Autorização/"2" - Processamento de Conta) 
cOpeSolcaracterOperadora do solicitante
cCodPRFSolcaracterCódigo do profissional Solicitante
cCodIntcaracterCódigo da Operadora
cCodRdacaracterCódigo do Prestador
cCodLoccaracterCódigo do local de Atendimento no Prestador
cLocalcaracterLocal de Atendimento
cCodEspcaracterCódigo da especialidade
cOpeUsrcaracterOperadora do Beneficiário
cMatrUsrcaracterMatricula do Beneficiário
cPadIntcaracterApartamento ou enfermaria, conforme tabela de cadastro e atributo do produto
aDadUsrarrayDados do Beneficiário
aDadRdaarrayDados do Prestador
cTpLocExeccaracterLocal de validação da critica ("1/4" - Remote Protheus/ "2" - WEB/ "3" - POS/ "5" - XML)
cAteRNAcaracter

Indica se é atendimento de recém-nascido ("0" - Não/ "1" - Sim)

cTipGuiacaracterTipo de guia (01 - Consulta/02- SP_SADT/03 - Solicitação de Internação/04 - Reembolso/05 - Resumo de Internação/06 - Honorário/07 - Anexo Quimioterapia/08 - Anexo Radiografia/09 - Anexo OPME/10 - Recurso de Glosa/11 - Prorrogação de Internação/12 - Outras Despesas/13 - Odontologia)
cChavGuicaracterNúmero da Guia no Prestador
cChavLibcaracterNúmero de Autorização gerado na Liberação
cNumeroGuiacaracterNúmero da Guia atribuído pela operadora
lRPClógicoIndica se a rotina foi chamada pelo ambiente Remote (.F.) ou pelo ambiente Portal / Web Service (.T.).
cTipAdmissaocaracterTipo de admissão (0- Não informado/1- Acidente de trabalho/2- Acidente de transito/3- Acidente - Outros/4- Emergência - Risco de vida/5- Urgência - sem risco de vida - passível de remoção/6- Eletiva/programada/rotina)
lOriHATlógicoIndica se a chamada é feita por guias do HAT. 

Retorno:

Nome

Tipo

Descrição

Obrigatório

 aRet

array

Retorno com as informações do nível de autorização/critica do procedimento.
Maiores detalhes da estrutura do array, disponível na descrição do artigo. 

Sim


Exemplo de implementação:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

#include 'protheus.ch'
 
user function PLSAUT02()
    //Parametros do ponto de entrada
    local aRet          := ParamIXB[01] //Criticas ja avaliadas
    local dData         := ParamIXB[02] //Data de execução do procedimento
    local cHora         := ParamIXB[03] //Hora de execução do procedimento
    local cCdTbPd       := ParamIXB[04] //Codigo da tabela
    local cCodPro       := ParamIXB[05] //Codigo do procedimento
    local nQtd          := ParamIXB[06] //Quantidade Executada
    local cCid          := ParamIXB[07] //CID do atendimento
    local cLOCALExec    := ParamIXB[08] //Local de execução ("1" - Autorizacao/"2" - Processamento de Conta)   
    local cOpeSol       := ParamIXB[09] //Operadora do solicitante
    local cCodPRFSol    := ParamIXB[10] //Codigo do profissional Solicitante
    local cCodInt       := ParamIXB[11] //Codigo da Operadora
    local cCodRda       := ParamIXB[12] //Codigo do Prestador
    local cCodLoc       := ParamIXB[13] //Codigo do local de Atendimento no Prestador
    local cLocal        := ParamIXB[14] //Local de Atendimento
    local cCodEsp       := ParamIXB[15] //Codigo da especialidade
    local cOpeUsr       := ParamIXB[16] //Operadora do Beneficiario
    local cMatrUsr      := ParamIXB[17] //Matricula do Beneficiario
    local cPadInt       := ParamIXB[18] //Apto ou enfermaria, conforme tabela de cadastro e atributo do produto
    local aDadUsr       := ParamIXB[19] //Dados do Beneficiario
    local aDadRda       := ParamIXB[20] //Dados do Prestador
    local cTpLocExec    := ParamIXB[21] //Local de validação da critica ("1/4" Remote Protheus  "2" WEB  "3" POS "5" XML)
    local cAteRNA       := ParamIXB[22] //Indica se eh atendimento de recém-nascido

    local lSuaRegra     := .T.          //Variavel para controle da regra especifica
    local aCriticas     := {}           //Array com o complemento da critica especifica
    local cNivel        := ""           //Nivel da critica
    local cCodCriEsp    := "799"        //Codigo de sua critica especifica...
    local cDesCriEsp    := "TESTE"      //Descricao de sua critica especifica...
 
    //A funcao PLSPOSGLO retorna se ela esta ativa ou nao de acordo com o local de execucao
    //e tambem cria a critica de acordo com o que foi informado nos parametros 2 e 3
    //caso a mesma nao exista na tabela BCT
    If  PLSPOSGLO(PLSINTPAD(),cCodCriEsp,cDesCriEsp,cLOCALExec)
 
        //Define qual o nivel de autorizacao/critica da regra
        cNivel := "ZAA"
 
        //TODO - Implementar codigo para controlar a variavel que define se a critica sera ou nao submetida
        /*Tratar variavel 'lSuaRegra' aqui
        Exemplo:
        lSuaRegra := MsgYesNo("AUTORIZAR OU NAO?")*/
 
        // Vou criticar/autorizar de acordo com a regra tratada acima
        if !lSuaRegra
            //Aqui devo fazer a montagem do aRet de acordo com a descricao do artigo
            aAdd(aCriticas,{cCodCriEsp,cDesCriEsp,'',BCT->BCT_NIVEL,BCT->BCT_TIPO,cCdTbPd,cCodPro})
            aRet := {.F.,aCriticas,cNivel,'',.F.}
        else
            aRet := {.T.,'',cNivel,''}
        endif 
 
    endif
 
return(aRet)