Regra por processo 885 - Geração de Solicitação de Exames

Esta regra será executada ao clicar no botão Mostrar da tela de Geração de Solicitação de Exames (FRGERSOL), após o sistema ter feito a carga dos exames.

Através desta regra, é possível manipular os exames a serem apresentados na tela aberta após clicar no botão, para fazer a seleção das solicitações/agendamentos. Também é possível consultar e excluir os exames já carregados pelo sistema e adicionar novos exames.

Nesta regra estão disponíveis as funções e variáveis com prefixo “GerSolExa_”, além das variáveis com prefixo “AbrSolExa_”, as quais podem ser consultadas através do Índice de Funções e do Índice de Variáveis.

Exemplo:

<div class="Code"><p>@ Regra para ser associada ao processo 885- Geração de Solicitação de Exames @</p><p>Definir Alfa xAbrTipCol;<br></br>Definir Alfa xAbrNumCad;<br></br>Definir Alfa xAbrCodExa;<br></br>Definir Alfa xAbrCodFic;<br></br>Definir Alfa xOrigem;<br></br>Definir Data xDatIni;<br></br>Definir Data xDatTer;<br></br>Definir Alfa xPosTra;<br></br>Definir Alfa xCodCar;<br></br>Definir Alfa xAbrGHE;<br></br>Definir Alfa xSolAbe;<br></br>Definir Alfa xConSit;<br></br>Definir Alfa xExaOri;<br></br>Definir Alfa xConExa;</p><p>Definir Data xDatSol;<br></br>Definir Data xDatNas;<br></br>Definir Alfa xCursor;<br></br>Definir Alfa xSQL;</p><p>/* Variáveis de sistema disponíveis com abrangências informadas na tela de geração de solicitação de exames */<br></br>xAbrTipCol = AbrSolExa_TipCol;<br></br>xAbrNumCad = AbrSolExa_NumCad;<br></br>xAbrCodFic = AbrSolExa_CodFic;<br></br>xAbrCodExa = AbrSolExa_CodExa;<br></br>/*<br></br>AbrSolExa_CodCar<br></br>AbrSolExa_CodEsc<br></br>AbrSolExa_CodFil<br></br>AbrSolExa_CodLoc<br></br>AbrSolExa_CodLot<br></br>AbrSolExa_CodSit<br></br>AbrSolExa_CodTrb<br></br>AbrSolExa_CodVin<br></br>AbrSolExa_TmaCua<br></br>*/</p><p>/* Variáveis de sistema disponíveis com campos/filtros informados na tela de geração de solicitação de exames */<br></br>xOrigem = GerSolExa_Origem;<br></br>xDatIni = GerSolExa_PeriodoInicio;<br></br>xDatTer = GerSolExa_PeriodoTermino;<br></br>xConExa = GerSolExa_ConsiderarExames;<br></br>xDatExa = GerSolExa_DataExame;<br></br>xVenExa = GerSolExa_VencimentoExame;<br></br>xCodAte = GerSolExa_Atendente;<br></br>xCodOem = GerSolExa_Convenio;<br></br>xOemExa = GerSolExa_EntidadeExame;<br></br>xSolAbe = GerSolExa_SolicitacoesAberto;<br></br>xDiaSol = GerSolExa_DiasSolicitacao;<br></br>xCodRqu = GerSolExa_Requisicao;<br></br>xEstPos = GerSolExa_EstruturaPostos;<br></br>xPosTra = GerSolExa_PostoTrabalho;<br></br>xCodFil = GerSolExa_Filial;<br></br>xTabOrg = GerSolExa_Organograma;<br></br>xNumLoc = GerSolExa_Local;<br></br>xEstCar = GerSolExa_EstruturaCargos;<br></br>xCodCar = GerSolExa_Cargo;<br></br>xCodAtv = GerSolExa_Atividade;<br></br>xCodPRA = GerSolExa_PPRA;<br></br>xAbrGHE = GerSolExa_AbrangenciaGHE;<br></br>xConSit = GerSolExa_ConsiderarSituacao;<br></br>xExaOri = GerSolExa_GerarExamesOrigem;<br></br>xConExa = GerSolExa_ConsiderarExamesMesmoTipo;</p><p>/* Funções disponíveis */<br></br>/*<br></br>- GerSolExa_AdicionarExameLista(Numero NumEmp, Numero CodFic, Numero CodExa, Numero DatSol, Numero DatRes, Numero OriExa, Numero CodOem, Numero OemExa, Numero CodAte);<br></br>- GerSolExa_ConsultarListaExames(Alfa aTipoOperacao, Numero End aNumEmp, Numero End aCodFic, Numero End aCodExa, Data End aDatSol);<br></br>- GerSolExa_LimparListaExames();<br></br>- GerSolExa_RemoverExameLista();<br></br>*/</p><p>xTem = GerSolExa_ConsultarListaExames("I", xNumEmp, xCodFic, xCodExa, xDatSol);<br></br> Enquanto (xTem = 0) {<br></br> Se ((xNumEmp = 1) e (xCodFic = 1010003)) {<br></br> GerSolExa_RemoverExameLista();<br></br> }<br></br> xTem = GerSolExa_ConsultarListaExames("P", xNumEmp, xCodFic, xCodExa, xDatSol);<br></br>}</p><p>DesmontaData(xDatIni, xDiaIni, xMesIni, xAnoIni);<br></br>DesmontaData(xDatTer, xDiaTer, xMesTer, xAnoTer);</p><p>xSQL = "SELECT R110FIC.CODFIC, R034FUN.DATNAS \<br></br> FROM R034FUN, R110FIC \<br></br> WHERE R034FUN.NUMEMP = R110FIC.NUMEMP \<br></br> AND R034FUN.TIPCOL = R110FIC.TIPCOL \<br></br> AND R034FUN.NUMCAD = R110FIC.NUMCAD \<br></br> AND R034FUN.NUMEMP = :NumEmp \<br></br> AND R110FIC.TIPATN = 1";</p><p>EstaNulo(xAbrTipCol, xNulo);<br></br>Se (xNulo = 0) {<br></br> MontaAbrangencia("R034FUN.TipCol", xAbrTipCol, xAbrTipCol);<br></br> xSQL = xSQL + " AND " + xAbrTipCol;<br></br>}</p><p>EstaNulo(xAbrNumCad, xNulo);<br></br>Se (xNulo = 0) {<br></br> MontaAbrangencia("R034FUN.NumCad", xAbrNumCad, xAbrNumCad);<br></br> xSQL = xSQL + " AND " + xAbrNumCad;<br></br>}</p><p>EstaNulo(xAbrCodFic, xNulo);<br></br>Se (xNulo = 0) {<br></br> MontaAbrangencia("R110FIC.CodFic", xAbrCodFic, xAbrCodFic);<br></br> xSQL = xSQL + " AND " + xAbrCodFic;<br></br>}</p><p>SQL_Criar(xCursor);<br></br>SQL_DefinirComando(xCursor, xSQL);<br></br>SQL_DefinirInteiro(xCursor, "NumEmp", EmpAtu);<br></br>SQL_AbrirCursor(xCursor);<br></br>Enquanto (SQL_EOF(xCursor) = 0) {<br></br> SQL_RetornarInteiro(xCursor, "CodFic", xCodFic);<br></br> SQL_RetornarData(xCursor, "DatNas", xDatNas);</p><p> Se (xCodFic &#x3C;> 1010003) {<br></br> DesmontaData(xDatNas, xDiaNas, xMesNas, xAnoNas);<br></br> Se ((xDiaNas >= xDiaIni) e (xDiaNas &#x3C;= xDiaTer) e (xMesNas >= xMesIni) e (xMesNas &#x3C;= xMesTer)) {<br></br> MontaData(xDiaNas, xMesNas, xAnoTer, xDatSol);</p><p> MontaAbrangencia("R108EXA.CodExa", xAbrCodExa, xAbrCodExa);</p><p> /* GerSolExa_AdicionarExameLista(Numero NumEmp, Numero CodFic, Numero CodExa, Numero DatSol, Numero DatRes, Numero OriExa, Numero CodOem, Numero OemExa, Numero CodAte); */<br></br> GerSolExa_AdicionarExameLista(EmpAtu, xCodFic, 1, xDatSol, xDatSol, 2, xCodOem, xOemExa, xCodAte);<br></br> GerSolExa_AdicionarExameLista(EmpAtu, xCodFic, 2, xDatSol, xDatSol, 2, xCodOem, xOemExa, xCodAte);<br></br> }<br></br> }</p><p> SQL_Proximo(xCursor);<br></br>}</p><p>SQL_FecharCursor(xCursor);<br></br>SQL_Destruir(xCursor);</p><p>xCodFic = 1010004;<br></br>GerSolExa_AdicionarExameLista(EmpAtu, xCodFic, 1, xDatSol, xDatSol, 2, xCodOem, xOemExa, xCodAte);</p></div>

Utilização: ao clicar no botão Mostrar da tela de Geração de Solicitação de Exames (FRGERSOL).

Disponível para o módulo: Segurança e Medicina.

Este artigo ajudou você?