source: FOIAVistA/trunk/r/VA_FILEMAN-ARJT-DI-DD-DM-DT-%DT-%RCR/DIFG4A.m@ 1487

Last change on this file since 1487 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 1.8 KB
Line 
1DIFG4A ;SFISC/DG(OHPRD)-CONDITIONALS ; [ 08/21/91 5:15 PM ]
2 ;;22.0;VA FileMan;;Mar 30, 1999
3 ;Per VHA Directive 10-93-142, this routine should not be modified.
4 ;
5START ;
6 D CHECK
7 I $D(DIFGSTP) K DIFGSTP S DIFG("UNRESOLVED",DIFGSAVE(DIFG,"@NUM"))="" G X1
8 S DIFGDRCT=0 F DIFGI=1:1 Q:'$D(DIFGDIC(DIFGDIC,DIFGI)) S DIFGDIGT=+$P(DIFGDIC(DIFGDIC,DIFGI),"DIFGPC(",2) D:$D(DIFGNUMF(DIFGDIGT)) GETVAL
9 I $E(X)="`",$S('$D(Y):1,Y<0:1,1:0) NEW DIC S DIC=+$P($P(^DD(DIFGDIC,.01,0),U,2),"P",2) I DIC S DIC(0)="FMZ" D ^DIC S:Y>0 X=Y(0,0)
10 I X'["`" S ^UTILITY("DIFGFLD",$J,.01)=X
11 K Y
12 D COND ;dg/ohprd 8-21-91
13 I '$D(Y) S Y=-1
14 I Y>0 S DIFG("CONDSET")=""
15 I Y=-1 S DIFGER=22_U_DIFGY D ERROR^DIFG
16 K DIFGDRCT,DIFGDIGT,^UTILITY("DIFGFLD",$J)
17X1 Q
18 ;
19CHECK ; Check for existence of higher level conds, if exist quit this level
20 ; and continue processing
21 NEW % S %=0 F S %=$O(DIFGCOND(%)) S:%<DIFG&% DIFGSTP="" Q:%=""!(%<DIFG)
22 Q
23 ;
24GETVAL ; Save field numbers and values
25 I $D(^UTILITY("DIFGX",$J,DIFGDIGT)) S ^UTILITY("DIFGFLD",$J,DIFGNUMF(DIFGDIGT))=^(DIFGDIGT)
26 Q
27 ;
28COND ; Execute conditions
29 NEW ORDR,CNUM,NUM,STP,FLD,OP,VAL
30 F ORDR=0:0 S ORDR=$O(^DD(DIFGDIC,0,"FD","B",ORDR)) Q:'ORDR!$D(Y) S CNUM=$O(^(ORDR,"")),TYPE=$P(^DD(DIFGDIC,0,"FD",CNUM,0),U,3) K STP F NUM=0:0 S NUM=$O(^DD(DIFGDIC,0,"FD",CNUM,NUM)) D:NUM'=+NUM SETY Q:NUM'=+NUM D Q:$D(STP)
31 . S FLD=$P(^DD(DIFGDIC,0,"FD",CNUM,NUM),U),OP=$P(^(NUM),U,2),VAL=$P(^(NUM),U,3)
32 . I $S('$D(^UTILITY("DIFGFLD",$J,FLD)):1,1:0) S STP="" Q
33 . I @("^UTILITY(""DIFGFLD"",$J,FLD)"_OP_"VAL")
34 . E S STP=""
35 Q
36 ;
37SETY ; Sets Y to value of "D" node or value from execution of "C" node
38 I TYPE="M",$D(^DD(DIFGDIC,0,"FD",CNUM,"C")) X ^("C")
39 I TYPE="F",$D(^DD(DIFGDIC,0,"FD",CNUM,"D")) S Y=^("D")
40 I $D(Y),Y'>0 K Y
41 E I $D(Y),'$D(@(^DIC(DIFGDIC,0,"GL")_"Y)")) K Y
42 Q
43 ;
Note: See TracBrowser for help on using the repository browser.