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

Abrir chamado no SSIM

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

ver menu

 

PLSRECGLO

Alteração

ver menu

 

 

  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:

    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.

  3. Alterar a função PLSA498ANR para que não seja permitido a inclusão de recurso de glosa através da opção "Analisar".

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.