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

AGSS0.m

Go to the documentation of this file.
  1. AGSS0 ; IHS/ASDS/EFG - PROCESS NPIRS/SSA SUBMITTALS APR 14,1995 ;
  1. ;;7.1;PATIENT REGISTRATION;;AUG 25,2005
  1. ;
  1. PROC ;EP - start processing
  1. K ^AGSSTEMP(AGSSITE)
  1. BY ;bypass
  1. D OPEN^%ZISH("SSNFILE",AGSSPATH,AGSSHFL,"R")
  1. I POP D Q
  1. .S ^AGSSTEMP(AGSSITE,0,"NOPEN")=1
  1. .I '$D(ZTQUEUED) W !!,*7,"Could not open file.",!
  1. S AGSSFIO=IO
  1. PROCESS ;>PROCESS RECORDS
  1. K ^AGSSTEMP(AGSSITE,0,"STOP") ;external flag for stopping
  1. S AGSITE=$P(^AUTTSITE(1,0),"^")
  1. S ^AGSSTEMP(AGSSITE,0,"1ST-BEGIN-TIME")=$G(^AGSSTEMP(AGSSITE,0,"BEGIN-TIME"))
  1. S ^AGSSTEMP(AGSSITE,0,"1ST-LAST-RECORD")=$G(^AGSSTEMP(AGSSITE,0,"LAST-RECORD"))
  1. S AGSBGTM=$H,^AGSSTEMP(AGSSITE,0,"BEGIN-TIME")=$H
  1. S AGSSC=+$G(^AGSSTEMP(AGSSITE,0,"LAST-RECORD"))
  1. D COUNT
  1. S AGSSRA=$G(^AGSSTEMP(AGSSITE,"TOT","RA"))
  1. S AGSSRV=$G(^AGSSTEMP(AGSSITE,"TOT","RV"))
  1. S AGSSRD=$G(^AGSSTEMP(AGSSITE,"TOT","RD"))
  1. S AGSSRN=$G(^AGSSTEMP(AGSSITE,"TOT","RN"))
  1. S AGSSRP=$G(^AGSSTEMP(AGSSITE,"TOT","RP"))
  1. S AGSSRR=$G(^AGSSTEMP(AGSSITE,"TOT","RR"))
  1. S AGSSRX=$G(^AGSSTEMP(AGSSITE,"TOT","RX"))
  1. I $D(AGSS("NORUN")) G ENDPROC ;skip processing (SET MANUALLY) BEFORE STARTING
  1. LOOP ;loop through host file
  1. F D Q:$$STATUS^%ZISH!($D(^AGSSTEMP(AGSSITE,0,"STOP")))
  1. .U AGSSFIO R AGSCREC Q:$$STATUS^%ZISH
  1. .Q:$D(^AGSSTEMP(AGSSITE,0,"STOP"))
  1. .S AGSSC=+$G(AGSSC)+1
  1. .Q:AGSSC<$G(^AGSSTEMP(AGSSITE,0,"LAST-RECORD"))
  1. .D ^AGSS1
  1. .S ^AGSSTEMP(AGSSITE,0,"LAST-RECORD")=AGSSC
  1. .S ^AGSSTEMP(AGSSITE,0,"CURRENT-TIME")=$H
  1. .Q:$D(ZTQUEUED)
  1. .U IO(0)
  1. .I '(AGSSC#100) W "."
  1. .I '(AGSSC#1000) W AGSSC D DISP^AGSSM W !
  1. S ^AGSSTEMP(AGSSITE,0,"END-PROCESS")=$H
  1. D ^AGSSDEL ;> Process AGPATCH | DEL RECORDS | To NPIRS
  1. S ^AGSSTEMP(AGSSITE,0,"END-DELTRAN")=$H
  1. ENDPROC ;
  1. S:$D(ZTQUEUED) XBFQ=1
  1. Q
  1. PRINT ;EP PRINT report of processing SSA SSNs
  1. D COUNT
  1. S AGHDDR="Report for SSA SSN Matching Application" D AGSSHDR
  1. I $D(AGSS("NORUN")) W !,"NO RUN SET SO ... NO REPORT",! Q
  1. S AGSSRTOT=$G(^AGSSTEMP(AGSSITE,0,"LAST-RECORD"))
  1. S ^AGSSTEMP(AGSSITE,"TOT","RR")=AGSSRTOT-^AGSSTEMP(AGSSITE,"TOT")
  1. W !,"Records Processed from NPIRS/SSA ",?40,AGSSRTOT
  1. S (AGSSBGT,%H)=$G(^AGSSTEMP(AGSSITE,0,"BEGIN-TIME")) D YX^%DTC
  1. W !,"Starting Time",?40,Y
  1. S (AGSSFNT,%H)=$G(^AGSSTEMP(AGSSITE,0,"END-DELTRAN")) D YX^%DTC
  1. W !,"Ending Time",?40,Y
  1. S AGSSDAY=(AGSSFNT/1)-(AGSSBGT/1)*24*60*60,AGSSSEC=AGSSDAY+($P(AGSSFNT,",",2))-($P(AGSSBGT,",",2)),AGSSMIN=AGSSSEC\60
  1. W !,"Processing Time",?50,AGSSMIN," minutes"
  1. W !!!,?2,"""A"" SSNs ADDED",?50,$J(^AGSSTEMP(AGSSITE,"TOT","RA"),8)
  1. W !!,?2,"""V"" SSNs VERIFIED",?50,$J(^AGSSTEMP(AGSSITE,"TOT","RV"),8)
  1. W !!,?2,"""N"" SSN NUMBERS differ but DATA agrees",?50,$J(^AGSSTEMP(AGSSITE,"TOT","RN"),8)
  1. W !!,?2,"""D"" DATA differs but SSN NUMBERS agree,",?50,$J(^AGSSTEMP(AGSSITE,"TOT","RD"),8)
  1. W !!,?2,"""P"" Possible SSNs for patients with a match",?50,$J(^AGSSTEMP(AGSSITE,"TOT","RP"),8)
  1. W !,?2,"to NPIRS HRN but either Name or DOB differs"
  1. W !!,?2,"DELETES sent to NPIRS",?50,$J(^AGSSTEMP(AGSSITE,"TOT","DEL"),8)
  1. W !!,?2,"""O"" Other",?50,$J(^AGSSTEMP(AGSSITE,"TOT","RR"),8),!
  1. I '$D(ZTQUEUED) U IO(0) K DIR S DIR(0)="E" D ^DIR K DIR
  1. Q
  1. EXIT ;
  1. D ^%ZISC
  1. S AGK="AG" F S AGK=$O(@AGK) Q:((AGK="")!($E(AGK,1,2)'="AG")) I AGK'="AGK" K @AGK
  1. K AG,AGK
  1. Q
  1. AGSSPG ;EP PAGE HANDLER
  1. Q:($Y<(IOSL-4))!($G(DOUT)!$G(DFOUT)) S:'$D(AGSSPG) AGSSPG=0 S AGSSPG=AGSSPG+1 I $E(IOST)="C" R !,"^ to quit ",X:DTIME I $E(X)="^" S DOUT=1,DFOUT=1 Q
  1. AGSSHDR ;EP PAGE HEADER HANDLER
  1. W !,@IOF Q:'$D(AGSSHDR) S:'$D(AGSSLINE) $P(AGSSLINE,"-",IOM-2)="" S:'$D(AGSSPG) AGSSPG=1 I '$D(AGSSDT) D DT^DICRW S Y=DT D DD^%DT S AGSSDT=Y
  1. W ?(IOM-20-$L(AGSSHDR)/2),AGSSHDR,?(IOM-25),AGSSDT,?(IOM-10),"PAGE: ",AGSSPG,!,AGSSLINE
  1. EAGSSPG Q
  1. STOP ;EP to stop background processing
  1. S ^AGSSTEMP(AGSSITE,0,"STOP")=1
  1. Q
  1. COUNT ;count up entries
  1. F I="RA","RV","RN","RD","RP","RX","DEL" D
  1. .Q:$G(^AGSSTEMP(AGSSITE,"TOT",I))
  1. .S AGSSCNT=0
  1. .S J=0
  1. .F S J=$O(^AGSSTEMP(AGSSITE,I,J)) Q:'J D
  1. ..S AGSSCNT=AGSSCNT+1
  1. .S ^AGSSTEMP(AGSSITE,"TOT",I)=AGSSCNT
  1. .S ^AGSSTEMP(AGSSITE,"TOT")=+$G(^AGSSTEMP(AGSSITE,"TOT"))+AGSSCNT
  1. Q