- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/VA_FILEMAN-ARJT-DI-DD-DM-DT-%DT-%RCR/DICOMP1.m
r613 r623 1 DICOMP1 ;SFISC/GFT-EVALUATE COMPUTED FLD EXPR ;19JUNE20072 ;;22.0;VA FileMan;**6,44,76,152**;Mar 30, 1999;Build 10 3 ;Per VHA Directive 2004-038, this routine should not be modified.4 5 6 INIT 7 NN 8 9 10 11 12 13 AS 14 15 16 17 18 P 19 20 21 DATE 22 23 2 24 25 26 27 28 DTC 29 30 A 31 K1 32 S 33 34 0 35 36 37 38 39 40 41 Q 42 I $D(X) S:$D(DICO("DIERR")) X="N DIERR "_X I $G(DICOMPQI) S X="N Y "_X43 Y 44 45 46 47 48 49 ST 50 51 52 X 53 54 55 56 C 57 58 59 60 61 62 63 64 65 66 VP 67 OV 68 69 70 71 M 72 EXTRASB 73 74 SS 75 76 EX 77 78 SX 79 1 DICOMP1 ;SFISC/GFT-EVALUATE COMPUTED FLD EXPR ;12:45 PM 9 Sep 2002 2 ;;22.0;VA FileMan;**6,44,76**;Mar 30, 1999 3 ;Per VHA Directive 10-93-142, this routine should not be modified. 4 F Q:'$D(DPS(DPS,"ST")) D DPS^DICOMPW S K=K+1,K(K)=X 5 G 0:DPS 6 INIT S T=99,DLV0=0,X="",K=1 D ST ;ST will build code to get top=level values 7 NN I $D(K(K,1)) S DLV0=K(K,1) K K(K,1) D ST ;'1' flags a change in levels 8 I $D(K(K,9)) F %=1:1:K K DATE(%) 9 G S:$D(K(K))[0,K1:K(K)="" 10 I " "[$E(K(K)) D 11 .Q:X="" 12 .I K(K)?1" S ".E D Q 13 AS ..D EX I $L(K(K))+$L(X)>160 D M Q 14 ..S K(K)=$E(K(K),4,999),X=X_"," 15 .D EX:W,M:$L(X)+$L(K(K))>180 16 E I 'W D M:$L(X)+$L(K(K))>165 S X=X_" S X=",W=6 17 D:K(K)?1P 18 P .I "\/"[K(K),$G(K(K+1))'?.NP S K=K+1,K(K)=",X=$S("_K(K)_":X"_K(K-1)_K(K)_",1:""*******"")" 19 .I $L(X)>150,$F(DPUNC,K(K))>3 D M,SX 20 G A:'$D(DATE(K)) 21 DATE I $G(K(K-1))="_",X?.E1"_" S X=$E(X,1,$L(X)-1) D EXTRASB S Y=$$DGI^DICOMP,X=X_" S "_Y_"=X,X="_K(K)_" S Y=X X ^DD(""DD"") S X="_Y_"_Y",K(K)="" G A 22 S Y=1 I $G(K(K-1))="+" S X=X_"0,X2=X,X1="_K(K) G DTC 23 2 G A:$D(K(K+2))[0 24 K DATE(K) 25 I $D(DATE(K+2))[0,$F("+-",K(K+1))>1 S X=X_K(K)_",X1=X,X2="_K(K+1)_K(K+2),DATE(K+2)=1 26 E G A:K(K+1)'="-" K DATE(K+2) S X=X_K(K)_",X1=X,X2="_K(K+2),Y=0 27 S K=K+2 28 DTC S K=K+1,X=X_",X="""" D"_$P(":X2 ^ C",U,Y+1)_"^%DTC:X1" G S:'$D(K(K)) D SX G NN:'Y S K=K-1,K(K)="" G 2 29 ; 30 A S W='$D(K(K,2)),X=X_K(K) 31 K1 S K=K+1 G NN:$D(K(K))#2 32 S S I="" F S I=$O(M(I)),W=0 Q:I="" D M:$L(X)>235 S K=$O(M(I,"")),X=X_" S D"_I_"="_$S(DA:DQI_(K+80),1:"I("_K_",0")_")" 33 S I=-1 D SS S:X?.E1" S X=X" X=$E(X,1,$L(X)-6) I X'?1"S X="1N.NP!(DICOMP["Z") G Q 34 0 ;NO GOT! Come here when parsing fails 35 K X,DIM,DATE I DUZ(0)="@",DICOMP'["X" D 36 .Q:DICO'[" " 37 .S DIM=1 I $L(DICO," ")=2 F Y="OPEN","CLOSE","BREAK","USE" D I '$D(DIM) Q 38 ..I $E(Y)=$P(DICO," ")!(Y=$P(DICO," ")) K DIM 39 .I $D(DIM) S X=DICO D ^DIM 40 S DICOMP="",DLV=DICO(1) 41 Q I DICOMP'["S" S K=DICO(1) F S K=$O(I(K)) Q:K="" K I(K),J(K) 42 I $G(DICOMPQI),$D(X) S X="N Y "_X 43 Y K Y I $D(DICO("RCR")) S Y=DICO("RCR") 44 E S Y=DLV_$E("W",$D(DPS("W")))_$S($G(DBOOL)=1:"B",$D(DATE)>9:"D",1:"")_$E("X",$D(DIM))_$E("L",$D(DICO(2))) 45 S Y=Y_DIMW 46 I $D(DICO("PT")) S Y=Y_"p"_DICO("PT") 47 K K,DLV,DICOMP,DICMX Q 48 ; 49 ST S W=0,DG="" F S DG=$O(DG(DLV0,DG)),Y=$P(DG,U,2) Q:DG="" D 50 .I Y]"" S:+Y'=Y Y=""""_Y_"""" S I=DQI_DG(DLV0,DG)_")=$S($D(^(" D:T-DG!(DG<DLV0) S I=I_Y_")):^("_Y_"),1:"""")" G VP 51 ..N T,QI,% 52 X ..S I=$P(I,U),%=DG\100*100 53 ..F T=0:1:DG#100 S QI=I(%) S I=I_QI_$E(",",1,T)_$S(DICOMP["T"&(DG<DICO(0)):"I("_%_",0)",1:"D"_T)_",",%=%+1 54 ..K DG(DLV0,DG) 55 ..;do not change above code to use "$G" until you change E2+4^DIP0 ! 56 C .F S %=$O(DG(DLV0,DG,0)) Q:'% D K DG(DLV0,DG,%) ;for Computed Fields 57 ..S I=" X ""N I,Y ""_$P(^DD("_J(DG)_","_%_",0),U,5,99)" 58 ..I DICOMP["T",DG<DICO(0) D 59 ...N W,SV S SV=X,X="N D0 S D0=I("_DG_",0)"_I D EXTRASB S I=X,X=SV 60 ..S I=I_" S "_DQI_DG(DLV0,DG,%)_")=X" 61 ..D EX:W,M:$L(X)+$L(I)>180 S X=X_I 62 .Q:$D(DG(DLV0,DG))[0 63 .S I=DG(DLV0,DG) I I?.N S I=$S(DA:DQI_(DLV0+I+80),1:"I("_(DLV0+I)_",0")_")=$G(D"_I_")" 64 .E S I=DQI_+DG_")="_I 65 .K DG(DLV0,DG) G OV:DG?.N1A 66 VP .I $G(DICV)["V" S I=I_"_$C(59)_"""_$E(I(0),2,99)_"""" 67 OV .I $L(I)+$L(X)>180 D M 68 .S:'W X=X_" S " S X=X_I_",",W=2 69 D EX S W=0 Q 70 ; 71 M D SS,EX 72 EXTRASB D DIMP^DICOMPZ(X) S W=0 Q 73 ; 74 SS Q:$A(X)-32 S X=$E(X,2,999) G SS 75 ; 76 EX S X=$E(X,1,$L(X)-W+1) Q 77 ; 78 SX S X=X_" S X=X",W=1 79 Q
Note:
See TracChangeset
for help on using the changeset viewer.