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

AGLSSN.m

Go to the documentation of this file.
  1. AGLSSN ; IHS/ASDS/EFG - LISTING OF PATIENTS W/O SSN ;
  1. ;;7.1;PATIENT REGISTRATION;;AUG 25,2005
  1. ;
  1. ;This routine will go through VA Patient file, looking for people with
  1. ;no SSN
  1. ;
  1. PTS ;
  1. S DIR(0)="Y"
  1. S DIR("A",1)="Unless specified, ONLY ACTIVE PATIENTS will be included."
  1. S DIR("A")="Do you want to include inactive/deceased patients?"
  1. S DIR("B")="N"
  1. D ^DIR K DIR
  1. S AGPTS=Y
  1. Q:$D(DUOUT)!$D(DTOUT)!$D(DFOUT)
  1. ;
  1. W1 W !!! S %ZIS="Q",%ZIS("B")="" D ^%ZIS G:'$D(IO)!(POP) QUIT
  1. S AG("ION")=ION G:$D(IO("Q")) QUE G PROC
  1. PRQUE ;ENTER FROM TASK MANAGER
  1. PROC ;
  1. K ^TMP($J)
  1. S AGBM=IOSL-10
  1. D NOW^%DTC
  1. S Y=X
  1. D DD^%DT
  1. S AGDATE=Y
  1. S D0=0
  1. F S D0=$O(^DPT(D0)) Q:D0="" D
  1. .;check active/inactive/deleted
  1. .S AGNONACT=$P($G(^AUPNPAT(D0,41,DUZ(2),0)),U,3)
  1. .S AGDEC=$P($G(^DPT(D0,.35)),U)
  1. .I AGPTS="0",$G(AGNONACT)'=""!($G(AGDEC)'="") Q
  1. .;check for ssn
  1. .S AGSSN=+$P($G(^DPT(D0,0)),U,9)
  1. .I $G(AGSSN)=0 D
  1. ..S AGREASON=$P($G(^AUPNPAT(D0,0)),U,24)
  1. ..S AGNAME=$P($G(^DPT(D0,0)),U)
  1. ..S AGDOB=$P($G(^DPT(D0,0)),U,3)
  1. ..S AGHRN=$P($G(^AUPNPAT(D0,41,DUZ(2),0)),U,2)
  1. ..Q:AGHRN=""
  1. ..S:AGDOB="" AGDOB="NONE"
  1. ..S AGREASON=$S(AGREASON=1:"NOT AVAILABLE",AGREASON=2:"PATIENT REFUSED",AGREASON=3:"PATIENT WILL SUBMIT",1:"REASON FOR NO SSN NOT YET ENTERED")
  1. ..Q:AGNAME=""
  1. ..S ^TMP($J,AGREASON,AGNAME,AGHRN,AGDOB)=""
  1. WRITE ;
  1. K AGRECS
  1. S AGPAGE=1
  1. S AGRECS=0
  1. S AGFLAG=0
  1. D HDR
  1. S (AGREASON,AGNAME,AGHRN,AGDOB,AGEND)=""
  1. F S AGREASON=$O(^TMP($J,AGREASON)) Q:AGREASON="" D Q:AGEND
  1. .F S AGNAME=$O(^TMP($J,AGREASON,AGNAME)) Q:AGNAME="" D Q:AGEND
  1. ..F S AGHRN=$O(^TMP($J,AGREASON,AGNAME,AGHRN)) Q:AGHRN="" D Q:AGEND
  1. ...F S AGDOB=$O(^TMP($J,AGREASON,AGNAME,AGHRN,AGDOB)) Q:AGDOB="" D Q:AGEND
  1. ....S AGR=AGREASON
  1. ....S Y=AGDOB
  1. ....D DD^%DT
  1. ....S AGD=Y
  1. ....W !,AGR,?35,AGNAME,?59,AGHRN,?67,AGD
  1. ....S AGRECS=AGRECS+1
  1. ....I $Y>AGBM D
  1. .....D RTRN^AG
  1. .....I $D(DUOUT)!$D(DTOUT)!$D(DTOUT) S AGEND=1 G END
  1. .....D HDR
  1. I 'AGEND D END
  1. Q
  1. HDR U IO I IOST["C" W $$S^AGVDF("IOF")
  1. D CPI^AG ;Conf. patient info thing
  1. W !,?64,AGDATE
  1. W !,?5,$P(^AUTTLOC(DUZ(2),0),U,2),?27,"LISTING OF PATIENTS W/O SSN",?70,"PAGE ",AGPAGE
  1. W !,"REASON FOR NO SSN",?35,"NAME",?59,"HRN",?67,"DOB",!
  1. F X=1:1:80 W "="
  1. S AGPAGE=AGPAGE+1
  1. Q
  1. END ;
  1. W !!,"TOTAL PEOPLE LACKING SSN: ",AGRECS
  1. K ^TMP($J)
  1. K AGREASON,AGNAME,AGHRN,AGDOB
  1. K AGSSN,D0,AGPTS,AGRECS
  1. K AGBM,AGD,AGDATE,AGDEC,AGFLAG,AGIEN,AGMVDF,AGNONACT,AGPAGE,AGR
  1. QUIT D ^%ZISC K AG
  1. Q
  1. QUE K IO("Q") S ZTRTN="PRQUE^AGLSSN",ZTDESC="LISTING OF PATIENTS W/O SSN-QUE" F AG="AG(""ION"")" S ZTSAVE("AG*")=""
  1. D ^%ZTLOAD W:$D(ZTSK) !,"REQUEST QUEUED!",!,"#",ZTSK G QUIT