| 1 | DDSVALM ;SFISC/MKO-PUT FOR MULTIPLES (SELECT PROMPT) ;10:45 AM  9 Sep 1994 | 
|---|
| 2 | ;;22.0;VA FileMan;;Mar 30, 1999 | 
|---|
| 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 | 
|---|