DICATT5 ;SFISC/XAK-POINTERS ;12:04 PM 25 Jan 2000 [ 04/02/2003 8:25 AM ]
;;22.0;VA FileMan;**1001**;APR 1, 2003
;;22.0;VA FileMan;**26**;Mar 30, 1999
;Per VHA Directive 10-93-142, this routine should not be modified.
7 K DIC S Y="",%=$P(O,U,3),DIC(0)="EFQIZ"
S:$P(O,U,2)["P"&$L(%) Y=$S($D(@("^"_%_"0)")):$P(^(0),U),1:"")
W !,"POINT TO WHICH FILE: " W:Y]"" Y_"// " R X:DTIME S:'$T DTOUT=1 G CHECK^DICATT:X=U!'$T I Y]"",X="" S X=Y,DIC(0)=DIC(0)_"O"
S DIC=1,DIC("S")="I Y'=1.1 S DIFILE=+Y,DIAC=""RD"" D ^DIAC I %"
D ^DIC K DIC,DIFILE,DIAC G:Y<0 7:X["?",T S X=^(0,"GL"),DE=Y G 77
T K DIC G CHECK^DICATT:$D(DTOUT),NO^DICATT2
77 S DIFILE=+Y,DIAC="LAYGO" D ^DIAC S %=0 S:'DIAC!($P($G(^DD(DIFILE,0,"DI")),U,2)["Y") %=2 K DIFILE,DIAC
P I % W !,$C(7) D A W !,"WILL NOT " D B
E S %=1+$S($P(O,U,2)["'":1,$P(O,U,2)']"":1,1:0) W !,"SHOULD " D A W ! D B,YN^DICN G T:%<1
S Z="P"_+DE_$E("'",%=2)_X,C="Q",L=9,E=X G H:DUZ(0)'="@" D S G T:X=U,H
S ;
S D=$S($D(^DD(A,DA,12.1)):^(12.1),1:""),%=2-(D]""),P=$S($D(^(12)):^(12),1:""),I=$S($D(^(12.2)):^(12.2),1:"")
W !,"SHOULD '"_$P(DE,U,2)_"' ENTRIES BE SCREENED" D YN^DICN S:%<0 X=U Q:X=U I '% W !?5,"Answer YES if there is a condition which should prohibit",!?5,"selection of some entries." G S
I %=2 K ^(12.1),^(12),^(12.2) Q
G M ;W !,"ENTER A TRUTH-VALUED EXPRESSION WHICH MUST BE TRUE OF ANY ENTRY POINTED TO:",!?4 I I]"" W I_"// " W:$X>35 !?4
R X:DTIME S:'$T DTOUT=1 G T:X=U!'$T S:X="" X=I I X="" G M:DUZ(0)="@",S
K DG,K S ^(12.2)=X,K=100,DQI="Y(",DG(K)=K,K(1,1)=K,(DLV,DLV0)=K,J(K)=+DE,I(K)=E,K=0 D EN^DICOMP
G S:'$D(X) I $D(X)>1!(X[" ^DIC") W $C(7),!,"TOO COMPLICATED!" G S
S I=0 I 'DBOOL W $C(7),!?8,"WARNING-- THIS DOESN'T LOOK LIKE A TRUTH-VALUED EXPRESSION"
D0 S I=$F(X,E_"D0",I) I I S X=$E(X,1,I-3)_"Y"_$E(X,I,999) G D0
Q S I=$F(X,"""",I) I I S X=$E(X,1,I-1)_""""_$E(X,I,999),I=I+1 G Q
S (D,X)="S DIC(""S"")="""_X_" I X""" G E:DUZ(0)'="@"
M W !,"MUMPS CODE THAT WILL SET 'DIC(""S"")': " W:D]"" D S Y=D D:D]"" RW^DIR2 G S:X="@" I D']"" R X:DTIME S:'$T DTOUT=1 Q:X=U!'$T
I X="" S X=D G S:X=""
I X?."?" D HELP^DICATT4 G M
D ^DIM:'$T I '$D(X) S X="" G S
I X'["DIC(""S"")" W $C(7),!,?8,"WARNING - Screen Does Not Contain DIC(""S"")"
E W !,"EXPLANATION OF SCREEN: " W:P]"" P_"// " R %:DTIME S:'$T %=U,DTOUT=1 S:%="" %=P G S:%=U I %?.P W !?5,$C(7),"An explanation must be entered." G E
I $D(^DD(A,DA,12.1)) S:X'=^(12.1) M(1)=0
S ^DD(A,DA,12)=%,^(12.1)=X,Z="*"_Z S:Z?1"*P".E C=X_" D ^DIC K DIC S DIC=DIE,X=+Y K:Y<0 X" Q
H S DIZ=Z G ^DICATT1
;
A W "'ADDING A NEW "_$P(DE,U,2)_" FILE ENTRY' (""LAYGO"")" Q
B W "BE ALLOWED WHEN ANSWERING THE "_F_"' QUESTION" Q
Q
DICATT5 ;SFISC/XAK-POINTERS ;12:04 PM 25 Jan 2000 [ 04/02/2003 8:25 AM ]
+1 ;;22.0;VA FileMan;**1001**;APR 1, 2003
+2 ;;22.0;VA FileMan;**26**;Mar 30, 1999
+3 ;Per VHA Directive 10-93-142, this routine should not be modified.
7 KILL DIC
SET Y=""
SET %=$PIECE(O,U,3)
SET DIC(0)="EFQIZ"
+1 IF $PIECE(O,U,2)["P"&$LENGTH(%)
SET Y=$SELECT($DATA(@("^"_%_"0)")):$PIECE(^(0),U),1:"")
+2 WRITE !,"POINT TO WHICH FILE: "
IF Y]""
WRITE Y_"// "
READ X:DTIME
IF '$TEST
SET DTOUT=1
IF X=U!'$TEST
GOTO CHECK^DICATT
IF Y]""
IF X=""
SET X=Y
SET DIC(0)=DIC(0)_"O"
+3 SET DIC=1
SET DIC("S")="I Y'=1.1 S DIFILE=+Y,DIAC=""RD"" D ^DIAC I %"
+4 DO ^DIC
KILL DIC,DIFILE,DIAC
IF Y<0
IF X["?"
GOTO 7
GOTO T
SET X=^(0,"GL")
SET DE=Y
GOTO 77
T KILL DIC
IF $DATA(DTOUT)
GOTO CHECK^DICATT
GOTO NO^DICATT2
77 SET DIFILE=+Y
SET DIAC="LAYGO"
DO ^DIAC
SET %=0
IF 'DIAC!($PIECE($GET(^DD(DIFILE,0,"DI")),U,2)["Y")
SET %=2
KILL DIFILE,DIAC
P IF %
WRITE !,$CHAR(7)
DO A
WRITE !,"WILL NOT "
DO B
+1 IF '$TEST
SET %=1+$SELECT($PIECE(O,U,2)["'":1,$PIECE(O,U,2)']"":1,1:0)
WRITE !,"SHOULD "
DO A
WRITE !
DO B
DO YN^DICN
IF %<1
GOTO T
+2 SET Z="P"_+DE_$EXTRACT("'",%=2)_X
SET C="Q"
SET L=9
SET E=X
IF DUZ(0)'="@"
GOTO H
DO S
IF X=U
GOTO T
GOTO H
S ;
+1 SET D=$SELECT($DATA(^DD(A,DA,12.1)):^(12.1),1:"")
SET %=2-(D]"")
SET P=$SELECT($DATA(^(12)):^(12),1:"")
SET I=$SELECT($DATA(^(12.2)):^(12.2),1:"")
+2 WRITE !,"SHOULD '"_$PIECE(DE,U,2)_"' ENTRIES BE SCREENED"
DO YN^DICN
IF %<0
SET X=U
IF X=U
QUIT
IF '%
WRITE !?5,"Answer YES if there is a condition which should prohibit",!?5,"selection of some entries."
GOTO S
+3 IF %=2
KILL ^(12.1),^(12),^(12.2)
QUIT
+4 ;W !,"ENTER A TRUTH-VALUED EXPRESSION WHICH MUST BE TRUE OF ANY ENTRY POINTED TO:",!?4 I I]"" W I_"// " W:$X>35 !?4
GOTO M
+5 READ X:DTIME
IF '$TEST
SET DTOUT=1
IF X=U!'$TEST
GOTO T
IF X=""
SET X=I
IF X=""
IF DUZ(0)="@"
GOTO M
GOTO S
+6 KILL DG,K
SET ^(12.2)=X
SET K=100
SET DQI="Y("
SET DG(K)=K
SET K(1,1)=K
SET (DLV,DLV0)=K
SET J(K)=+DE
SET I(K)=E
SET K=0
DO EN^DICOMP
+7 IF '$DATA(X)
GOTO S
IF $DATA(X)>1!(X[" ^DIC")
WRITE $CHAR(7),!,"TOO COMPLICATED!"
GOTO S
+8 SET I=0
IF 'DBOOL
WRITE $CHAR(7),!?8,"WARNING-- THIS DOESN'T LOOK LIKE A TRUTH-VALUED EXPRESSION"
D0 SET I=$FIND(X,E_"D0",I)
IF I
SET X=$EXTRACT(X,1,I-3)_"Y"_$EXTRACT(X,I,999)
GOTO D0
Q SET I=$FIND(X,"""",I)
IF I
SET X=$EXTRACT(X,1,I-1)_""""_$EXTRACT(X,I,999)
SET I=I+1
GOTO Q
+1 SET (D,X)="S DIC(""S"")="""_X_" I X"""
IF DUZ(0)'="@"
GOTO E
M WRITE !,"MUMPS CODE THAT WILL SET 'DIC(""S"")': "
IF D]""
WRITE D
SET Y=D
IF D]""
DO RW^DIR2
IF X="@"
GOTO S
IF D']""
READ X:DTIME
IF '$TEST
SET DTOUT=1
IF X=U!'$TEST
QUIT
+1 IF X=""
SET X=D
IF X=""
GOTO S
+2 IF X?."?"
DO HELP^DICATT4
GOTO M
+3 IF '$TEST
DO ^DIM
IF '$DATA(X)
SET X=""
GOTO S
+4 IF X'["DIC(""S"")"
WRITE $CHAR(7),!,?8,"WARNING - Screen Does Not Contain DIC(""S"")"
E WRITE !,"EXPLANATION OF SCREEN: "
IF P]""
WRITE P_"// "
READ %:DTIME
IF '$TEST
SET %=U
SET DTOUT=1
IF %=""
SET %=P
IF %=U
GOTO S
IF %?.P
WRITE !?5,$CHAR(7),"An explanation must be entered."
GOTO E
+1 IF $DATA(^DD(A,DA,12.1))
IF X'=^(12.1)
SET M(1)=0
+2 SET ^DD(A,DA,12)=%
SET ^(12.1)=X
SET Z="*"_Z
IF Z?1"*P".E
SET C=X_" D ^DIC K DIC S DIC=DIE,X=+Y K:Y<0 X"
QUIT
H SET DIZ=Z
GOTO ^DICATT1
+1 ;
A WRITE "'ADDING A NEW "_$PIECE(DE,U,2)_" FILE ENTRY' (""LAYGO"")"
QUIT
B WRITE "BE ALLOWED WHEN ANSWERING THE "_F_"' QUESTION"
QUIT
+1 QUIT