| 1 | DIAXU ;SFISC/DCM-UPDATE DESTINATION FILE ;8/16/96  16:42
 | 
|---|
| 2 |  ;;22.0;VA FileMan;;Mar 30, 1999
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 | DIAX ;called from ^DIAX (Update Destination File option)
 | 
|---|
| 6 | DQ ;
 | 
|---|
| 7 |  I $D(ZTQUEUED) N DIAR,DIAX S ZTREQ="@",DIAR=6,DIAX=1 D MRK^DIARU
 | 
|---|
| 8 |  N DIAXF,DIAXFRT S DIAXF=$P(^DIAR(1.11,DIARC,0),U,2),DIAXFRT=$$ROOT^DILFD(DIAXF)
 | 
|---|
| 9 |  D EXTRACT(DIAXF,DIARB,DIARP)
 | 
|---|
| 10 |  D UPDATE^DIARU
 | 
|---|
| 11 |  I $D(ZTQUEUED),$G(DIERR) S ZTIO=DIAXIOP,ZTRTN="XREP^DIAXU",ZTDESC="EXTRACT TOOL EXCEPTION REPORT",ZTSAVE("^TMP(""DIAXU"",$J)")="",ZTSAVE("^TMP(""DIERR"",$J)")="",ZTSAVE("DIARC")="" D ^%ZTLOAD Q 
 | 
|---|
| 12 | XREP ;
 | 
|---|
| 13 |  I $D(ZTQUEUED) S ZTREQ="@"
 | 
|---|
| 14 |  D ^DIAXP
 | 
|---|
| 15 |  Q
 | 
|---|
| 16 | EN ; obsolete, replaced by EXTRACT
 | 
|---|
| 17 |  N %,DIAXERR S DIAXERR=""
 | 
|---|
| 18 |  D CLEAN^DIEFU
 | 
|---|
| 19 |  F %=$G(DIAXF)_U_"DIAXF",$G(DIAXFE)_U_"DIAXFE",$G(DIAXT)_U_"DIAXT" I $P(%,U,1)']"" D ERR(201,$P(%,U,2))
 | 
|---|
| 20 |  Q:$G(DIERR)
 | 
|---|
| 21 |  D EXTRACT(DIAXF,DIAXFE,DIAXT,$S($D(DIAXDEL):"D",1:""))
 | 
|---|
| 22 |  I '$G(DIERR),$D(^TMP("DIAXU",$J,"RESULT",DIAXF,DIAXFE)) S DIAXDA=^(DIAXFE)
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 | DIPT N X,D,SCR,DIARP,DIAR,DIPG
 | 
|---|
| 26 |  S X=$S(DIAXT:DIAXT,1:$P($P(DIAXT,"[",2),"]")),D="F"_DIAXF,SCR="I $P(^(0),U,8)=2"
 | 
|---|
| 27 |  S DIARP=$$FIND1^DIC(.4,"","XA",X,D,SCR,DIAXERR)
 | 
|---|
| 28 |  Q:$G(DIERR)  I 'DIARP D ERR(202,"EXTRACT TEMPLATE") Q
 | 
|---|
| 29 |  S DIAR=6,DIPG=1,DIAXT=DIARP,DIAXDF=$P(^DIPT(DIAXT,0),U,9),DIAXDFRT=$$ROOT^DILFD(DIAXDF)
 | 
|---|
| 30 |  D EN^DIAXM
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 | DIK N DIK,DA
 | 
|---|
| 33 |  S DIK=$$ROOT^DILFD(DIAXF),DA=DIAXFE
 | 
|---|
| 34 |  D ^DIK
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 | K K @DIAXTFR,@DIAXTTO
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 | ONE I '$$VENTRY^DIEFU(DIAXF,DIAXFE) D ERR(601,DIAXFE),STE() Q
 | 
|---|
| 39 |  D ^DIAXD I $G(DIERR) D:$D(DIAXFILE)  D STE() Q
 | 
|---|
| 40 |  . N DIERR,A S A("IEN")=DIAXFE
 | 
|---|
| 41 |  . D BLD^DIALOG(1300,"",.A)
 | 
|---|
| 42 |  D ^DIAXF I $G(DIERR) D STE() Q
 | 
|---|
| 43 |  Q:$D(DIAX)
 | 
|---|
| 44 |  I $G(DIAXFLGS)["D" D DIK
 | 
|---|
| 45 |  I $G(DIAXDA) S @DIAXRSLT@("RESULT",DIAXF,DIAXFE)=DIAXDA
 | 
|---|
| 46 |  Q
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 | DIBT N SCR,D
 | 
|---|
| 49 |  S D="F"_DIAXF,SCR="I $P(^(0),U,4)="_DIAXF_",'$P(^(0),U,8)"
 | 
|---|
| 50 |  S DIAXST=$S($G(DIAXST):DIAXST,1:$$FIND1^DIC(.401,"","AX",DIAXST,D,SCR,DIAXERR))
 | 
|---|
| 51 |  I 'DIAXST!('$D(^DIBT(DIAXST,1))) D ERR(202,"SEARCH TEMPLATE") S:$G(DIAR) DIAR="" Q
 | 
