| 1 | DDS02 ;SFISC/MKO-OVERFLOW FROM ^DDS01 ;1:50 PM  16 Jul 1999
 | 
|---|
| 2 |  ;;22.0;VA FileMan;**8,11**;Mar 30, 1999
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | UNED ;Change was made to uneditable field
 | 
|---|
| 5 |  D MSG^DDSMSG("No editing allowed.",1)
 | 
|---|
| 6 |  I $P($G(DDSO(0)),U,3)=2 N DDP S DDP=0
 | 
|---|
| 7 |  S @DDSREFT@("F"_DDP,DDSDA,DDSFLD,"D")=DDSOLD S:$D(DDSU("X"))#2 ^("X")=DDSU("X")
 | 
|---|
| 8 |  Q
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 | SV ;Save
 | 
|---|
| 11 |  S DDACT="N"
 | 
|---|
| 12 |  I $G(DDSDN)=1,DDO D ERR3^DDS3 Q
 | 
|---|
| 13 |  I DDSSC'>1,'$G(DDSSEL),'$P(DDSSC(DDSSC),U,4) D S^DDS3 Q
 | 
|---|
| 14 |  N DDSEM
 | 
|---|
| 15 |  S DDSEM(1)="You cannot save changes at this level."
 | 
|---|
| 16 |  S DDSEM(2)="To close the current page, press <PF1>C."
 | 
|---|
| 17 |  D MSG^DDSMSG(.DDSEM,1)
 | 
|---|
| 18 |  Q
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 | EXT ;Process external form
 | 
|---|
| 21 |  I '$P($G(DDSU("DD")),U,2),$P($G(DDSU("DD")),U,2)["P" D PT
 | 
|---|
| 22 |  I $P($G(DDSO(0)),U,3)=2,$E($P($G(DDSO(20)),U))="P" D PTFO
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  S:DDSOLD=Y DIR0N=1
 | 
|---|
| 25 |  S DDSX=X,DDSY=Y
 | 
