Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SDSCINS

SDSCINS.m

Go to the documentation of this file.
  1. SDSCINS ;ALB/JAM/RBS - ASCD Check on Newly Identified Insurance ; 2/15/07 12:57pm ; 4/3/07 11:19am
  1. ;;5.3;Scheduling;**495,1015**;Aug 13, 1993;Build 21
  1. ;;MODIFIED FOR NATIONAL RELEASE from a Class III software product
  1. ;;known as Service Connected Automated Monitoring (SCAM).
  1. ;
  1. ;**Program Description**
  1. ; This program will check the Audit file for any newly identified
  1. ; insurance policies
  1. Q
  1. EN(SDSCINS,SDSCSVC) ; Entry point
  1. ;
  1. ; Input: SDSCINS and SDSCSVC passed by reference
  1. ;
  1. ; Output:
  1. ; SDSCINS - count of records found with late-identified insurance
  1. ; SDSCSVC - count of those found records just filed to (#409.48)
  1. ;
  1. N SDSCPAR
  1. K SDSCBDT,SDSCEDT
  1. ;if audit not turned on quit
  1. D FIELD^DID(2,.3192,"","AUDIT","SDSCPAR")
  1. I $G(SDSCPAR("AUDIT"))'["YES" Q
  1. K SDSCPAR
  1. D FIELD^DID(2.312,.01,"","AUDIT","SDSCPAR")
  1. I $G(SDSCPAR("AUDIT"))'["YES" Q
  1. ; Get encounter date range to check - start with from 24 months back
  1. S SDSCBDT=$$FMADD^XLFDT(DT,-731),SDSCEDT=$O(^SDSC(409.48,"AE",""),-1)\1
  1. ;
  1. N SDSCADT,SDEADT,SDINS
  1. S SDSCADT=$$FMADD^XLFDT(DT,-1),SDEADT=$$FMADD^XLFDT(DT,-1)
  1. F S SDSCADT=$O(^DIA(2,"C",SDSCADT)) Q:SDSCADT=""!((SDSCADT\1)>SDEADT) D
  1. . S SDIEN="" F S SDIEN=$O(^DIA(2,"C",SDSCADT,SDIEN)) Q:SDIEN="" D
  1. .. S SDUFLD=$P(^DIA(2,SDIEN,0),U,3)
  1. .. I SDUFLD'=.3192,SDUFLD'[.3121 Q
  1. .. I SDUFLD=.3192 D COV Q:'SDCOV
  1. .. I SDUFLD=".3121,.01" D NINS Q:'SDIN
  1. .. S SDFN=$P(^DIA(2,SDIEN,0),U,1) S:SDFN["," SDFN=$P(SDFN,",",1)
  1. .. ;
  1. .. ; check if this patient has encounters for the date range
  1. .. S SDECDT=SDSCBDT
  1. .. F S SDECDT=$O(^SCE("ADFN",SDFN,SDECDT)) Q:SDECDT=""!((SDECDT\1)>SDSCEDT) D
  1. ... S IEN="" F S IEN=$O(^SCE("ADFN",SDFN,SDECDT,IEN)) Q:IEN="" D
  1. .... S SDINS=SDSCSVC
  1. .... S SDOE=IEN,SDOEDT=$P(^SCE(SDOE,0),U,1) D OPT1^SDSCOMP
  1. .... ; count the number of service connected records from late-identified insurance
  1. .... I SDINS'=SDSCSVC S SDSCINS=SDSCINS+1
  1. ;
  1. EXIT ; Exit
  1. K SDOE,IEN,SDECDT,SDIN,SDCOV
  1. K SDUFLD,SDFN,SDIEN,SDOEDT
  1. Q
  1. ;
  1. AUDIT(SDTEXT,SDCNT) ; Check if auditing is turned on
  1. N SDSCPAR,SDARY,SDCT
  1. S SDCT=0,SDCNT=$G(SDCNT)
  1. D FIELD^DID(2,.3192,"","AUDIT","SDSCPAR")
  1. I $G(SDSCPAR("AUDIT"))'["YES" D
  1. . S SDCT=SDCT+1,SDARY(SDCT)="Auditing is not turned on for field COVERED BY HEALTH INSURANCE?"
  1. K SDSCPAR
  1. D FIELD^DID(2.312,.01,"","AUDIT","SDSCPAR")
  1. I $G(SDSCPAR("AUDIT"))'["YES" D
  1. . S SDCT=SDCT+1,SDARY(SDCT)="Auditing is not turned on for field INSURANCE TYPE"
  1. I SDCT D
  1. . S SDCNT=SDCNT+1,SDTEXT(SDCNT)="",SDCNT=SDCNT+1
  1. . S SDTEXT(SDCNT)="ASCD Late Insurance Check:"
  1. . S SDCT=0 F S SDCT=$O(SDARY(SDCT)) Q:'SDCT D
  1. . . S SDCNT=SDCNT+1,SDTEXT(SDCNT)=SDARY(SDCT)
  1. Q
  1. MMSG ; Send mail message
  1. I $G(DUZ)="" S XMZ(.5)=""
  1. S XMZ(DUZ)="",XMDUZ="ASCD Insurance Check",XMY("G.SDSC NIGHTLY TALLY")=""
  1. S XMTEXT="SDTEXT(",XMSUB="ASCD Insurance Identified"
  1. D ^XMD
  1. K XMY,XMDUZ,XMTEXT,SDTEXT,XMSUB,XMZ
  1. Q
  1. ;
  1. COV ; Covered by insurance
  1. N SDOLD,SDNEW
  1. S SDCOV=0
  1. S SDOLD=$G(^DIA(2,SDIEN,2)),SDNEW=$G(^DIA(2,SDIEN,3))
  1. I SDOLD="NO",SDNEW="YES" S SDCOV=1 Q
  1. Q
  1. ;
  1. NINS ; New insurance company added
  1. N SDOLD,SDNEW
  1. S SDIN=0
  1. S SDOLD=$G(^DIA(2,SDIEN,2)),SDNEW=$G(^DIA(2,SDIEN,3))
  1. I SDOLD="",SDNEW'="" S SDIN=1
  1. Q