Annotation of freem_fileman/DDSVALM.m, revision 1.1.1.1
1.1 snw 1: DDSVALM ;SFISC/MKO-PUT FOR MULTIPLES (SELECT PROMPT) ;10:45 AM 9 Sep 1994
2: ;;21.0;VA FileMan;;Dec 28, 1994
3: ;Per VHA Directive 10-93-142, this routine should not be modified.
4: ;
5: MULT ;Put multiple or wp field
6: N DDSVDIC,DDSVDV,DDSVND,DDSVPC,DDSVSUB
7: S DDSVPC=$P(DDSV0,U,4),DDSVND=$P(DDSVPC,";"),DDSVPC=$P(DDSVPC,";",2)
8: S DDSVSUB=+DDSV02 Q:$D(^DD(DDSVSUB,.01,0))[0
9: S DDSVDV=DDSVSUB_$P(^DD(DDSVSUB,.01,0),U,2),X=$P(^(0),U,3)
10: S DDSVDIC=DIE_DA_","""_DDSVND_""","
11: ;
12: I DDSVDV["W" D PUTWP
13: I DDSVDV'["W" D PUTMULT
14: Q
15: ;
16: PUTMULT ;Put for multiples
17: N DDSVRN
18: S DDSVRN=$S(DDSVAL="FIRST":$O(@(DDSVDIC_"0)")),DDSVAL="LAST":$O(@(DDSVDIC_""" "")"),-1),1:+$G(DDSVAL))
19: ;
20: K Y S Y="",Y(0)=""
21: I DDSVRN>0,$D(@(DDSVDIC_+DDSVRN_",0)"))#2 S Y(0)=$P(^(0),U) D
22: . I DDSVDV["O"!(DDSVDV["P")!(DDSVDV["V")!(DDSVDV["D")!(DDSVDV["S") D
23: .. S Y(0)=$$EXTERNAL^DILFD(DDSVSUB,.01,"",DDSVRN)
24: . S Y=DDSVRN
25: ;
26: S:'$D(@DDSREFT@("F"_DDP,DDSVDA,DDSFLD,"M")) ^("M")=1_DDSVDIC_U_DDSVSUB
27: D UPDATE^DDSVAL(DDP,DDSVDA,.DA,DDSFLD,DDSPG,.Y)
28: Q
29: ;
30: PUTWP ;File wp field from @DDSVAL into @DDSREFT
31: N DDSTMP
32: S DDSTMP=$NA(@DDSREFT@("F"_DDP,DDSDA))
33: ;
34: I DDSVAL]"",$D(@DDSVAL) D Q:$G(DIERR)
35: . D PUTWP^DIEFW($E("A",DDSPARM["A"),DDSVAL,$NA(@DDSTMP@(DDSFLD,"D")))
36: E K @DDSTMP@(DDSFLD,"D")
37: ;
38: S:$D(@DDSTMP@(DDSFLD,"M"))[0 ^("M")="0"_DDSVDIC_U_DDSVSUB
39: S:$D(@DDSTMP@("GL"))[0 ^("GL")=DIE
40: S (DDSCHG,@DDSTMP@(DDSFLD,"F"))=3
41: Q
42: ;
43: GETWP ;Merge wp field into ^TMP, return root in DDSANS
44: N DDSGL
45: S DDSGL=DIE_DA_","""_DDSVND_""","
46: S DDSANS=$NA(^TMP("DDSWP",$J,DDP,DDSDA,DDSFLD))
47: ;
48: K @DDSANS
49: M:$D(@(DDSGL_"0)"))#2 @DDSANS=@($E(DDSGL,1,$L(DDSGL)-1)_")")
50: Q
51: ;
52: REL(DDP,DA,DDSFLD,DDSPARM) ;Relational syntax
53: N DDSCD,DDSI,X
54: D DD^DDSPTR(DDP,DDSFLD,"",.DDSCD,"",DDSPARM["I"+1)
55: F DDSI=1:1:DDSCD X DDSCD(DDSI)
56: Q X
57: ;
58: ERR(DDSVEP) ;Print error messages
59: Q:'$G(DIERR)
60: I '$D(DDS) D MSG^DIALOG("BW") Q
61: N DDSVMSG
62: S DDSER=DIERR
63: D BLD^DIALOG(3031,DDSVEP,"","DDSVMSG")
64: D MSG^DDSMSG(DDSVMSG(1)),ERR^DDSMSG
65: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>