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

DG53372M.m

Go to the documentation of this file.
  1. DG53372M ;ALB/PDJ DG*5.3*372 Elig Code Cleanup Mailman Msg ; 03/30/01
  1. ;;5.3;Registration;**372,1015**;Aug 13, 1993;Build 21
  1. ;
  1. ; A mail message will be sent to the user when the edit process
  1. ; is complete.
  1. ;
  1. ;
  1. MAIL ; Send a mailman msg to user with results
  1. N DIFROM,%
  1. N DATA,DATA1,FILE,FLD,IENX,NODE,TEXT,I,X,XMDUZ,XMSUB,XMTEXT,XMY,Y,STA,IEN
  1. N XTERR,XTPAT,XTENC,NAME
  1. N ELIGCD,SIEN,PIEN
  1. S XTERR="DG*5.3*372-SRCERR"
  1. S XTPAT="DG*5.3*372-PATREC"
  1. S XTENC="DG*5.3*372-ENCREC"
  1. K ^TMP("DG53372",$J)
  1. S XMSUB="ELIGIBILITY CODE Cleanup"
  1. S XMDUZ="DG Edit Package",XMY(DUZ)="",XMY(.5)=""
  1. S XMTEXT="^TMP(""DG53372"",$J,"
  1. D NOW^%DTC S Y=% D DD^%DT
  1. S ^TMP("DG53372",$J,1)="ELIGIBILITY CODE Cleanup"
  1. S ^TMP("DG53372",$J,2)=" "
  1. S NODE=2
  1. ;
  1. ; Send no Cleanup needed message and quit
  1. ;
  1. I CLNOK D Q
  1. . S NODE=NODE+1
  1. . S ^TMP("DG53372",$J,NODE)=" Your Site uses standard eligibility codes for NSC and"
  1. . S NODE=NODE+1
  1. . S ^TMP("DG53372",$J,NODE)=" SC LESS THAN 50% veterans, therefore no cleanup is needed. "
  1. . S NODE=NODE+1
  1. . S ^TMP("DG53372",$J,NODE)=" "
  1. . S NODE=5
  1. . D MAIL1
  1. ;
  1. ; Add text related to each Eligibility code
  1. ;
  1. F IEN=3,5 D
  1. . S NODE=NODE+1
  1. . S ^TMP("DG53372",$J,NODE)=" "
  1. . ;
  1. . ; Standard code message
  1. . ;
  1. . I NSTD(IEN)=0 D Q
  1. . . S NODE=NODE+1
  1. . . S ^TMP("DG53372",$J,NODE)=" Your site uses the standard Eligibility Code "_IEN_" for "_$S(IEN=3:"SC LESS THAN 50%.",1:"NSC.")
  1. . . S NODE=NODE+1
  1. . . S ^TMP("DG53372",$J,NODE)=" No report or cleanup is needed related to this code."
  1. . ;
  1. . ; Auto-corrected message
  1. . ;
  1. . I NSTD(IEN)=1 D Q
  1. . . S NODE=NODE+1
  1. . . S ^TMP("DG53372",$J,NODE)=" Your Site is using ELIGIBILITY CODE "_STDCDS(IEN)_" for "_$S(IEN=3:"SC LESS THAN 50%.",1:"NSC.")
  1. . . S NODE=NODE+1
  1. . . S ^TMP("DG53372",$J,NODE)=" Please review the list of records below that have been auto-corrected."
  1. . ;
  1. . ; Manual update message
  1. . ;
  1. . S NODE=NODE+1
  1. . S ^TMP("DG53372",$J,NODE)=" Your Site is currently using ELIGIBILITY CODE "_IEN_" for "_$P(^DIC(8,IEN,0),"^",1)_"."
  1. . S NODE=NODE+1
  1. . S ^TMP("DG53372",$J,NODE)=" This is non-standard, as this code should be used for "_$S(IEN=3:"SC LESS THAN 50%.",1:"NSC.")
  1. . S NODE=NODE+1
  1. . S ^TMP("DG53372",$J,NODE)=" Please review the list of records below and update manually as needed."
  1. ;
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=" "
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=$$REPEAT^XLFSTR("=",75)
  1. ;
  1. PRTRECS ; Print List of records
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=" "
  1. S TEXT=" Total Patient Records: "
  1. S TEXT=$$BLDSTR($J(+$G(^XTMP(XTPAT,1)),8,0),TEXT,30,8)
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=TEXT
  1. S TEXT=" Total Secondary Elig: "
  1. S TEXT=$$BLDSTR($J(+$G(^XTMP(XTPAT,1,1)),8,0),TEXT,30,8)
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=TEXT
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=" "
  1. ;
  1. S TEXT=" "
  1. S TEXT=$$BLDSTR("Elig",TEXT,7,4)
  1. S TEXT=$$BLDSTR("Pat IEN",TEXT,12,7)
  1. S TEXT=$$BLDSTR("SIEN",TEXT,23,4)
  1. S TEXT=$$BLDSTR("Name",TEXT,28,4)
  1. S TEXT=$$BLDSTR("SubEligCD",TEXT,50,9)
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=TEXT
  1. S (ELIGCD,PIEN,SIEN)=""
  1. F S ELIGCD=$O(^XTMP(XTPAT,ELIGCD)) Q:ELIGCD="" D
  1. . F S PIEN=$O(^XTMP(XTPAT,ELIGCD,PIEN)) Q:PIEN="" D
  1. . . F S SIEN=$O(^XTMP(XTPAT,ELIGCD,PIEN,SIEN)) Q:SIEN="" D
  1. . . . D BLDPAT
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=$$REPEAT^XLFSTR("=",75)
  1. ;
  1. PRTENC ; Print Encounter Records
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=" "
  1. S TEXT=" Total Patient Encounter Records: "
  1. S TEXT=$$BLDSTR($J(+$G(^XTMP(XTENC,1)),8,0),TEXT,40,8)
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=TEXT
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=" "
  1. ;
  1. S TEXT=" "
  1. S TEXT=$$BLDSTR("Elig",TEXT,1,4)
  1. S TEXT=$$BLDSTR("Pat IEN",TEXT,6,7)
  1. S TEXT=$$BLDSTR("SIEN",TEXT,15,4)
  1. S TEXT=$$BLDSTR("Name",TEXT,28,4)
  1. S TEXT=$$BLDSTR("Enc DT",TEXT,54,6)
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=TEXT
  1. S (ELIGCD,PIEN,SIEN)=""
  1. F S ELIGCD=$O(^XTMP(XTENC,ELIGCD)) Q:ELIGCD="" D
  1. . F S PIEN=$O(^XTMP(XTENC,ELIGCD,PIEN)) Q:PIEN="" D
  1. . . F S SIEN=$O(^XTMP(XTENC,ELIGCD,PIEN,SIEN)) Q:SIEN="" D
  1. . . . D BLDENC
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=$$REPEAT^XLFSTR("=",75)
  1. ;
  1. FILERRS ; Print Filing errors
  1. ;
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=" "
  1. S TEXT=" Total Filing Errors: "
  1. S TEXT=$$BLDSTR($J(+$G(^XTMP(XTERR,1)),8,0),TEXT,30,8)
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=TEXT
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=" "
  1. ;
  1. I +$G(^XTMP(XTERR,1)) D
  1. . S TEXT="File #"
  1. . S TEXT=$$BLDSTR("Elig",TEXT,8,4)
  1. . S TEXT=$$BLDSTR("PatIEN",TEXT,13,6)
  1. . S TEXT=$$BLDSTR("SIEN",TEXT,23,4)
  1. . S TEXT=$$BLDSTR("Name",TEXT,30,4)
  1. . S TEXT=$$BLDSTR("Dt/EligCD",TEXT,50,9)
  1. . S TEXT=$$BLDSTR("Error Message",TEXT,71,13)
  1. . S NODE=NODE+1
  1. . S ^TMP("DG53372",$J,NODE)=TEXT
  1. ;
  1. S (FILE,ELIGCD,PIEN,SIEN)=""
  1. F S FILE=$O(^XTMP(XTERR,FILE)) Q:FILE="" D
  1. . F S ELIGCD=$O(^XTMP(XTERR,FILE,ELIGCD)) Q:ELIGCD="" D
  1. . . F S PIEN=$O(^XTMP(XTERR,FILE,ELIGCD,PIEN)) Q:PIEN="" D
  1. . . . F S SIEN=$O(^XTMP(XTERR,FILE,ELIGCD,PIEN,SIEN)) Q:SIEN="" D
  1. . . . . D BLDERR
  1. ;
  1. MAIL1 ; Send message
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=" "
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=" ******** END OF MESSAGE ********"
  1. ;
  1. D ^XMD
  1. K ^TMP("DG53372",$J)
  1. Q
  1. ;
  1. BLDERR ; Format error line for printing
  1. N DATA,NAME,DTECD,ERRTXT
  1. S DATA=^XTMP(XTERR,FILE,ELIGCD,PIEN,SIEN)
  1. S NAME=$P(DATA,"^",1),DTECD=$P(DATA,"^",2),ERRTXT=$P(DATA,"^",3)
  1. S TEXT=FILE
  1. S TEXT=$$BLDSTR(ELIGCD,TEXT,10,$L(ELIGCD))
  1. S TEXT=$$BLDSTR(PIEN,TEXT,12,$L(PIEN))
  1. I SIEN S TEXT=$$BLDSTR(SIEN,TEXT,24,$L(SIEN))
  1. S TEXT=$$BLDSTR($E(NAME,1,20),TEXT,30,20)
  1. I $L(DTECD)>5 S Y=DTECD D DD^%DT S DTECD=Y
  1. S TEXT=$$BLDSTR(DTECD,TEXT,50,$L(DTECD))
  1. S TEXT=$$BLDSTR(ERRTXT,TEXT,71,20)
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=TEXT
  1. Q
  1. ;
  1. BLDPAT ; Format Patient line for printing
  1. N DATA,NAME,DTECD,ERRTXT,SELIGCD
  1. S DATA=^XTMP(XTPAT,ELIGCD,PIEN,SIEN)
  1. S NAME=$P(DATA,"^",1),SELIGCD=$P(DATA,"^",2)
  1. S TEXT=" "
  1. S TEXT=$$BLDSTR(ELIGCD,TEXT,9,$L(ELIGCD))
  1. S TEXT=$$BLDSTR(PIEN,TEXT,12,$L(PIEN))
  1. I SIEN S TEXT=$$BLDSTR(SIEN,TEXT,24,$L(SIEN))
  1. S TEXT=$$BLDSTR($E(NAME,1,20),TEXT,28,20)
  1. S TEXT=$$BLDSTR(SELIGCD,TEXT,54,$L(SELIGCD))
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=TEXT
  1. Q
  1. ;
  1. BLDENC ; Format Patient Encounter line for printing
  1. N DATA,NAME,ENCDT,ERRTXT,Y
  1. S DATA=^XTMP(XTENC,ELIGCD,PIEN,SIEN)
  1. S NAME=$P(DATA,"^",1),ENCDT=$P(DATA,"^",2)
  1. S TEXT=" "
  1. S TEXT=$$BLDSTR(ELIGCD,TEXT,2,$L(ELIGCD))
  1. S TEXT=$$BLDSTR(PIEN,TEXT,6,$L(PIEN))
  1. I SIEN S TEXT=$$BLDSTR(SIEN,TEXT,15,$L(SIEN))
  1. S TEXT=$$BLDSTR($E(NAME,1,20),TEXT,28,20)
  1. S Y=ENCDT D DD^%DT
  1. S TEXT=$$BLDSTR(Y,TEXT,54,$L(Y))
  1. S NODE=NODE+1
  1. S ^TMP("DG53372",$J,NODE)=TEXT
  1. Q
  1. ;
  1. BLDSTR(NSTR,STR,COL,NSL) ; build a string
  1. ; Input:
  1. ; NSTR = a string to be added to STR
  1. ; STR = an existing string to which NSTR will be added
  1. ; COL = column location at which NSTR will be added to STR
  1. ; NSL = length of new string
  1. ; Output:
  1. ; returns STR with NSTR appended at the specified COL
  1. ;
  1. Q $E(STR_$J("",COL-1),1,COL-1)_$E(NSTR_$J("",NSL),1,NSL)_$E(STR,COL+NSL,999)