Page tree

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

  

Informações Gerais

 

Especificação

Produto

Protheus

Módulo

SIGAPLS

Segmento Executor

Saúde

Chamado

TSBAKR

País

(X) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Objetivo

Essa especificação detalha melhorias a serem realizadas para que o processo de recurso de glosa possa ser executado corretamente.

Definição da Regra de Negócio

Recurso de glosa é o direito do prestador contestar uma glosa de despesas realizada pela operadora. Nesse documento, estão descritos os detalhes de melhorias para que o processo possa ser corretamente executado, respeitando as parametrizações do sistema.

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

PLSA498

Alteração

Digitação de Contas

 

 

PLSRECGLO

Alteração

Gerenciamento de Recurso de Glosa

 

 

  1. Atualmente, o limite máximo de tentativas de recurso de glosa é definido no campo BA0_MAXRG da tabela BA0.  Definida essa quantidade, toda vez que o prestador realizar uma nova tentativa de recurso de glosa, o sistema deve verificar se o limite de tentativas foi atingido. Sendo assim, a rotina PLSAGRVREC (fonte PLSA498.PRW) deve ser alterada para considerar o campo cujo conteúdo é o número total de tentativas realizadas para aquele item, protocolo ou guia.

    Alterar o seguinte trecho:

    Alteração
    While !BVO->(EOF()) .AND. ;
     BVO->(BVO_FILIAL+BVO_OPEMOV+BVO_CODLDP+BVO_CODPEG+BVO_NUMAUT+BVO_SEQUEN) == ;
     xFilial("BVO")+cCodOpe+cCodLdp+cCodPeg+cNumero+cSequen
     If BVO->BVO_STATUS == "0"
     //Recurso em aberto
     cCritica := STR0115 //"Este evento já possui um recurso protocolado aguardando analise."
     EndIf
     
     Elseif BVO->BVO_STATUS == "1"
     nQtd ++ // Registra a quantidade de recursos negados.
     Endif
     //Verifica se existem outros recursos em aberto.
     If !Empty(cCritica)
     lRet := .F.
     Exit
     EndIf
     BVO->(DbSkip())
     EndDo

    Para não efetuar contagem dos registros da BVO (a quantidade será considerada na próxima função):

    		While !BVO->(EOF()) .AND. ;
    				BVO->(BVO_FILIAL+BVO_OPEMOV+BVO_CODLDP+BVO_CODPEG+BVO_NUMAUT+BVO_SEQUEN) == ;
    				xFilial("BVO")+cCodOpe+cCodLdp+cCodPeg+cNumero+cSequen
    			If BVO->BVO_STATUS == "0"
    				cCritica := STR0115 //"Este evento já possui um recurso protocolado aguardando analise."
    				lRet := .F.
    				Exit
    			EndIf
    			BVO->(DbSkip())
    		EndDo

    Em seguida, alterar o seguinte trecho:

    If (nQtd >= nMax .OR. B4D->B4D_QTDIRP >= nMax) .AND. nMax > 0 // TODO: Comparar com a quantidade maxima de tentativas permitidas, conforme especificacao
    				If !MsgYesNo(STR0116)//"O limite de tentativas de recurso dessa glosa já foi atingido, deseja continuar mesmo assim?"
    					cCritica := STR0117 //"Limite de tentativas de recurso atingido!"
    					lRet := .F.
    				EndIf
    			ElseIf BA0->BA0_PRZREC > 0 .AND. Empty(cCritica) .AND. B4D->B4D_DATSOL < (dDataBase - BA0->BA0_PRZREC)// Valido prazo maximo para recurso
    				cCritica := STR0118 //"O prazo limite para recurso dessa glosa já foi atingido! "
    				lRet := .F.
    			Else
    				cSeq := Soma1(cSeqRec)
    				cStatus := "1"
    				lInclui := .T.
    			EndIf

    Para:

    //Posicionar na B4D ou B4E, de acordo com o tipo.			
    			//Tenta posicionar na B4E (Itens) caso o recurso seja por item e exista exista registros na B4E.
    			If B4D->B4D_OBJREC == "2" .and. B4E->(MsSeek(xFilial("B4E")+cCodOpe+cCodLdp+cCodPeg+cNumero+cOriMov+cSequen))
    				nQtd := B4E->B4E_QTDIRP
    			Else
    				nQtd := B4D->B4D_QTDIRP
    			EndIf
    						
    			If nMax > 0 .and. nQtd >= nMax 
    				If !MsgYesNo(STR0116)//"O limite de tentativas de recurso dessa glosa já foi atingido, deseja continuar mesmo assim?"
    					cCritica := STR0117 //"Limite de tentativas de recurso atingido!"
    					lRet := .F.
    				EndIf
    			ElseIf BA0->BA0_PRZREC > 0 .AND. Empty(cCritica) .AND. B4D->B4D_DATSOL < (dDataBase - BA0->BA0_PRZREC)// Valido prazo maximo para recurso
    				cCritica := STR0118 //"O prazo limite para recurso dessa glosa já foi atingido! "
    				lRet := .F.
    			Else
    				cSeq := Soma1(cSeqRec)
    				cStatus := "1"
    				lInclui := .T.
    			EndIf
  2. No momento em que são atualizados os dados na B4E, alterar também a quantidade de recurso de glosa para este item somente quando for inclusão:

    If cTipRec == "I"
    		//Grava o status do recurso na B4D e BDE
    		DbSelectArea("B4E")
    		B4E->(DbSetOrder(3))
    		If B4E->(MsSeek(xFilial("B4E")+cCodOpe+cCodLdp+cCodPeg+cNumero+cOriMov+cSequen))
    			B4E->(RecLock("B4E",.F.))
    			B4E->B4E_STATUS	:= cStatus
    			B4E->B4E_SEQREC	:= cSeq
    			B4E->B4E_VLRREC	:= nVlrRec
    			B4E->B4E_VLRREC	:= nVlrRec
    			If cParecer == "2"
    				B4E->B4E_JUSOPE	:= cObs //Replace(cObs
    			EndIf
    			If cStatusBVO == "0"
    				B4E->B4E_SLDREC	:= nVlrRec
    				//Nova linha
    				B4E->B4E_QTDIRP 	:= B4E->B4E_QTDIRP++ 
    			Else
    				B4E->B4E_SLDREC	:= B4E->B4E_SLDREC - nVlrPag
    			EndIf
    			B4E->B4E_VLRACA	+= nVlrPag			
     
    			

    Remover a seguinte linha da mesma rotina:

    		B4D->B4D_QTDIRP := B4D->B4D_QTDIRP ++

    Obs: Verificar a gravação da B4D_QTDIRP com o commit do model.

Tabelas Utilizadas

  • B4D – Cabeçalho do recurso de glosa
  • B4E - Itens do recurso de glosa
  • BVO - Tentativas de recurso de glosa 

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.