|---|
| 26 |  I Y]"",$P($G(DDSU("DD")),U,2)["O",$G(^DD(DDP,DDSFLD,2))'?."^" K Y(0) X ^(2) S Y(0)=Y
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  S DDSEXT=$G(Y(0,0),$G(Y(0),Y)),X=DDSY
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 |  I $D(DDSO(14)) K DDSERROR X DDSO(14) I $D(DDSERROR)#2 D  Q
 | 
|---|
| 31 |  . K DDSERROR,DDSY S DIR0("L")=DDSEXT,DDSCHKQ=1
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 |  I DDSY="",DDSFLD'=.01 D  Q:'$D(DDSY)
 | 
|---|
| 34 |  . N DDSREQ,DDSKEY
 | 
|---|
| 35 |  . S DDSREQ=$P($G(DDSU("A")),U)
 | 
|---|
| 36 |  . S:DDSREQ="" DDSREQ=$P($G(DDSO(4)),U)
 | 
|---|
| 37 |  . S:DDSREQ="" DDSREQ=$P($G(DDSU("DD")),U,2)["R"
 | 
|---|
| 38 |  . S DDSKEY=$D(^DD("KEY","F",DDP,DDSFLD))>0
 | 
|---|
| 39 |  . I 'DDSREQ,'DDSKEY Q
 | 
|---|
| 40 |  . K DDSY
 | 
|---|
| 41 |  . S DDSCHKQ=1,DIR0("L")=DDSEXT
 | 
|---|
| 42 |  . D MSG^DDSMSG("This is a required "_$S(DDSKEY:"key ",1:"")_"field.",1)
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 |  S DY=$P(DIR0,U),DX=$P(DIR0,U,2)
 | 
|---|
| 45 |  I DDSEXT'=DDSX D
 | 
|---|
| 46 |  . X IOXY
 | 
|---|
| 47 |  . S DDSX=$E(DDSEXT,1,$P(DIR0,U,3))
 | 
|---|
| 48 |  . I '$P(DIR0,U,6) S DDSX=DDSX_$J("",$P(DIR0,U,3)-$L(DDSEXT))
 | 
|---|
| 49 |  . E  S DDSX=$J("",$P(DIR0,U,3)-$L(DDSEXT))_DDSX
 | 
|---|
| 50 |  . W $P(DDGLVID,DDGLDEL)_DDSX_$P(DDGLVID,DDGLDEL,10)
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 |  I $G(DDSU("K")),DDSY]""!(DDSFLD'=.01) D  Q:'$D(DDSY)
 | 
|---|
| 53 |  . N DDSFXR,DDSUI,DDSUNIQ,DDSVSV,DIIENS
 | 
|---|
| 54 |  . D LOADXREF^DIKC1(DDP,"","",DDSU("K"),$NA(@DDSREFT@("F"))_"_","DDSFXR")
 | 
|---|
| 55 |  . S:$D(@DDSREFT@("F"_DDP,DDSDA,DDSFLD,"D"))#2 DDSVSV=^("D") S ^("D")=DDSY
 | 
|---|
| 56 |  . S DDSUNIQ=1,DDSUI=0
 | 
|---|
| 57 |  . F  S DDSUI=$O(DDSFXR(DDP,DDSUI)) Q:'DDSUI  D  Q:'DDSUNIQ
 | 
|---|
| 58 |  .. S DIIENS=DDSDA
 | 
|---|
| 59 |  .. D SETXARR^DIKC(DDP,DDSUI,"DDSFXR","","D")
 | 
|---|
| 60 |  .. S DDSUNIQ=$$UNIQUE^DIKK2(DDP,DDSUI,.X,.DA,"DDSFXR")
 | 
|---|
| 61 |  . I 'DDSUNIQ D
 | 
|---|
| 62 |  .. K DDSY
 | 
|---|
| 63 |  .. S DDSCHKQ=1,DIR0("L")=DDSEXT
 | 
|---|
| 64 |  .. D MSG^DDSMSG("Another entry already exists with this key value.",1)
 | 
|---|
| 65 |  .. K @DDSREFT@("F"_DDP,DDSDA,DDSFLD,"D") S:$D(DDSVSV)#2 ^("D")=DDSVSV
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 |  D:$G(DDSDA)!'$D(DDSREP)
 | 
|---|
| 68 |  . S:$D(Y(0)) @DDSREFT@("F"_DDP,DDSDA,DDSFLD,"X")=DDSEXT
 | 
|---|
| 69 |  . S @DDSREFT@("F"_DDP,DDSDA,DDSFLD,"D")=DDSY I DDSY="",$D(DDSU("X")) S ^("X")=""
 | 
|---|
| 70 |  K DDSY
 | 
|---|
| 71 |  Q
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 | PT ;Modify Y for pointer type fields
 | 
|---|
| 74 |  I $P(Y,U,3)=1 D
 | 
|---|
| 75 |  . S ^("ADD")=$G(@DDSREFT@("ADD"))+1,^("ADD",^("ADD"))=+Y_","_U_$P(DDSU("DD"),U,3)
 | 
|---|
| 76 |  S Y=$P(Y,U)
 | 
|---|
| 77 |  Q
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 | PTFO ;Modify Y for pointer type form only fields
 | 
|---|
| 80 |  I $P(Y,U,3)=1 D
 | 
|---|
| 81 |  . N R,I S R=""
 | 
|---|
| 82 |  . F I=1:1 Q:$D(DA(I))[0  S R=R_DA(I)_","
 | 
|---|
| 83 |  . S ^("ADD")=$G(@DDSREFT@("ADD"))+1,@DDSREFT@("ADD",@DDSREFT@("ADD"))=+Y_","_R_$S($P(DDSO(20),U,3):^DIC(+$P(DDSO(20),U,3),0,"GL"),1:U_$P($P(DDSO(20),U,3),":"))
 | 
|---|
| 84 |  S Y=$S(Y=-1:"",1:$P(Y,U))
 | 
|---|
| 85 |  Q
 | 
|---|