DGRUG16 ;ALB/BOK/MLI - RUG-II GROUPER ; 21 OCT 86  11:00
 ;;5.3;Registration;**89,1015**;Aug 13, 1993;Build 21
INPUT W ! S DIC="^DG(45.9,",DIC(0)="AEQMN",DIC("S")="I $S('$D(^DG(45.9,+Y,""C"")):1,$D(^DG(45.9,+Y,""C""))&(+^DG(45.9,+Y,""C"")=1!(+^(""C"")=5)):1,1:0)" D ^DIC K DIC G QUIT^DGRUG1:Y'>0
 S DIE="^DG(45.9,",DR="[DGRUG]",(DGPT,DA)=+Y,DGD=$P(^DG(45.9,DA,0),U,7) D ^DIE
 G:'$D(DA) QUIT^DGRUG1
SET W ! K DGFLAG,A,I S DGINFO=^DG(45.9,DA,0) F I=1:1:20,23:1:28,32:1:35,40:1:57 I $P(DGINFO,U,I)']"" W !,"The field ",$P(^DD(45.9,I,0),U,1)," is missing data." S DGFLAG=1,A(I)=I
 G:$D(DGFLAG) ERR
 I $P(DGINFO,U,14)=2&($P(DGINFO,U,40)<5) W !,*7,"If 'NASAL OR ENTERIC FEEDING' ",!," is marked 'Y'es then question 'EATING' must be marked '5'.",! F I=14,40 S A(I)=I S DGFLAG=1
 G:$D(DGFLAG) EDIT
 I $P(DGINFO,U,2) S DGFY=$S($E($P(DGINFO,U,2),4,5)<10:$E($P(DGINFO,U,2),2,3),1:$E($P(DGINFO,U,2),2,3)+1)
 K DGFLAG,A F I=48:2:56 I $P(DGINFO,U,I)=1&($P(DGINFO,U,I+1)'=0) S A(I)=I,A(I+1)=I+1,DGFLAG=1
 I $D(DGFLAG) W !,*7,"For each of the therapy questions,'DAYS PER WEEK' must be '0' if level is '1'.",! G EDIT
 K DGFLAG,A F I=48:2:56 I $P(DGINFO,U,I)'=1&($P(DGINFO,U,I+1)=0) S A(I)=I,A(I+1)=I+1,DGFLAG=1
 I $D(DGFLAG) W !,*7,"For each of the therapy questions,'DAYS PER WEEK' must be greater than '0'",!,"if level is greater than '1'.",! G EDIT
 ;;changes 4/18/96 cmm
 K A,DGFLAG
 N RIEN
 I $D(^DG(45.9,DGPT,"R")),$P(^("R"),U)]"" S RIEN=$P($P(^("R"),U),";") S DGSER=$S($D(^DIC(42,RIEN,0)):$P(^(0),U,3),1:0) I $E(DGSER)'=$P(DGINFO,U,9) S DGFLAG=1,A(9)=9,A(70)=70
 I $D(DGFLAG) W !,*7,"Service of ward must be the same as bedsection" G EDIT
 S E=$P(DGINFO,U,40),E=$S(E<3:1,E=3:2,E=4:3,1:4),T=$P(DGINFO,U,42),T=$S(T<3:1,T=3:2,1:3),J=$P(DGINFO,U,43),J=$S(J<3:1,J<5:2,1:3),DGSUM=E+T+J
REHAB F E=48:2:56 I $P(DGINFO,U,E)=3&($P(DGINFO,U,E+1)>4) G GROUPR^DGRUG1
 G SPECIAL^DGRUG1
ERR W !!,"A RUG-II GROUP CAN NOT BE DETERMINED ON THIS PATIENT ",!
ERR1 W !,"Do you wish to edit now" S %=1 D YN^DICN G EDIT:%=1,INCOMP:%=-1!(%=2),HELP:%=0
 Q
