ANRVRP3 ;BIRM/LDT - VIST CITY LIST ; 05 Aug 98 / 2:16 PM
;;4.0; Visual Impairment Service Team ;**1**;12 Jun 98
EN1 ;Entry point for City List
K ANRVLP W @IOF,!!,"SORT BY CITY",!!
D SEL I '$D(ANRVLP),SEL'="A" G QUIT
DEV K %ZIS,IOP S %ZIS="QM",%ZIS("B")="" D ^%ZIS I POP W !,"NO DEVICE SELECTED OR REPORT PRINTED!!" G QUIT
I $D(IO("Q")) K IO("Q") S ZTDESC="VIST ROSTER LIST BY CITY",ZTRTN="DEQ^ANRVRP3" S:$D(ANRVLP) ZTSAVE("ANRVLP(")="" S:$D(SEL) ZTSAVE("SEL")=""
I D ^%ZTLOAD K ZTSK G QUIT
U IO
DEQ ;Entry point when queued.
K ^TMP("ANRV",$J)
S ANRVP=0 F S ANRVP=$O(^ANRV(2040,ANRVP)) Q:'ANRVP I $P($G(^ANRV(2040,ANRVP,13)),U,2)'="I" S DFN=$P($G(^ANRV(2040,ANRVP,0)),U) D 4^VADPT,SETTMP
S HDR="VIST ROSTER LIST BY CITY"
S (PG,QFLG)=0,$P(LN,"-",81)="",$P(LN2,"-",33)="" D NOW^%DTC S Y=$E(%,1,12) X ^DD("DD") S HDT=Y D HDR
I '$D(^TMP("ANRV",$J)) W !,"NO DATA TO PRINT!" G QUIT
D REPORT
;
QUIT K %,%H,%I,%T,%Y,ANRVP,ANRV,ANRVLP,CITY,CITY2,DFN,HDR,HDT,LN,LN2,NAME,PG,POP,QFLG,SEL,SUB,SUBCNT,TOTAL,X,Y,XX,DTOUT,DUOUT,DIRUT,^TMP("ANRV",$J) D KVAR^VADPT,KVA^VADPT
W:$E(IOST)'="C" @IOF D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
Q
;
SETTMP ;Set ^TMP for report
I $D(ANRVLP),VAPA(4)]"",$D(ANRVLP(VAPA(4))) S ^TMP("ANRV",$J,VAPA(4),VADM(1))=VADM(1)_U_$P(VADM(2),U,2)_U_VAPA(4)
I $D(SEL),SEL="A" S SUB=$S(VAPA(4)]"":VAPA(4),1:"zzz"),^TMP("ANRV",$J,SUB,VADM(1))=VADM(1)_U_$P(VADM(2),U,2)_U_VAPA(4)
Q
;
HDR ;Report header
I $E(IOST)="C",PG>0 S DIR(0)="E" D ^DIR K DIR I 'Y S QFLG=1 Q
S PG=PG+1 W:$Y!($E(IOST)="C") @IOF Q:(PG>1)&($E(IOST)="C") W !,HDR,?45,"Printed ",HDT,?72,"Page ",PG,!!,"NAME",?27,"SSN",?47,"CITY",!,LN
Q
;
REPORT ;Print Report
S (NAME,CITY,CITY2)="",(TOTAL,SUBCNT)=0 F S CITY=$O(^TMP("ANRV",$J,CITY)) Q:CITY="" F S NAME=$O(^TMP("ANRV",$J,CITY,NAME)) Q:NAME="" D
.Q:QFLG D:$Y+5>IOSL HDR Q:QFLG I CITY'=CITY2,CITY2]"" W !?47,LN2,!,"Subcount",?50,$J(SUBCNT,4),! S SUBCNT=0
.F XX=1:1:3 S ANRV(XX)=$P($G(^TMP("ANRV",$J,CITY,NAME)),U,XX)
.Q:QFLG D:$Y+5>IOSL HDR Q:QFLG W !,ANRV(1),?27,ANRV(2),?47,$S(ANRV(3)]"":ANRV(3),1:"NONE") S TOTAL=TOTAL+1,SUBCNT=SUBCNT+1
.S CITY2=CITY
Q:QFLG W:NAME="" !?47,LN2,!,"Subcount",?50,$J(SUBCNT,4) W !?47,LN2,!,"Count",?50,$J(TOTAL,4)
Q
SEL W !!,"Do you want the report to list:",!?3,"(A)ll cities or",!?3,"(S)elect city/cities",!!
S DIR(0)="SAOBM^A:ALL;S:SELECTED",DIR("A")="Choose A or S: ",DIR("?")="^D HELPSEL^ANRVRP3" D ^DIR K DIR
S SEL=Y I SEL="A" Q
S:SEL="" SEL="^" G:SEL="^" QUIT2
W !
ASKCTY S DIR(0)="FAO^2:15",DIR("A")="Select CITY NAME: " D ^DIR K DIR
I Y]"",Y'="^" D SETLP G ASKCTY
QUIT2 K:SEL="^"!(SEL="") %,DIR,X,Y Q
SETLP I Y?1U.E S ANRVLP($TR(Y,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"))="",ANRVLP($TR($E(Y,1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")_$E(Y,2,15))=""
I Y?1L.E S ANRVLP($TR(Y,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"))="",ANRVLP($TR($E(Y,1),"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")_$E(Y,2,15))=""
I Y?1U.E S ANRVLP($E(Y)_($TR($E(Y,2,15),"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")))="",ANRVLP($TR(Y,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz"))=""
S ANRVLP(Y)=""
Q
HELPSEL ;
W !!,"Enter:",!?3,"""A"" to list patients for ALL cities from the VIST ROSTER file.",!?3,"""S"" to select only a specific city or cities.",!?3,"""^"" or <return> to halt." Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HANRVRP3 3411 printed Nov 22, 2024@17:55:48 Page 2
ANRVRP3 ;BIRM/LDT - VIST CITY LIST ; 05 Aug 98 / 2:16 PM
+1 ;;4.0; Visual Impairment Service Team ;**1**;12 Jun 98
EN1 ;Entry point for City List
+1 KILL ANRVLP
WRITE @IOF,!!,"SORT BY CITY",!!
+2 DO SEL
IF '$DATA(ANRVLP)
IF SEL'="A"
GOTO QUIT
DEV KILL %ZIS,IOP
SET %ZIS="QM"
SET %ZIS("B")=""
DO ^%ZIS
IF POP
WRITE !,"NO DEVICE SELECTED OR REPORT PRINTED!!"
GOTO QUIT
+1 IF $DATA(IO("Q"))
KILL IO("Q")
SET ZTDESC="VIST ROSTER LIST BY CITY"
SET ZTRTN="DEQ^ANRVRP3"
if $DATA(ANRVLP)
SET ZTSAVE("ANRVLP(")=""
if $DATA(SEL)
SET ZTSAVE("SEL")=""
+2 IF $TEST
DO ^%ZTLOAD
KILL ZTSK
GOTO QUIT
+3 USE IO
DEQ ;Entry point when queued.
+1 KILL ^TMP("ANRV",$JOB)
+2 SET ANRVP=0
FOR
SET ANRVP=$ORDER(^ANRV(2040,ANRVP))
if 'ANRVP
QUIT
IF $PIECE($GET(^ANRV(2040,ANRVP,13)),U,2)'="I"
SET DFN=$PIECE($GET(^ANRV(2040,ANRVP,0)),U)
DO 4^VADPT
DO SETTMP
+3 SET HDR="VIST ROSTER LIST BY CITY"
+4 SET (PG,QFLG)=0
SET $PIECE(LN,"-",81)=""
SET $PIECE(LN2,"-",33)=""
DO NOW^%DTC
SET Y=$EXTRACT(%,1,12)
XECUTE ^DD("DD")
SET HDT=Y
DO HDR
+5 IF '$DATA(^TMP("ANRV",$JOB))
WRITE !,"NO DATA TO PRINT!"
GOTO QUIT
+6 DO REPORT
+7 ;
QUIT KILL %,%H,%I,%T,%Y,ANRVP,ANRV,ANRVLP,CITY,CITY2,DFN,HDR,HDT,LN,LN2,NAME,PG,POP,QFLG,SEL,SUB,SUBCNT,TOTAL,X,Y,XX,DTOUT,DUOUT,DIRUT,^TMP("ANRV",$JOB)
DO KVAR^VADPT
DO KVA^VADPT
+1 if $EXTRACT(IOST)'="C"
WRITE @IOF
DO ^%ZISC
if $DATA(ZTQUEUED)
SET ZTREQ="@"
+2 QUIT
+3 ;
SETTMP ;Set ^TMP for report
+1 IF $DATA(ANRVLP)
IF VAPA(4)]""
IF $DATA(ANRVLP(VAPA(4)))
SET ^TMP("ANRV",$JOB,VAPA(4),VADM(1))=VADM(1)_U_$PIECE(VADM(2),U,2)_U_VAPA(4)
+2 IF $DATA(SEL)
IF SEL="A"
SET SUB=$SELECT(VAPA(4)]"":VAPA(4),1:"zzz")
SET ^TMP("ANRV",$JOB,SUB,VADM(1))=VADM(1)_U_$PIECE(VADM(2),U,2)_U_VAPA(4)
+3 QUIT
+4 ;
HDR ;Report header
+1 IF $EXTRACT(IOST)="C"
IF PG>0
SET DIR(0)="E"
DO ^DIR
KILL DIR
IF 'Y
SET QFLG=1
QUIT
+2 SET PG=PG+1
if $Y!($EXTRACT(IOST)="C")
WRITE @IOF
if (PG>1)&($EXTRACT(IOST)="C")
QUIT
WRITE !,HDR,?45,"Printed ",HDT,?72,"Page ",PG,!!,"NAME",?27,"SSN",?47,"CITY",!,LN
+3 QUIT
+4 ;
REPORT ;Print Report
+1 SET (NAME,CITY,CITY2)=""
SET (TOTAL,SUBCNT)=0
FOR
SET CITY=$ORDER(^TMP("ANRV",$JOB,CITY))
if CITY=""
QUIT
FOR
SET NAME=$ORDER(^TMP("ANRV",$JOB,CITY,NAME))
if NAME=""
QUIT
Begin DoDot:1
+2 if QFLG
QUIT
if $Y+5>IOSL
DO HDR
if QFLG
QUIT
IF CITY'=CITY2
IF CITY2]""
WRITE !?47,LN2,!,"Subcount",?50,$JUSTIFY(SUBCNT,4),!
SET SUBCNT=0
+3 FOR XX=1:1:3
SET ANRV(XX)=$PIECE($GET(^TMP("ANRV",$JOB,CITY,NAME)),U,XX)
+4 if QFLG
QUIT
if $Y+5>IOSL
DO HDR
if QFLG
QUIT
WRITE !,ANRV(1),?27,ANRV(2),?47,$SELECT(ANRV(3)]"":ANRV(3),1:"NONE")
SET TOTAL=TOTAL+1
SET SUBCNT=SUBCNT+1
+5 SET CITY2=CITY
End DoDot:1
+6 if QFLG
QUIT
if NAME=""
WRITE !?47,LN2,!,"Subcount",?50,$JUSTIFY(SUBCNT,4)
WRITE !?47,LN2,!,"Count",?50,$JUSTIFY(TOTAL,4)
+7 QUIT
SEL WRITE !!,"Do you want the report to list:",!?3,"(A)ll cities or",!?3,"(S)elect city/cities",!!
+1 SET DIR(0)="SAOBM^A:ALL;S:SELECTED"
SET DIR("A")="Choose A or S: "
SET DIR("?")="^D HELPSEL^ANRVRP3"
DO ^DIR
KILL DIR
+2 SET SEL=Y
IF SEL="A"
QUIT
+3 if SEL=""
SET SEL="^"
if SEL="^"
GOTO QUIT2
+4 WRITE !
ASKCTY SET DIR(0)="FAO^2:15"
SET DIR("A")="Select CITY NAME: "
DO ^DIR
KILL DIR
+1 IF Y]""
IF Y'="^"
DO SETLP
GOTO ASKCTY
QUIT2 if SEL="^"!(SEL="")
KILL %,DIR,X,Y
QUIT
SETLP IF Y?1U.E
SET ANRVLP($TRANSLATE(Y,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"))=""
SET ANRVLP($TRANSLATE($EXTRACT(Y,1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")_$EXTRACT(Y,2,15))=""
+1 IF Y?1L.E
SET ANRVLP($TRANSLATE(Y,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"))=""
SET ANRVLP($TRANSLATE($EXTRACT(Y,1),"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")_$EXTRACT(Y,2,15))=""
+2 IF Y?1U.E
SET ANRVLP($EXTRACT(Y)_($TRANSLATE($EXTRACT(Y,2,15),"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")))=""
SET ANRVLP($TRANSLATE(Y,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz"))=""
+3 SET ANRVLP(Y)=""
+4 QUIT
HELPSEL ;
+1 WRITE !!,"Enter:",!?3,"""A"" to list patients for ALL cities from the VIST ROSTER file.",!?3,"""S"" to select only a specific city or cities.",!?3,"""^"" or <return> to halt."
QUIT