NURAR11A ;HIRMFO/MD-COMPARISON REPORT BY LOCATION ;7/10/97
;;4.0;NURSING SERVICE;**2,32**;Apr 25, 1997
S X=$G(^DIC(213.9,1,"OFF")) Q:X=""!(X=1)
S (NURQUEUE,NUROUT)=0
D EN1^NURSAUTL G QUIT:NUROUT
I $G(NURMDSW) W ! S DIC(0)="AEQZ",NURPLSCR=1 D EN5^NURSAGSP K NURPLSCR G:$G(NUROUT) QUIT
I '$G(NURMDSW),$G(NURPLSW) S NURPLSCR=1 D PRD^NURSAGSP K NURPLSCR G:(NUROUT) QUIT
W ! D EN1^NURSAGSP G:$G(NUROUT) QUIT
W ! S:NURHOSP NWRD=""
S ZTRTN="START^NURAR11A" D EN7^NURSUT0 G:POP!($D(ZTSK)) QUIT
START ;
K ^TMP("NURA",$J)
W ! I 'NURHOSP S NURSX="" F S NURSX=$O(NURSNLOC(NURSX)) Q:NURSX="" S NWRD=0 F S NWRD=$O(NURSNLOC(NURSX,NWRD)) Q:NWRD'>0 D:$S('$D(^NURSF(211.4,NWRD,"I")):1,$P(^("I"),"^")="A":1,1:0) GETNODE
I NURHOSP F NWRD=0:0 S NWRD=$O(^NURSF(211.4,NWRD)) Q:NWRD'>0 D:$S('$D(^NURSF(211.4,NWRD,"I")):1,$P(^("I"),"^")="A":1,1:0) GETNODE
I NURSZAP=7 D
. S NPWARD=$O(NURSZLO(0)) D EN6^NURSAUTL
. S Z=$O(^TMP("NURA",$J,Z)) Q:Z="" S X="" F Y=0:0 S X=$O(^TMP("NURA",$J,Z,X)) Q:X="" K:$S(NPWARD="":1,'(X=NPWARD):1,1:0) ^TMP("NURA",$J,Z,X)
. K X,Y Q
. Q
S (NURQUIT,NURSW1,NURPAGE,NAFTE,NTOTA,NTOTB,NTRB,NTRA,NTRAT,NTLB,NTLA,NTLAT,NTNA,NTNB,NTNAT,NTCA,NTCB,NTCAT,NTAA,NTAB,NTAAT,NTOA,NTOB,NTOAT)=0
U IO D EN1^NURAR110 W !
QUIT K ^TMP("NURA",$J) D CLOSE^NURSUT1,^NURAKILL
Q
GETNODE ;
S NPWARD=NWRD D EN6^NURSAUTL S NL1=NPWARD,NO=$S('$D(^NURSF(211.4,NWRD,0)):"",$P(^(0),"^")'="":$P(^(0),"^"),1:"") Q:NL1="MASONLY"!(NL1="MAS ONLY")
I NURMDSW S NURFAC(2)=$$EN12^NURSUT3($G(NWRD)) Q:$G(NURFAC(2))=""
E S NURFAC(2)=" BLANK"
I NURPLSW S X=+$P($G(^NURSF(211.4,NWRD,1)),U,4),NURPROG(2)=$S($$GET1^DIQ(212.7,X,.01,"I")'="":$$GET1^DIQ(212.7,X,.01,"I"),1:" BLANK")
E S NURPROG(2)=" BLANK"
I NURMDSW,'$G(NURFAC),$G(NURFAC(1))'=" BLANK" Q:NURFAC(1)'=NURFAC(2)
I NURPLSW,'$G(NURPROG),$G(NURPROG(2))'=" BLANK",$G(NURPROG(1))'="" Q:NURPROG(1)'=NURPROG(2)
S:NURPROG(2)["NURSING" NURPROG(2)=" "_NURPROG(2) S ^TMP("NURA",$J,NURFAC(2),NURPROG(2),NL1)=""
S NL1(0)=2,NL1(1)=1,SW=0 F NOD=0:0 S NOD=$O(^NURSF(211.8,"B",NO,NOD)) Q:NOD="" D S NL1(0)=NL1(0)+2,NL1(1)=NL1(1)+2,SW=0
. S $P(^TMP("NURA",$J,NURFAC(2),NURPROG(2),NL1),"^",NL1(1))=$S('$D(^NURSF(211.8,NOD,0)):0,$P(^(0),"^",2)'="":$P(^(0),"^",2)_"^"_$$BUDCAT^NURSUT1(NOD),1:0)
. I $D(^NURSF(211.8,NOD,0)) D GET2 S DA=0 F S DA=$O(^NURSF(211.8,NOD,1,DA)) Q:DA'>0 I $D(^NURSF(211.8,NOD,1,DA,0)),$P(^(0),"^")'>DT,'+$P(^(0),"^",6)!'(+$P(^(0),"^",6)<DT) D I 'SW D GET7
. . S Z=$O(^NURSF(210,"B",+$P(^NURSF(211.8,NOD,1,DA,0),U,2),0)),SW=$S(Z="":1,$P($G(^NURSF(210,Z,0)),U,2)'="A":1,1:0)
. . Q
. Q
Q
GET2 S (Y,NBFTE,NAFTE)=0 F S Y=$O(^NURSF(211.8,NOD,2,"B",Y)) Q:Y'>0 D
. S NURZ=0 F S NURZ=$O(^NURSF(211.8,NOD,2,"B",Y,NURZ)) Q:NURZ'>0 S:$D(^NURSF(211.8,NOD,2,NURZ,0)) NBFTE=$P(^(0),"^",2),NPOS=$S($P(^(0),"^")'="":$P(^(0),"^"),1:"")
. D GOT S NBFTE=0
Q
GET7 S NPOS="",NAFTE=0,NDATA=^NURSF(211.8,NOD,1,DA,0),Z=$P(NDATA,"^",2) S:+Z Y=$O(^NURSF(210,"B",Z,0)) Q:'+Z!('Y) S NPOS=$P(NDATA,"^",3),NAFTE=$P(NDATA,"^",4)
GOT S X=NPOS,NPOS=$S(NPOS="":"",'$D(^NURSF(211.3,NPOS,0)):"",1:$P(^(0),"^",2)),NPRI="" S:X NPRI=$S($D(^NURSF(211.3,X,0))&$P(^(0),"^",3)'="":$P(^(0),"^",3),1:""),NPO=$S($P(^(0),"^",5)'="":$P(^(0),"^",5),1:"")
Q:NPRI="" S:NPOS="" NPOS=$P(IOM," ",1,30)
I $D(^TMP("NURA",$J,NURFAC(2),NURPROG(2),NL1,NPRI)) S:$P(^(NPRI),"^",3)="" $P(^(NPRI),"^",3)=0 S $P(^(NPRI),"^",3)=$P(^(NPRI),"^",3)+NAFTE Q
S ^TMP("NURA",$J,NURFAC(2),NURPROG(2),NL1,NPRI)=NPO_";"_NPOS_"^"_NBFTE_"^"_NAFTE
Q
NURAR11A ;HIRMFO/MD-COMPARISON REPORT BY LOCATION ;7/10/97
+1 ;;4.0;NURSING SERVICE;**2,32**;Apr 25, 1997
+2 SET X=$GET(^DIC(213.9,1,"OFF"))
IF X=""!(X=1)
QUIT
+3 SET (NURQUEUE,NUROUT)=0
+4 DO EN1^NURSAUTL
IF NUROUT
GOTO QUIT
+5 IF $GET(NURMDSW)
WRITE !
SET DIC(0)="AEQZ"
SET NURPLSCR=1
DO EN5^NURSAGSP
KILL NURPLSCR
IF $GET(NUROUT)
GOTO QUIT
+6 IF '$GET(NURMDSW)
IF $GET(NURPLSW)
SET NURPLSCR=1
DO PRD^NURSAGSP
KILL NURPLSCR
IF (NUROUT)
GOTO QUIT
+7 WRITE !
DO EN1^NURSAGSP
IF $GET(NUROUT)
GOTO QUIT
+8 WRITE !
IF NURHOSP
SET NWRD=""
+9 SET ZTRTN="START^NURAR11A"
DO EN7^NURSUT0
IF POP!($DATA(ZTSK))
GOTO QUIT
START ;
+1 KILL ^TMP("NURA",$JOB)
+2 WRITE !
IF 'NURHOSP
SET NURSX=""
FOR
SET NURSX=$ORDER(NURSNLOC(NURSX))
IF NURSX=""
QUIT
SET NWRD=0
FOR
SET NWRD=$ORDER(NURSNLOC(NURSX,NWRD))
IF NWRD'>0
QUIT
IF $SELECT('$DATA(^NURSF(211.4,NWRD,"I"))
DO GETNODE
+3 IF NURHOSP
FOR NWRD=0:0
SET NWRD=$ORDER(^NURSF(211.4,NWRD))
IF NWRD'>0
QUIT
IF $SELECT('$DATA(^NURSF(211.4,NWRD,"I"))
DO GETNODE
+4 IF NURSZAP=7
Begin DoDot:1
+5 SET NPWARD=$ORDER(NURSZLO(0))
DO EN6^NURSAUTL
+6 SET Z=$ORDER(^TMP("NURA",$JOB,Z))
IF Z=""
QUIT
SET X=""
FOR Y=0:0
SET X=$ORDER(^TMP("NURA",$JOB,Z,X))
IF X=""
QUIT
IF $SELECT(NPWARD=""
KILL ^TMP("NURA",$JOB,Z,X)
+7 KILL X,Y
QUIT
+8 QUIT
End DoDot:1
+9 SET (NURQUIT,NURSW1,NURPAGE,NAFTE,NTOTA,NTOTB,NTRB,NTRA,NTRAT,NTLB,NTLA,NTLAT,NTNA,NTNB,NTNAT,NTCA,NTCB,NTCAT,NTAA,NTAB,NTAAT,NTOA,NTOB,NTOAT)=0
+10 USE IO
DO EN1^NURAR110
WRITE !
QUIT KILL ^TMP("NURA",$JOB)
DO CLOSE^NURSUT1
DO ^NURAKILL
+1 QUIT
GETNODE ;
+1 SET NPWARD=NWRD
DO EN6^NURSAUTL
SET NL1=NPWARD
SET NO=$SELECT('$DATA(^NURSF(211.4,NWRD,0)):"",$PIECE(^(0),"^")'="":$PIECE(^(0),"^"),1:"")
IF NL1="MASONLY"!(NL1="MAS ONLY")
QUIT
+2 IF NURMDSW
SET NURFAC(2)=$$EN12^NURSUT3($GET(NWRD))
IF $GET(NURFAC(2))=""
QUIT
+3 IF '$TEST
SET NURFAC(2)=" BLANK"
+4 IF NURPLSW
SET X=+$PIECE($GET(^NURSF(211.4,NWRD,1)),U,4)
SET NURPROG(2)=$SELECT($$GET1^DIQ(212.7,X,.01,"I")'="":$$GET1^DIQ(212.7,X,.01,"I"),1:" BLANK")
+5 IF '$TEST
SET NURPROG(2)=" BLANK"
+6 IF NURMDSW
IF '$GET(NURFAC)
IF $GET(NURFAC(1))'=" BLANK"
IF NURFAC(1)'=NURFAC(2)
QUIT
+7 IF NURPLSW
IF '$GET(NURPROG)
IF $GET(NURPROG(2))'=" BLANK"
IF $GET(NURPROG(1))'=""
IF NURPROG(1)'=NURPROG(2)
QUIT
+8 IF NURPROG(2)["NURSING"
SET NURPROG(2)=" "_NURPROG(2)
SET ^TMP("NURA",$JOB,NURFAC(2),NURPROG(2),NL1)=""
+9 SET NL1(0)=2
SET NL1(1)=1
SET SW=0
FOR NOD=0:0
SET NOD=$ORDER(^NURSF(211.8,"B",NO,NOD))
IF NOD=""
QUIT
Begin DoDot:1
+10 SET $PIECE(^TMP("NURA",$JOB,NURFAC(2),NURPROG(2),NL1),"^",NL1(1))=$SELECT('$DATA(^NURSF(211.8,NOD,0)):0,$PIECE(^(0),"^",2)'="":$PIECE(^(0),"^",2)_"^"_$$BUDCAT^NURSUT1(NOD),1:0)
+11 IF $DATA(^NURSF(211.8,NOD,0))
DO GET2
SET DA=0
FOR
SET DA=$ORDER(^NURSF(211.8,NOD,1,DA))
IF DA'>0
QUIT
IF $DATA(^NURSF(211.8,NOD,1,DA,0))
IF $PIECE(^(0),"^")'>DT
IF '+$PIECE(^(0),"^",6)!'(+$PIECE(^(0),"^",6)<DT)
Begin DoDot:2
+12 SET Z=$ORDER(^NURSF(210,"B",+$PIECE(^NURSF(211.8,NOD,1,DA,0),U,2),0))
SET SW=$SELECT(Z="":1,$PIECE($GET(^NURSF(210,Z,0)),U,2)'="A":1,1:0)
+13 QUIT
End DoDot:2
IF 'SW
DO GET7
+14 QUIT
End DoDot:1
SET NL1(0)=NL1(0)+2
SET NL1(1)=NL1(1)+2
SET SW=0
+15 QUIT
GET2 SET (Y,NBFTE,NAFTE)=0
FOR
SET Y=$ORDER(^NURSF(211.8,NOD,2,"B",Y))
IF Y'>0
QUIT
Begin DoDot:1
+1 SET NURZ=0
FOR
SET NURZ=$ORDER(^NURSF(211.8,NOD,2,"B",Y,NURZ))
IF NURZ'>0
QUIT
IF $DATA(^NURSF(211.8,NOD,2,NURZ,0))
SET NBFTE=$PIECE(^(0),"^",2)
SET NPOS=$SELECT($PIECE(^(0),"^")'="":$PIECE(^(0),"^"),1:"")
+2 DO GOT
SET NBFTE=0
End DoDot:1
+3 QUIT
GET7 SET NPOS=""
SET NAFTE=0
SET NDATA=^NURSF(211.8,NOD,1,DA,0)
SET Z=$PIECE(NDATA,"^",2)
IF +Z
SET Y=$ORDER(^NURSF(210,"B",Z,0))
IF '+Z!('Y)
QUIT
SET NPOS=$PIECE(NDATA,"^",3)
SET NAFTE=$PIECE(NDATA,"^",4)
GOT SET X=NPOS
SET NPOS=$SELECT(NPOS="":"",'$DATA(^NURSF(211.3,NPOS,0)):"",1:$PIECE(^(0),"^",2))
SET NPRI=""
IF X
SET NPRI=$SELECT($DATA(^NURSF(211.3,X,0))&$PIECE(^(0),"^",3)'="":$PIECE(^(0),"^",3),1:"")
SET NPO=$SELECT($PIECE(^(0),"^",5)'="":$PIECE(^(0),"^",5),1:"")
+1 IF NPRI=""
QUIT
IF NPOS=""
SET NPOS=$PIECE(IOM," ",1,30)
+2 IF $DATA(^TMP("NURA",$JOB,NURFAC(2),NURPROG(2),NL1,NPRI))
IF $PIECE(^(NPRI),"^",3)=""
SET $PIECE(^(NPRI),"^",3)=0
SET $PIECE(^(NPRI),"^",3)=$PIECE(^(NPRI),"^",3)+NAFTE
QUIT
+3 SET ^TMP("NURA",$JOB,NURFAC(2),NURPROG(2),NL1,NPRI)=NPO_";"_NPOS_"^"_NBFTE_"^"_NAFTE
+4 QUIT