EDIT S DIC="^DG(45.9,"_DA,DIC(0)="AEQMZ",DIE="^DG(45.9," F I=0:0 S I=$O(A(I)) Q:I'>0  S DR=I D ^DIE G ERR1:$D(Y) I X=1,(I>47),(I<57),'(I#2),$P(^DG(45.9,DGPT,0),"^",I+1)']"" S $P(^(0),"^",I+1)=0,I=I+1
 K A,DGFLAG,I G SET
EN S DIC="^DG(45.9,",DIC(0)="AEQM" D ^DIC G QUIT^DGRUG1:Y'>0 S (DGPT,DA)=+Y G SET
HELP W !,"There are fields missing data for this patient. The PAI will",!," not be complete until all data is entered. You can",!," complete the PAI at this time by responding 'Y'es.",! G ERR1
INCOMP S DA=DGPT,DIE="^DG(45.9,",DR="80///5" D ^DIE G QUIT^DGRUG1
DGRUG16   ;ALB/BOK/MLI - RUG-II GROUPER ; 21 OCT 86  11:00
 +1       ;;5.3;Registration;**89,1015**;Aug 13, 1993;Build 21
INPUT      WRITE !
           SET DIC="^DG(45.9,"
           SET DIC(0)="AEQMN"
           SET DIC("S")="I $S('$D(^DG(45.9,+Y,""C"")):1,$D(^DG(45.9,+Y,""C""))&(+^DG(45.9,+Y,""C"")=1!(+^(""C"")=5)):1,1:0)"
           DO ^DIC
           KILL DIC
           IF Y'>0
               GOTO QUIT^DGRUG1
 +1        SET DIE="^DG(45.9,"
           SET DR="[DGRUG]"
           SET (DGPT,DA)=+Y
           SET DGD=$PIECE(^DG(45.9,DA,0),U,7)
           DO ^DIE
 +2        IF '$DATA(DA)
               GOTO QUIT^DGRUG1
SET        WRITE !
           KILL DGFLAG,A,I
           SET DGINFO=^DG(45.9,DA,0)
           FOR I=1:1:20,23:1:28,32:1:35,40:1:57
               IF $PIECE(DGINFO,U,I)']""
                   WRITE !,"The field ",$PIECE(^DD(45.9,I,0),U,1)," is missing data."
                   SET DGFLAG=1
                   SET A(I)=I
 +1        IF $DATA(DGFLAG)
               GOTO ERR
 +2        IF $PIECE(DGINFO,U,14)=2&($PIECE(DGINFO,U,40)<5)
               WRITE !,*7,"If 'NASAL OR ENTERIC FEEDING' ",!," is marked 'Y'es then question 'EATING' must be marked '5'.",!
               FOR I=14,40
                   SET A(I)=I
                   SET DGFLAG=1
 +3        IF $DATA(DGFLAG)
               GOTO EDIT
 +4        IF $PIECE(DGINFO,U,2)
               SET DGFY=$SELECT($EXTRACT($PIECE(DGINFO,U,2),4,5)<10:$EXTRACT($PIECE(DGINFO,U,2),2,3),1:$EXTRACT($PIECE(DGINFO,U,2),2,3)+1)
 +5        KILL DGFLAG,A
           FOR I=48:2:56
               IF $PIECE(DGINFO,U,I)=1&($PIECE(DGINFO,U,I+1)'=0)
                   SET A(I)=I
                   SET A(I+1)=I+1
                   SET DGFLAG=1
 +6        IF $DATA(DGFLAG)
               WRITE !,*7,"For each of the therapy questions,'DAYS PER WEEK' must be '0' if level is '1'.",!
               GOTO EDIT
 +7        KILL DGFLAG,A
           FOR I=48:2:56
               IF $PIECE(DGINFO,U,I)'=1&($PIECE(DGINFO,U,I+1)=0)
                   SET A(I)=I
                   SET A(I+1)=I+1
                   SET DGFLAG=1
 +8        IF $DATA(DGFLAG)
               WRITE !,*7,"For each of the therapy questions,'DAYS PER WEEK' must be greater than '0'",!,"if level is greater than '1'.",!
               GOTO EDIT
 +9       ;;changes 4/18/96 cmm
 +10       KILL A,DGFLAG
 +11       NEW RIEN
 +12       IF $DATA(^DG(45.9,DGPT,"R"))
               IF $PIECE(^("R"),U)]""
                   SET RIEN=$PIECE($PIECE(^("R"),U),";")
                   SET DGSER=$SELECT($DATA(^DIC(42,RIEN,0)):$PIECE(^(0),U,3),1:0)
                   IF $EXTRACT(DGSER)'=$PIECE(DGINFO,U,9)
                       SET DGFLAG=1
                       SET A(9)=9
                       SET A(70)=70
 +13       IF $DATA(DGFLAG)
               WRITE !,*7,"Service of ward must be the same as bedsection"
               GOTO EDIT
 +14       SET E=$PIECE(DGINFO,U,40)
           SET E=$SELECT(E<3:1,E=3:2,E=4:3,1:4)
           SET T=$PIECE(DGINFO,U,42)
           SET T=$SELECT(T<3:1,T=3:2,1:3)
           SET J=$PIECE(DGINFO,U,43)
           SET J=$SELECT(J<3:1,J<5:2,1:3)
           SET DGSUM=E+T+J
REHAB      FOR E=48:2:56
               IF $PIECE(DGINFO,U,E)=3&($PIECE(DGINFO,U,E+1)>4)
                   GOTO GROUPR^DGRUG1
 +1        GOTO SPECIAL^DGRUG1
ERR        WRITE !!,"A RUG-II GROUP CAN NOT BE DETERMINED ON THIS PATIENT ",!
ERR1       WRITE !,"Do you wish to edit now"
           SET %=1
           DO YN^DICN
           IF %=1
               GOTO EDIT
           IF %=-1!(%=2)
               GOTO INCOMP
           IF %=0
               GOTO HELP
 +1        QUIT 
EDIT       SET DIC="^DG(45.9,"_DA
           SET DIC(0)="AEQMZ"
           SET DIE="^DG(45.9,"
           FOR I=0:0
               SET I=$ORDER(A(I))
               IF I'>0
                   QUIT 
               SET DR=I
               DO ^DIE
               IF $DATA(Y)
                   GOTO ERR1
               IF X=1
                   IF (I>47)
                       IF (I<57)
                           IF '(I#2)
                               IF $PIECE(^DG(45.9,DGPT,0),"^",I+1)']""
                                   SET $PIECE(^(0),"^",I+1)=0
                                   SET I=I+1
 +1        KILL A,DGFLAG,I
           GOTO SET
EN         SET DIC="^DG(45.9,"
           SET DIC(0)="AEQM"
           DO ^DIC
           IF Y'>0
               GOTO QUIT^DGRUG1
           SET (DGPT,DA)=+Y
           GOTO SET
HELP       WRITE !,"There are fields missing data for this patient. The PAI will",!," not be complete until all data is entered. You can",!," complete the PAI at this time by responding 'Y'es.",!
           GOTO ERR1
INCOMP     SET DA=DGPT
           SET DIE="^DG(45.9,"
           SET DR="80///5"
           DO ^DIE
           GOTO QUIT^DGRUG1