File:  [Coherent Logic Development] / freem_fileman / USER / DICN.m
Revision 1.1: download - view: text, annotated - select for diffs
Mon Apr 28 14:13:20 2025 UTC (3 months ago) by snw
Branches: MAIN
CVS tags: HEAD
Restructure repository

    1: DICN	;SFISC/GFT,XAK-ADD NEW ENTRY ;10/5/94  09:27
    2: 	;;21.0;VA FileMan;;Dec 28, 1994
    3: 	;Per VHA Directive 10-93-142, this routine should not be modified.
    4: 	D:'$D(DO) DO^DIC1 S DO(1)=1
    5: 	G:$S($D(DLAYGO):DO(2)\1-(DLAYGO\1),1:1) B1
    6: USR	I $D(DD) S X=DD D N^DICN1 G I:$D(X),B
    7: 	D DS S DIX=X I X'?16.N,X?.NP,X,DIC(0)["E",'$D(DICR),DS'["DINUM",$P(DS,U,2)'["N",DIC(0)["N"!$D(^DD(+DO(2),.001,0)) D N^DICN1 I $D(X) S DD=X G I
    8: 	S X=DIX D VAL G I:$D(X)
    9: 	S X=DIX
   10: B	G BAD^DIC1
   11: B1	G USR:'DO(2),USR:$D(^DD(+DO(2),0,"UP")),USR:DO(2)=".12P" S DIFILE=+DO(2),DIAC="LAYGO" D ^DIAC K DIAC,DIFILE G B:'%,USR
   12: 	;
   13: 1	I '$D(DIC("S")) S DST=$G(DST)_$$EZBLD^DIALOG(8058,$$OUT^DIALOGU(Y,"ORD")) S:$D(^DD(+DO(2),0,"UP")) DST=DST_$$EZBLD^DIALOG(8059,$O(^DD(^("UP"),0,"NM",0))) S DST=DST_")"
   14: Y	I $D(DDS) S A1="Q",DST=%_U_DST D H^DDSU Q
   15: 	W !,DST K DST
   16: YN	;
   17: 	N %1 S %1=$$EZBLD^DIALOG(7001) S:'$D(%) %=0 W "? " W:(%>0) $P(%1,U,%),"// "
   18: RX	R %Y:$S($D(DTIME):DTIME,1:300) E  S DTOUT=1,%Y=U W $C(7)
   19: 	I %Y]""!'% S %=+$$PRS^DIALOGU(7001,%Y) S:(%<0&($A(%Y)'=94)) %=0
   20: 	I '%,%Y'?."?" W $C(7),"??",!?4,$$EZBLD^DIALOG(8040),": " G RX
   21: 	W:$X>73 ! W:% $S(%>0:"  ("_$P(%1,U,%)_")",1:"") Q
   22: 	;
   23: DS	S DS=^DD(+DO(2),.01,0) Q
   24: 	;
   25: VAL	I X'?.ANP K X Q
   26: 	I X["""" K X Q
   27: 	I $P(DS,U,2)'["N",$A(X)=45 K X Q
   28: 	I $P(DS,U,2)["*" S:DS["DINUM" DINUM=X Q
   29: 	S %=$F(DS,"%DT=""E"),DS=$E(DS,1,%-2)_$E(DS,%,999) N DICTST S DICTST=DS["+X=X"&(X?16.N) K:DICTST X X:'DICTST $P(DS,U,5,99) Q
   30: 	;
   31: I1	S DST=$C(7)_$$EZBLD^DIALOG(8060) S:'$D(DD) DST=DST_$$EZBLD^DIALOG(8061,Y) S %=$P(DO,U,1) I $L(DST)+$L(%)'>55 S DST=DST_$$EZBLD^DIALOG(8062,%) Q
   32: 	W:'$D(DDS) !,DST K A1 D:$D(DDS) H^DIC2 S DST="    "_$$EZBLD^DIALOG(8062,%) Q
   33: 	;
   34: I	I DIC(0)["E",DO(2)'["A",DIC(0)'["W" S C=$P(^DD(+DO(2),.01,0),U,2),(DIX,Y)=X D Y^DIQ,I1 S %=0,Y=$P(DO,U,4)+1,X=DIX D 1 G OUT:$D(DTOUT),B:%-1
   35: 	G FILE:'$D(DD)
   36: R	D DS S DST="   "_$P(DS,U,1)_": " I '$D(DDS) W !,DST K DST R X:DTIME S:'$T X=U,DTOUT=1,Y=-1
   37: 	I $D(DDS) S A1="Q",DST="3^"_DST D H^DDSU S X=% I $D(DTOUT) S X=U,Y=-1
   38: 	G B:X[U,R:X="" D VAL I '$D(X) W $C(7) W:'$D(DDS) "??" G:'$D(^DD(+DO(2),.01,3)) R S DST="    "_^(3) W:'$D(DDS) !,DST D:$D(DDS) H^DDSU G R
   39: FILE	D:'$D(DO) DO^DIC1 I DO="0^-1" G OUT
   40: 	F DIX=0:0 S DIX=$O(^DD(+DO(2),.01,"LAYGO",DIX)) Q:DIX'>0  I $D(^(DIX,0)) X ^(0) I '$T G OUT
   41: 	I $P($G(^DD($$FNO^DILIBF(+DO(2)),0,"DI")),U,2)["Y",'$D(DIOVRD),'$G(DIFROM) G OUT
   42: 	S DIX=X
   43: F1	S X=$P(DO,U,3) D INCR S X=X\DIY*DIY+DIY
   44: 	I $D(DINUM) S X=DINUM D INCR
   45: F2	I $D(@(DIC_"X)")) S X=X\DIY*DIY+DIY G B:$D(DINUM),F2
   46: 	S Y=$P(DO,"^",2) I $D(DD) S X=DD
   47: 	E  I 'Y,DUZ(0)'="@" G LOCK
   48: 	I DIC(0)["E",'$D(DINUM),$D(^DD(+Y,.001,0)) G NUM^DICN1
   49: LOCK	L @("+"_DIC_"X):1") I $D(@(DIC_"X)"))!'$T L @("-"_DIC_"X)") G F1
   50: 	S ^(X,0)=DIX,DD=0 L @("-"_DIC_"X)") K D S:$D(DA)#2 D=DA S DA=X,X=DIX
   51: 	I $D(@(DIC_"0)")) S ^(0)=$P(^(0),"^",1,2)_"^"_DA_"^"_($P(^(0),"^",4)+1)
   52: IX	S DS=X,DD=$O(^DD(+DO(2),.01,1,DD)) S:DD="" DD=-1
   53: 	I DD>0 G RIX^DICN1:^(DD,0)["TRIGGER"!(^(0)["BULL") X ^(1) S X=DS G IX
   54: 	I DIC(0)["E"&($O(^DD(+DO(2),0,"ID",0))>0)!$D(DIC("DR")) G ^DICN1
   55: D	D A
   56: 	S Y=DA_"^"_X_"^1" S:$D(D)#2 DA=D G R^DIC2
   57: 	;
   58: INCR	S DIY=1 I $P(DO,U,2)>1 F %=1:1:$L($P(X,".",2)) S DIY=DIY/10
   59: 	Q
   60: OUT	S Y=-1 G A^DIC:$D(DO(1))&'$D(DTOUT),Q^DIC2
   61: 	;
   62: A	I $P(^DD(+DO(2),.01,0),U,2)'["a",DO(2)'["a" Q
   63: 	I DO(2)'["a",^("AUDIT")["e" Q
   64: 	D AUD^DIET
   65: 	Q
   66: 	;#7001   Yes/No question
   67: 	;#8040   Answer with 'Yes' or 'No'
   68: 	;#8058   (the |entry number|
   69: 	;#8059   for this |filename|
   70: 	;#8060   Are you adding
   71: 	;#8061   '|.01 field value|' as
   72: 	;#8062   a new |filename|

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>