|---|
| 52 |  N Z S Z=0 F  S Z=$O(^DIBT(DIAXST,1,Z)) Q:Z'>0  D
 | 
|---|
| 53 |  . N DIAXDA,DIAXFE,DIERR
 | 
|---|
| 54 |  . S DIAXFE=Z
 | 
|---|
| 55 |  . D ONE
 | 
|---|
| 56 |  . Q:$G(DIERR)
 | 
|---|
| 57 |  . I $G(DIAX) D  Q
 | 
|---|
| 58 |  . . N FDA,IEN
 | 
|---|
| 59 |  . . S FDA(1.14,"+"_+DIAXFE_","_DIARC_",",.01)=DIAXDA,IEN(DIAXFE)=DIAXDA
 | 
|---|
| 60 |  . . D UPDATE^DIE("","FDA","IEN")
 | 
|---|
| 61 |  . . S @(DIAXFRT_"DIAXFE,-9)")=DIARC
 | 
|---|
| 62 |  . I $G(DIAXFLGS)["D" K ^DIBT(DIAXST,1,DIAXFE)
 | 
|---|
| 63 |  Q
 | 
|---|
| 64 | STE(FI,IEN) N Z
 | 
|---|
| 65 |  S:$G(FI)="" FI=DIAXF
 | 
|---|
| 66 |  S:$G(IEN)="" IEN=DIAXFE
 | 
|---|
| 67 |  S DIERRZ=(DIERR+DIERRZ)_U_($P(DIERR,U,2)+($P(DIERRZ,U,2)))
 | 
|---|
| 68 |  F DIERRLST=DIERRLST:1:$O(^TMP("DIERR",$J,"E"),-1) S Z=DIERRLST_";"
 | 
|---|
| 69 |  S @DIAXRSLT@("RESULT","ERR",FI,IEN)=Z
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 | ERR(DIAXER,DIAXTXT) ;
 | 
|---|
| 72 |  D BLD^DIALOG(DIAXER,DIAXTXT,"",DIAXERR,"F")
 | 
|---|
| 73 |  Q
 | 
|---|
| 74 | EXTRACT(DIAXF,DIAXSRCE,DIAXT,DIAXFLGS,DIAXSCR,DIAXFILE,DIAXRSLT,DIAXERRA) ;
 | 
|---|
| 75 |  N DIAXST,DIAXFE,T,DIFM,DIOVRD,DIERRLST,DIAXTFR,DIAXTTO,DIAXDF,DIAXDFRT,DIAXERR,DIERRZ,DIAXDA
 | 
|---|
| 76 |  S DIAXRSLT=$S($G(DIAXRSLT)]"":DIAXRSLT,1:"^TMP(""DIAXU"",$J)"),(DIFM,DIOVRD)=1,(DIERRLST,DIERRZ)=0,DIAXERR=""
 | 
|---|
| 77 |  K ^TMP("DIAXU",$J),^TMP("DIAX",$J),^TMP($J) D CLEAN^DIEFU
 | 
|---|
| 78 |  I '$G(DIAR) D  Q:$G(DIERR)
 | 
|---|
| 79 |  . N %,PARAM F %=1:1:3 S PARAM=$S(%=1:$G(DIAXF)_U_"FILE",%=2:$G(DIAXSRCE)_U_"SOURCE",1:$G(DIAXT)_U_"EXTRACT TEMPLATE") I $P(PARAM,U)']"" D ERR(202,$P(PARAM,U,2))
 | 
|---|
| 80 |  . Q:$G(DIERR)
 | 
|---|
| 81 |  . I '$$VFILE^DIEFU(DIAXF) D ERR(202,"FILE") Q
 | 
|---|
| 82 |  . I $G(DIAXSRCE) S DIAXFE=+DIAXSRCE,T="ONE"
 | 
|---|
| 83 |  . I $E(DIAXSRCE)="[" S DIAXST=$P($P(DIAXSRCE,"[",2),"]"),T="DIBT"
 | 
|---|
| 84 |  . D DIPT
 | 
|---|
| 85 |  . Q
 | 
|---|
| 86 |  E  S T="DIBT",DIAXST=DIAXSRCE
 | 
|---|
| 87 |  D ^DIAXT I $G(DIERR) S:$G(DIAR) DIAR="" Q
 | 
|---|
| 88 |  D @T,K
 | 
|---|
| 89 |  I $G(DIERRZ) S DIERR=DIERRZ
 | 
|---|
| 90 |  I $G(DIERR),$G(DIAXERRA)]"" M @DIAXERRA@("DIERR")=^TMP("DIERR",$J) K ^TMP("DIERR",$J)
 | 
|---|
| 91 |  Q
 | 
|---|