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

DGPFCNR.m

Go to the documentation of this file.
  1. DGPFCNR ;ALB/SCK - PRF CAT II TO CAT I REPORTING;27 JAN 2012
  1. ;;5.3;Registration;**849**;Aug 13, 1993;Build 28
  1. ;
  1. ; No direct entry
  1. Q
  1. ;
  1. EN(DGRSLT,DGXTMP) ; Main entry point
  1. N DGLINE,DGSPACE,DGDBL
  1. ;
  1. D SETUP
  1. D BLDSUM(.DGRSLT,DGXTMP)
  1. D BLDPROC(DGXTMP)
  1. W !!?3,">> Results have been sent to the 'DGPF CLINICAL HR FLAG' mail group"
  1. ;
  1. Q
  1. ;
  1. SETUP ; Setup formatting variables for reports
  1. ;
  1. I $G(DGXTMP)']"" S DGXTMP="^TMP(""DGPFL2N"",$J)"
  1. S $P(DGLINE,"-",78)=""
  1. S $P(DGSPACE," ",78)=""
  1. S $P(DGDBL,"=",78)=""
  1. Q
  1. ;
  1. BLDPROC(DGXTMP) ; Build report of processed cat II to Cat I entries
  1. N DGMSG,DGFOUND,DGCNT,DGNAME,DFN,DGPFASG,DGPFASGH,DGTEXT,DGPRE,DGSUBJ
  1. ;
  1. K DGMSG
  1. S DGMSG(10)=$S($G(DGRUN)="R":"Pre-scan results ",1:"Processing results ")_"from Local to National flag processing job"
  1. S DGMSG(12)="Run date: "_$$FMTE^XLFDT($$NOW^XLFDT)
  1. S DGMSG(14)="Started by: "_$$GET1^DIQ(200,DUZ,.01)
  1. S DGMSG(17)=""
  1. ;
  1. K DGFOUND
  1. S DGMSG(19)="List of patients that "_$S($G(DGRUN)="R":"will have a",1:"had a")_" Cat 1 flag created"
  1. S DGMSG(21)="Name"_$E(DGSPACE,1,32)_"Owning Site"
  1. S DGMSG(25)=DGLINE
  1. ;S DGMSG(27)=""
  1. ;
  1. S DGNAME="",DGCNT=30
  1. F S DGNAME=$O(@DGXTMP@("COMPLETE",DGNAME)) Q:DGNAME']"" D
  1. . S DFN=$P($G(@DGXTMP@("COMPLETE",DGNAME)),U,1)
  1. . S DGPFASG=$P($G(@DGXTMP@("COMPLETE",DGNAME)),U,2)
  1. . S DGPFASGH=$P($G(@DGXTMP@("COMPLETE",DGNAME)),U,3)
  1. . S DGTEXT=DGNAME_" ("_$$LAST4(DFN)_")"
  1. . S DGTAB=36-$L(DGTEXT)
  1. . S DGMSG(DGCNT)=DGTEXT_$E(DGSPACE,1,DGTAB)_$$GET1^DIQ(26.13,DGPFASG,.04)
  1. . ;_" "_DGPFASG_"^"_DGPFASGH
  1. . S DGCNT=DGCNT+1,DGFOUND=1
  1. ;
  1. I '$G(DGFOUND) D
  1. . S DGNAME="",DGCNT=30
  1. . F S DGNAME=$O(@DGXTMP@("PREPROC",DGNAME)) Q:DGNAME']"" D
  1. .. N DGPFX
  1. .. S DFN=$P($G(@DGXTMP@("PREPROC",DGNAME)),U,1)
  1. .. S DGPFX=$P($G(@DGXTMP@("PREPROC",DGNAME)),U,2)
  1. .. S DGTEXT=DGNAME_" ("_$$LAST4(DFN)_")"
  1. .. S DGTAB=36-$L(DGTEXT)
  1. .. S DGMSG(DGCNT)=DGTEXT_$E(DGSPACE,1,DGTAB)_$$GET1^DIQ(26.13,DGPFX,.04)
  1. .. S DGCNT=DGCNT+1,DGFOUND=1,DGPRE=1
  1. ;
  1. I '$G(DGFOUND) D
  1. . S DGMSG(DGCNT)="No Cat II records to process were found",DGMSG(DGCNT+1)="",DGCNT=DGCNT+5
  1. ;
  1. S DGSUBJ=$S($G(DGRUN)="R":"Pre-report ",$G(DGRUN)="P":"Processed ",1:"")_"National Flag Create "
  1. D SENDMSG(.DGMSG,DGSUBJ)
  1. Q
  1. ;
  1. BLDSUM(DGRSLT,DGXTMP) ; Build summary report of cat II to cat I processing
  1. N DGMSG,DGNAME,VA,DFN,DFN1,DGIEN,DGTAB,DGTEXT,DGSUBJ
  1. ;
  1. TOP ;
  1. S DGMSG(10)=$S($G(DGRUN)="R":"Pre-scan summary ",1:"Processing summary ")_"from Local to National flag processing job"
  1. S DGMSG(12)="Run date: "_$$FMTE^XLFDT($$NOW^XLFDT)
  1. S DGMSG(14)="Started by: "_$$GET1^DIQ(200,DUZ,.01)
  1. S DGMSG(16)=DGLINE
  1. S DGMSG(16.5)=""
  1. S DGMSG(18)="Summary of PRF Processing:"
  1. S DGMSG(22)=" Total active Cat II flag assignments: "_+$G(DGRSLT("TOTAL"))
  1. S DGMSG(24)=" Cat I flags created: "_+$G(DGRSLT("NEW"))
  1. S DGMSG(26)=" Potential errors Found: "_+$G(DGRSLT("ERR"))
  1. S DGMSG(28)=" Cat II flags requiring manual action: "_+$G(DGRSLT("MANUAL"))
  1. S DGMSG(30)=" Found active Cat I and Cat II flags: "_+$G(DGRSLT("DONE"))
  1. S DGMSG(32)=" "
  1. S DGMSG(34)=DGDBL
  1. S DGMSG(38)=" "
  1. S DGMSG(40)="Processing Results: "
  1. S DGMSG(41)=" "
  1. PRT1 ;
  1. S DGNAME="",DGCNT=100
  1. S DGMSG(DGCNT)="Invalid DFN's or Patient File errors"
  1. S DGMSG(DGCNT+1)=DGLINE
  1. S DGMSG(DGCNT+2)=""
  1. S DGCNT=DGCNT+5
  1. ;
  1. S DFN=0
  1. F S DFN=$O(@DGXTMP@("DFN ERROR",DFN)) Q:'DFN D
  1. . S DGMSG(DGCNT)=@DGXTMP@("DFN ERROR",DFN)
  1. . S DGCNT=DGCNT+1,DGFOUND=1
  1. I '$G(DGFOUND) S DGMSG(DGCNT)="No DFN errors were found",DGMSG(DGCNT+1)="",DGCNT=DGCNT+5
  1. ;
  1. PRT2 ;
  1. S DGMSG(DGCNT+3)="Patients with Local ICN (National ICN Required)"
  1. S DGMSG(DGCNT+4)="Name"_$E(DGSPACE,1,32)_"Local ICN"
  1. S DGMSG(DGCNT+5)=DGLINE
  1. S DGMSG(DGCNT+6)=""
  1. ;
  1. S DGNAME="",DGCNT=DGCNT+6
  1. F S DGNAME=$O(@DGXTMP@("MPI ERROR",DGNAME)) Q:DGNAME']"" D
  1. . S DFN1=$P($G(@DGXTMP@("MPI ERROR",DGNAME)),U,2)
  1. . S DGNAME=DGNAME_" ("_$$LAST4(DFN1)_")"
  1. . S DGTAB=36-$L(DGNAME)
  1. . S DGMSG(DGCNT)=DGNAME_$E(DGSPACE,1,DGTAB)_$$GETICN^MPIF001(DFN1)
  1. . S DGCNT=DGCNT+1
  1. PRT3 ;
  1. K DGFOUND
  1. S DGMSG(DGCNT+1)=""
  1. S DGMSG(DGCNT+3)="National Flag assigned and Local still active"
  1. S DGMSG(DGCNT+4)="Name"_$E(DGSPACE,1,30)_"CMOR"_$E(DGSPACE,1,20)_"Owning Site"
  1. S DGMSG(DGCNT+5)=DGLINE
  1. S DGMSG(DGCNT+6)=""
  1. ;
  1. S DGNAME="",DGCNT=DGCNT+6
  1. F S DGNAME=$O(@DGXTMP@("FLGASGN",DGNAME)) Q:DGNAME']"" D
  1. . S DFN1=$P($G(@DGXTMP@("FLGASGN",DGNAME)),U,2)
  1. . S DGCMOR=$$HL7CMOR^MPIF001(DFN1,"^")
  1. . S DGTEXT=DGNAME_" ("_$$LAST4(DFN1)_")"
  1. . S DGTAB=34-$L(DGTEXT)
  1. . S DGMSG(DGCNT)=DGTEXT_$E(DGSPACE,1,DGTAB)_$P(DGCMOR,U,2)
  1. . S DGTAB=58-$L(DGMSG(DGCNT))
  1. . S DGIEN=$P(@DGXTMP@("FLGASGN",DGNAME),U,3)
  1. . S DGMSG(DGCNT)=DGMSG(DGCNT)_$E(DGSPACE,1,DGTAB)_$$GET1^DIQ(26.13,DGIEN,.04)
  1. . ;S DGMSG(DGCNT+1)=" >"_$P(@DGXTMP@("FLGASGN",DGNAME),U)
  1. . S DGCNT=DGCNT+2,DGFOUND=1
  1. I '$G(DGFOUND) S DGMSG(DGCNT)="No Multiple PRF assignments were found",DGMSG(DGCNT+1)="",DGCNT=DGCNT+5
  1. PRT4 ;
  1. K DGFOUND
  1. S DGMSG(DGCNT+1)=""
  1. S DGMSG(DGCNT+3)="Patients flagged for manual processing"
  1. S DGMSG(DGCNT+4)="Name"_$E(DGSPACE,1,32)_"CMOR"_$E(DGSPACE,1,12)_"Description"
  1. S DGMSG(DGCNT+5)=DGLINE
  1. S DGMSG(DGCNT+6)=""
  1. ;
  1. S DGNAME="",DGCNT=DGCNT+6
  1. F S DGNAME=$O(@DGXTMP@("MANUAL",DGNAME)) Q:DGNAME']"" D
  1. . S DFN1=$P($G(@DGXTMP@("MANUAL",DGNAME)),U,2)
  1. . S DGTEXT=DGNAME_" ("_$$LAST4(DFN1)_")"
  1. . S DGTAB=36-$L(DGTEXT)
  1. . S DGMSG(DGCNT)=DGTEXT_$E(DGSPACE,1,DGTAB)_$E($P($$HL7CMOR^MPIF001(DFN1,"^"),U,2),1,16)
  1. . S DGMSG(DGCNT)=DGMSG(DGCNT)_" "_$P(@DGXTMP@("MANUAL",DGNAME),U,1)
  1. . S DGCNT=DGCNT+1,DGFOUND=1
  1. I '$G(DGFOUND) S DGMSG(DGCNT)="No records needing manual intervention found",DGMSG(DGCNT+1)="",DGCNT=DGCNT+5
  1. PRT5 ;
  1. K DGFOUND
  1. S DGMSG(DGCNT+1)=""
  1. S DGMSG(DGCNT+3)="Other Errors which may have prevented conversion"
  1. S DGMSG(DGCNT+4)="Name"_$E(DGSPACE,1,32)_"Description"
  1. S DGMSG(DGCNT+5)=DGLINE
  1. S DGMSG(DGCNT+6)=""
  1. ;
  1. S DGNAME="",DGCNT=DGCNT+6
  1. F S DGNAME=$O(@DGXTMP@("ERROR",DGNAME)) Q:DGNAME']"" D
  1. . S DFN1=$P($G(@DGXTMP@("ERROR",DGNAME)),U,2)
  1. . S DGTEXT=DGNAME_" ("_$$LAST4(DFN1)_")"
  1. . S DGTAB=36-$L(DGTEXT)
  1. . S DGMSG(DGCNT)=DGTEXT_$E(DGSPACE,1,DGTAB)_$P(@DGXTMP@("ERROR",DGNAME),U,1)
  1. . S DGCNT=DGCNT+1,DGFOUND=1
  1. I '$G(DGFOUND) S DGMSG(DGCNT)="No other errors found",DGMSG(DGCNT+1)="",DGCNT=DGCNT+5
  1. FIN ;
  1. S DGSUBJ=$S($G(DGRUN)="R":"Pre-report ",$G(DGRUN)="P":"Processed ",1:"")_"National Flag Create "
  1. D SENDMSG(.DGMSG,DGSUBJ)
  1. Q
  1. ;
  1. LAST4(DFN) ; Get the SSN last four
  1. N VA
  1. ;
  1. D PID^VADPT6
  1. Q VA("BID")
  1. ;
  1. SENDMSG(DGBODY,DGSUBJ) ; Send report to mail group
  1. N XMTO,XMSUBJ,XMBODY,XMDUZ,XMINSTR
  1. ;
  1. S XMSUBJ=$S($G(DGSUBJ)]"":DGSUBJ,1:"National Flag Create ")
  1. S XMTO("G.DGPF CLINICAL HR FLAG REVIEW")=""
  1. S XMSUBJ=XMSUBJ_$$FMTE^XLFDT($$NOW^XLFDT(),"2M")
  1. S XMBODY="DGBODY"
  1. S XMDUZ=DUZ
  1. S XMINSTR("FLAGS")="P"
  1. S XMINSTR("FROM")="HRMH PRF GENERATE JOB"
  1. D SENDMSG^XMXAPI(XMDUZ,XMSUBJ,XMBODY,.XMTO,.XMINSTR)
  1. Q
  1. ;
  1. SNDERR(DGERR,DGPFIEN,DGASGN) ; Send error message notification
  1. N XMTO,XMSUBJ,XMBODY,XMDUZ,DGMSG
  1. ;
  1. S DGMSG(10)="The following error/issue occurred during"
  1. S DGMSG(12)="the Local to National PRF processing:"
  1. S DGMSG(14)=""
  1. S DGMSG(16)=" "_$P(DGERR,U,2)
  1. S DGMSG(18)=""
  1. S DGMSG(20)=" Patient: "_$P(DGASGN("DFN"),U,2)
  1. S DGMSG(22)=" PRF Assignment Entry: "_DGPFIEN
  1. ;
  1. S XMTO("G.DGPF CLINICAL HR FLAG REVIEW")=""
  1. S XMSUBJ="PRF L2N Processing Issue"_$$FMTE^XLFDT($$NOW^XLFDT(),"2M")
  1. S XMBODY="DGMSG"
  1. S XMDUZ=DUZ
  1. D SENDMSG^XMXAPI(XMDUZ,XMSUBJ,XMBODY,.XMTO)
  1. Q