oValidateResponse = CREATEOBJECT('Empty') SELECT ; S_Pat_Num, ; S_Pat_Name, ; m.Disp_Date AS DOSBegin, ; m.Disp_Date AS DOSEnd, ; SPACE(50) AS BatchStat ; FROM Schedule ; WHERE S_Date = m.Disp_Date AND ; S_New_Pat = .F. AND ; !EMPTY(S_Pat_Num) AND ; ALLTRIM(S_Pat_Num) <> 'New....' ; GROUP BY 1,2,3,4,5 ; INTO CURSOR EligibilityDailyBatch READWRITE SCAN tPatNum = EligibilityDailyBatch.S_Pat_Num DO GetEligibilityValidationInfo WITH tPatNum, m.Disp_Date, m.Disp_Date SELECT EligibilityValidation IF RECCOUNT('EligibilityValidation') > 0 IF !USED('CovrForEligibility') USE ( m_data_dir ) + 'COVR' ALIAS CovrForEligibility AGAIN IN 0 ENDIF SELECT CovrForEligibility LOCATE FOR ALLTRIM(CovrForEligibility.Pat_No) = ALLTRIM(EligibilityValidation.PtPn) AND CovrForEligibility.CvPs = 'P' IF FOUND() dEligValidTo = EligibilityValidation.BeginDateOfService IF CheckEligibilityRules(tPatNum, CovrForEligibility.CvCarr, EligibilityValidation.BeginDateOfService, EligibilityValidation.EndDateOfService, @dEligValidTo) m.Success = .T. TextRequestMessage = '' DO EligibilityValidation WITH ; EligibilityValidation.ptpn, ; EligibilityValidation.BeginDateOfService, ; EligibilityValidation.EndDateOfService, ; m.Success, ; TextRequestMessage IF m.Success oValidateResponse = EligibilityValidation_Worklist(EligibilityValidation.BeginDateOfService,EligibilityValidation.EndDateOfService,TextRequestMessage) ELSE m.BatchStatus = 'Unable to connect to Payor.' ENDIF IF !USED('CovrForEligibility') USE ( m_data_dir ) + 'COVR' ALIAS CovrForEligibility AGAIN IN 0 ENDIF SELECT CovrForEligibility LOCATE FOR ALLTRIM(CovrForEligibility.Pat_No) = ALLTRIM(EligibilityValidation.PtPn) AND CovrForEligibility.CvPs = 'P' REPLACE CovrForEligibility.EligDate WITH IIF(m.Success,oValidateResponse.LastValidationDate,DATE()) REPLACE CovrForEligibility.EligStat_S WITH IIF(m.Success,oValidateResponse.SubEligibilityStatus,'Failed') REPLACE CovrForEligibility.EligStat_D WITH IIF(m.Success,oValidateResponse.DepEligibilityStatus,'Failed') REPLACE CovrForEligibility.EligValid WITH IIF(m.Success,dEligValidTo,{}) REPLACE CovrForEligibility.EligReport WITH IIF(m.Success,oValidateResponse.EligReport,CovrForEligibility.EligReport) REPLACE CovrForEligibility.EligDetail WITH IIF(m.Success,oValidateResponse.EligDetail,CovrForEligibility.EligDetail) REPLACE CovrForEligibility.EligRawMsg WITH IIF(m.Success,oValidateResponse.EligRawMsg,CovrForEligibility.EligRawMsg) m.BatchStatus = CovrForEligibility.EligStat_S ELSE m.BatchStatus = 'Unable to validate per eligibility rules.' ENDIF ENDIF ELSE m.BatchStatus = 'Unable to verify patient coverage.' ENDIF SELECT EligibilityDailyBatch REPLACE EligibilityDailyBatch.BatchStat WITH m.BatchStatus IF !USED('EligBatch') USE (m_prom_dir) + 'EligBatch' IN 0 ENDIF INSERT INTO EligBatch (; PatNum, ; PatName, ; DOSBegin, ; DOSEnd, ; BatchStat) ; VALUES (; EligibilityDailyBatch.S_Pat_Num, ; EligibilityDailyBatch.S_Pat_Name, ; EligibilityDailyBatch.DOSBegin, ; EligibilityDailyBatch.DOSEnd, ; EligibilityDailyBatch.BatchStat) ENDSCAN oValidateResponse = NULL RELEASE oValidateResponse WAIT CLEAR =MESSAGEBOX('Eligibility Daily Batch Completed')