| 1 | DICATTDK ;SFISC/GFT-DELETE FIELD ;25MAY2007
 | 
|---|
| 2 |  ;;22.0;VA FileMan;**8,118,151**;Mar 30, 1999;Build 10
 | 
|---|
| 3 |  ;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 |  ;FROM ^DICATTDE
 | 
|---|
| 5 | KILL N M,DI,DA,DQ,DICL,D0,DIU,DQI,S,Q,O,X,DICATT4M
 | 
|---|
| 6 |  I $D(DDA) S DDA="D" ;'DELETE' flag for Auditing
 | 
|---|
| 7 |  S S=";",Q=""""
 | 
|---|
| 8 | MAYBGONE S (A,DA(1))=DICATTA,(D0,DA)=DICATTF I '$D(^DD(A,DA)) Q
 | 
|---|
| 9 |  D IJ^DIUTL(A) S DICL=$O(J(""),-1),DQ=""
 | 
|---|
| 10 |  F  S DQ=$O(^DD(0,.01,"DEL",DQ)) Q:DQ=""  I $D(^(DQ,0)) X ^(0) I  S DDSERROR=1,DDSBR=1 H 3 G Q  ;Delete checks
 | 
|---|
| 11 |  S O=^DD(A,D0,0),M=$P(O,U),X=0
 | 
|---|
| 12 |  F  S X=$O(^DD(A,DA,1,X)) Q:'X  I +^(X,0)=DICATTB,$P(^(0),DICATTB,2)?1"^"1.A S DQI=$P(^(0),U,2) ;HMMMMM  remember that this field cross-referenced top level
 | 
|---|
| 13 | MUL I $G(DICATT2) D  ;Delete a multiple field
 | 
|---|
| 14 |  .K ^DD(A,"GL",$P($P(O,U,4),";")) ;SO EN+4^DICATT4 KNOWS TO DELETE THE ENTRIES CORRECTLY
 | 
|---|
| 15 |  .S DQ(+DICATT2)=0
 | 
|---|
| 16 | NEW .S DICATT4M(0)=$NA(^DD(A,D0)) ;from NEW^DICATTD4
 | 
|---|
| 17 |  .S DICATT4M("SB")=$NA(^DD(A,"SB",+$P(O,U,2),D0))
 | 
|---|
| 18 |  .S ^DD(A,D0,0)=O,^DD(A,"SB",+$P(O,U,2),D0)=""
 | 
|---|
| 19 |  .D ^DICATT4
 | 
|---|
| 20 |  .K @DICATT4M(0),@DICATT4M("SB")
 | 
|---|
| 21 |  .D KDD^DICATT4 ;Kill the DD globals below
 | 
|---|
| 22 | ENTRIES E  I $P(O,U,2)'["C"," "'[$P(O,U,4) S DICATT4M=1 D ^DICATT4
 | 
|---|
| 23 |  D DELFLD(DICATTA,DICATTF)
 | 
|---|
| 24 |  D N^DICATTDE
 | 
|---|
| 25 | Q Q
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 | DELFLD(DICATTA,DA) ;ALSO FROM ^DICATTD
 | 
|---|
| 28 |  W $C(7),!,"FIELD DELETED!" S:$D(DDA) DDA=$E("D",DDA="")
 | 
|---|
| 29 |  N A,D0,DIC,DIK,O,M S (DIC,DIK)="^DD(DICATTA,",DA(1)=DICATTA,DA=DICATTF
 | 
|---|
| 30 | AUD S:$D(DDA) ^UTILITY("DDA",$J,DICATTA,DA,0)=$G(^DD(DICATTA,DA,0))
 | 
|---|
| 31 |  D ^DIK
 | 
|---|
| 32 |  Q
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | POST9 ;POST-ACTION OF FIELD 99, 'ARE YOU SURE YOU WANT TO DELETE THE ENTIRE FIELD?'
 | 
|---|
| 38 |  I 'X D  Q  ;IF THEY DON'T ANSWER "YES", REPAINT FIELD LABEL AND QUIT
 | 
|---|
| 39 |  .S X=$P(^DD(DICATTA,DICATTF,0),U)
 | 
|---|
| 40 |  .I $G(DICATT2) D PUT^DDSVALF(1,"DICATT MUL",10,X) Q
 | 
|---|
| 41 |  .D PUT^DDSVALF(1,"DICATT",1,X)
 | 
|---|
| 42 |  S DICATTDK=1,DDACT="EX" ;FORCE EXIT FROM SCREENMAN
 | 
|---|
| 43 |  D REQ^DDSUTL(20,"DICATT",1,0)
 | 
|---|
| 44 | NOREQ ;(not sure anyone uses this entry point yet)
 | 
|---|
| 45 |  D REQ^DDSUTL(67,"DICATT SCREEN",6,0)
 | 
|---|
| 46 |  D REQ^DDSUTL(31,"DICATT2",2.2,0)
 | 
|---|
| 47 |  D REQ^DDSUTL(32,"DICATT2",2.2,0)
 | 
|---|
| 48 |  D REQ^DDSUTL(68,"DICATT4",2.4,0)
 | 
|---|
| 49 |  D REQ^DDSUTL(69,"DICATT4",2.4,0)
 | 
|---|
| 50 |  D REQ^DDSUTL(78,"DICATT6",2.6,0)
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 |  ;
 | 
|---|