| 1 | SDSCINS ;ALB/JAM/RBS - ASCD Check on Newly Identified Insurance ; 2/15/07 12:57pm ; 4/3/07 11:19am | 
|---|
| 2 | ;;5.3;Scheduling;**495**;Aug 13, 1993;Build 50 | 
|---|
| 3 | ;;MODIFIED FOR NATIONAL RELEASE from a Class III software product | 
|---|
| 4 | ;;known as Service Connected Automated Monitoring (SCAM). | 
|---|
| 5 | ; | 
|---|
| 6 | ;**Program Description** | 
|---|
| 7 | ;   This program will check the Audit file for any newly identified | 
|---|
| 8 | ;   insurance policies | 
|---|
| 9 | Q | 
|---|
| 10 | EN(SDSCINS,SDSCSVC) ;  Entry point | 
|---|
| 11 | ; | 
|---|
| 12 | ;  Input: SDSCINS and SDSCSVC passed by reference | 
|---|
| 13 | ; | 
|---|
| 14 | ;  Output: | 
|---|
| 15 | ;    SDSCINS - count of records found with late-identified insurance | 
|---|
| 16 | ;    SDSCSVC - count of those found records just filed to (#409.48) | 
|---|
| 17 | ; | 
|---|
| 18 | N SDSCPAR | 
|---|
| 19 | K SDSCBDT,SDSCEDT | 
|---|
| 20 | ;if audit not turned on quit | 
|---|
| 21 | D FIELD^DID(2,.3192,"","AUDIT","SDSCPAR") | 
|---|
| 22 | I $G(SDSCPAR("AUDIT"))'["YES" Q | 
|---|
| 23 | K SDSCPAR | 
|---|
| 24 | D FIELD^DID(2.312,.01,"","AUDIT","SDSCPAR") | 
|---|
| 25 | I $G(SDSCPAR("AUDIT"))'["YES" Q | 
|---|
| 26 | ; Get encounter date range to check - start with from 24 months back | 
|---|
| 27 | S SDSCBDT=$$FMADD^XLFDT(DT,-731),SDSCEDT=$O(^SDSC(409.48,"AE",""),-1)\1 | 
|---|
| 28 | ; | 
|---|
| 29 | N SDSCADT,SDEADT,SDINS | 
|---|
| 30 | S SDSCADT=$$FMADD^XLFDT(DT,-1),SDEADT=$$FMADD^XLFDT(DT,-1) | 
|---|
| 31 | F  S SDSCADT=$O(^DIA(2,"C",SDSCADT)) Q:SDSCADT=""!((SDSCADT\1)>SDEADT)  D | 
|---|
| 32 | . S SDIEN="" F  S SDIEN=$O(^DIA(2,"C",SDSCADT,SDIEN)) Q:SDIEN=""  D | 
|---|
| 33 | .. S SDUFLD=$P(^DIA(2,SDIEN,0),U,3) | 
|---|
| 34 | .. I SDUFLD'=.3192,SDUFLD'[.3121 Q | 
|---|
| 35 | .. I SDUFLD=.3192 D COV Q:'SDCOV | 
|---|
| 36 | .. I SDUFLD=".3121,.01" D NINS Q:'SDIN | 
|---|
| 37 | .. S SDFN=$P(^DIA(2,SDIEN,0),U,1) S:SDFN["," SDFN=$P(SDFN,",",1) | 
|---|
| 38 | .. ; | 
|---|
| 39 | .. ; check if this patient has encounters for the date range | 
|---|
| 40 | .. S SDECDT=SDSCBDT | 
|---|
| 41 | .. F  S SDECDT=$O(^SCE("ADFN",SDFN,SDECDT)) Q:SDECDT=""!((SDECDT\1)>SDSCEDT)  D | 
|---|
| 42 | ... S IEN="" F  S IEN=$O(^SCE("ADFN",SDFN,SDECDT,IEN)) Q:IEN=""  D | 
|---|
| 43 | .... S SDINS=SDSCSVC | 
|---|
| 44 | .... S SDOE=IEN,SDOEDT=$P(^SCE(SDOE,0),U,1) D OPT1^SDSCOMP | 
|---|
| 45 | .... ; count the number of service connected records from late-identified insurance | 
|---|
| 46 | .... I SDINS'=SDSCSVC S SDSCINS=SDSCINS+1 | 
|---|
| 47 | ; | 
|---|
| 48 | EXIT ;  Exit | 
|---|
| 49 | K SDOE,IEN,SDECDT,SDIN,SDCOV | 
|---|
| 50 | K SDUFLD,SDFN,SDIEN,SDOEDT | 
|---|
| 51 | Q | 
|---|
| 52 | ; | 
|---|
| 53 | AUDIT(SDTEXT,SDCNT) ;  Check if auditing is turned on | 
|---|
| 54 | N SDSCPAR,SDARY,SDCT | 
|---|
| 55 | S SDCT=0,SDCNT=$G(SDCNT) | 
|---|
| 56 | D FIELD^DID(2,.3192,"","AUDIT","SDSCPAR") | 
|---|
| 57 | I $G(SDSCPAR("AUDIT"))'["YES" D | 
|---|
| 58 | . S SDCT=SDCT+1,SDARY(SDCT)="Auditing is not turned on for field COVERED BY HEALTH INSURANCE?" | 
|---|
| 59 | K SDSCPAR | 
|---|
| 60 | D FIELD^DID(2.312,.01,"","AUDIT","SDSCPAR") | 
|---|
| 61 | I $G(SDSCPAR("AUDIT"))'["YES" D | 
|---|
| 62 | . S SDCT=SDCT+1,SDARY(SDCT)="Auditing is not turned on for field INSURANCE TYPE" | 
|---|
| 63 | I SDCT D | 
|---|
| 64 | . S SDCNT=SDCNT+1,SDTEXT(SDCNT)="",SDCNT=SDCNT+1 | 
|---|
| 65 | . S SDTEXT(SDCNT)="ASCD Late Insurance Check:" | 
|---|
| 66 | . S SDCT=0 F  S SDCT=$O(SDARY(SDCT)) Q:'SDCT  D | 
|---|
| 67 | . . S SDCNT=SDCNT+1,SDTEXT(SDCNT)=SDARY(SDCT) | 
|---|
| 68 | Q | 
|---|
| 69 | MMSG ;  Send mail message | 
|---|
| 70 | I $G(DUZ)="" S XMZ(.5)="" | 
|---|
| 71 | S XMZ(DUZ)="",XMDUZ="ASCD Insurance Check",XMY("G.SDSC NIGHTLY TALLY")="" | 
|---|
| 72 | S XMTEXT="SDTEXT(",XMSUB="ASCD Insurance Identified" | 
|---|
| 73 | D ^XMD | 
|---|
| 74 | K XMY,XMDUZ,XMTEXT,SDTEXT,XMSUB,XMZ | 
|---|
| 75 | Q | 
|---|
| 76 | ; | 
|---|
| 77 | COV ;  Covered by insurance | 
|---|
| 78 | N SDOLD,SDNEW | 
|---|
| 79 | S SDCOV=0 | 
|---|
| 80 | S SDOLD=$G(^DIA(2,SDIEN,2)),SDNEW=$G(^DIA(2,SDIEN,3)) | 
|---|
| 81 | I SDOLD="NO",SDNEW="YES" S SDCOV=1 Q | 
|---|
| 82 | Q | 
|---|
| 83 | ; | 
|---|
| 84 | NINS ;  New insurance company added | 
|---|
| 85 | N SDOLD,SDNEW | 
|---|
| 86 | S SDIN=0 | 
|---|
| 87 | S SDOLD=$G(^DIA(2,SDIEN,2)),SDNEW=$G(^DIA(2,SDIEN,3)) | 
|---|
| 88 | I SDOLD="",SDNEW'="" S SDIN=1 | 
|---|
| 89 | Q | 
|---|