File:  [Coherent Logic Development] / freem_fileman / USER / DICOMPW.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: DICOMPW	;SFISC/GFT-EVALUATE COMPUTED FLD EXPR ;5/17/93  12:29 PM
    2: 	;;21.0;VA FileMan;;Dec 28, 1994
    3: 	;Per VHA Directive 10-93-142, this routine should not be modified.
    4: COLON	K DP S DICOMPW=DICOMP
    5: 	I $D(DIC)#2,$P(X,":",2)="" S X=$P(X,":"),DIC(0)="FIZO",DIC("S")="I $P(^(0),U,2)[""P"",'$P(^(0),U,2)" D ^DIC K DIC S X=X_":" D:Y>0 ARC I Y>0 S X="INTERNAL(#"_+Y_")",DP=+$P($P(Y(0),U,2),"P",2)_U_$P(Y(0),U,3),DICOMP=DICOMP_"S"
    6: 	E  S X=$E(X,1,$L(X)-1),DICOMPX="",DICOMPX(0)="D(",DICOMP=DICOMP_"S"
    7: 	D EN^DICOMP G Q:'$D(X)
    8: 	I $D(DP) S:$D(DIFG) DIFG=2 S DICOMP=DICOMPW D DRW^DICOMPX G Q:'$D(^DIC(+DP,0)) S D=Y,Y=+DP X DIC("S") S Y=D I '$T K X,DIC("S") G Q
    9: 	I $D(DP) F D=DICOMPW\100*100:1 S X="S I("_D_",0)=D"_(D#100)_" "_X I +DICOMPW=D S X=X_" S D(0)=+X",D=Y\100+1*100,I(D)=U_$P(DP,U,2),J(D)=+DP,Y=D_U_Y G Q
   10: 	S DP=+DICOMPX I Y>DICOMPW S %=I(+Y),DP=DP_$S(%[U:%,1:U_$P(%,"""",1)_$P(%,"""",2)) G Q
   11: 	K X
   12: Q	S:$D(DIFG)&$D(X) DIFG("DICOMP")=DICOMPX K DICOMP,DICOMPX,DICOMPW Q
   13: 	;
   14: M	;
   15: 	S (D,DS)=0,DZ="""",Y=J(DLV) I DICOMP["W" D ASKE,ASK:'D I D<0 K X Q
   16: 	S:DS DZ="E"""
   17: 	I D S DZ=$E("W",$D(DICO(3)))_"L"_DZ_$S(DLV=DLV0:"",1:",DIC(""P"")="""_$P(^DD(J(DLV-1),$O(^DD(J(DLV-1),"SB",J(DLV),0)),0),U,2)_"""") I D=2 S DZ=DZ_",X=""""""""_X_"""""""""
   18: 	S (%,%Y)=DLV#100,DZ=" K DIC S "_$P("Y=-1,",U,%>0)_"DIC="""_X_""",DIC(0)=""NMF"_DZ,X=" D ^DIC"_$P(":D"_(%-1)_">0",U,%>0)_" S (D,D"_%_$S($D(DICOMPX(0)):","_DICOMPX(0)_%_")",1:"")_")=+Y"
   19: 	I D F %=%:-1:1 S X=X_",DA("_%_")=DIU("_%_")",DZ=DZ_",DIU("_%_")=$S($D(DA("_%_")):DA("_%_"),1:0),DA("_%_")=D"_(%Y-%)
   20: 	S X=DZ_X
   21: 	I W=":" S M=M+1 Q
   22: 	S I="#.01"_$E(I,M,999),M=0 Q
   23: 	;
   24: ASKE	;
   25: 	S (D,DS)=0,%=1 I DICOMP["?",DICOMP["E" W !,"WILL TERMINAL USER BE ALLOWED TO SELECT PROPER ENTRY IN '"_$O(^DD(Y,0,"NM",0))_"' FILE" D YN^DICN S:%=1 DS=1
   26: 	S:%<0 D=% Q:%  D DICOMPW^DIQQQ G ASKE
   27: 	;
   28: ASK	;
   29: 	G NO:DICOMP'["?",ASK1:DUZ(0)="@"
   30: 	S DIFILE=Y,DIAC="LAYGO" D ^DIAC K DIAC,DIFILE G:'% NO
   31: ASK1	W !,"DO YOU WANT TO PERMIT ADDING A NEW '"_$O(^DD(Y,0,"NM",0))_"' ENTRY"
   32: 	S %=2-(DICOMP["L"),D=0 D YN^DICN W ! I %<1 S D=-1 Q
   33: 	Q:%=2  S D=1 Q:DZ  W "WELL THEN, DO YOU WANT TO **FORCE** ADDING A NEW ENTRY EVERY TIME"
   34: 	S %=2-(DICOMP["L2") D YN^DICN I %<1 S D=-1 Q
   35: 	S D=3-%,DICO(2)=1 Q:%=1!'DS
   36: 	W !,"DO YOU WANT AN 'ADDING A NEW "_$O(^DD(Y,0,"NM",0))_"' MESSAGE" D YN^DICN I %<1 S D=-1 Q
   37: 	Q:%=1  S DICO(3)=% Q
   38: NO	S D=0 Q
   39: 	;
   40: DPS	;
   41: 	S X=DPS(DPS),%=$O(DPS(DPS,"$")) S:M'>$L(I)!(DICO'?1"(".E) DBOOL=$D(DPS(DPS,"BOOL")) I %["$" S X=X_"X)"_DPS(DPS,%)
   42: 	I $D(DPS(DPS,"DATE")) S DATE(K+1)=1
   43: 	S %=$D(DATE(K)) I $D(DPS(DPS,U)) S K=K+2,K(K-1)=X,K(K)=$E(DPS(DPS,U),1),X=$E(DPS(DPS,U),2,99)
   44: 	I %&$D(DPS(DPS,"O"))!$D(DPS(DPS,"D"))!$D(DPS(DPS,"DATE")) S DATE(K+1)=1
   45: 	E  S K(K+1,9)=0
   46: 	K DPS(DPS) S DPS=DPS-1
   47: 	Q
   48: ARC	;
   49: 	Q:DICOMP'["W"
   50: 	I $P($G(^DD(+$P($P(Y(0),U,2),"P",2),0,"DI")),U,2)["Y" W !,$C(7),"SORRY, CAN'T EDIT A RESTRICTED"_$S($P($G(^("DI")),U)["Y":" (ARCHIVE)",1:"")_" FILE!" S Y=-1
   51: 	Q

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