Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
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 _____________. |
Essa especificação detalha melhorias a serem realizadas para que o processo de recurso de glosa possa ser executado corretamente.
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 |
|
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 |
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.
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
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|