1 | DDXP4 ;SFISC/DPC,S0-EXPORT DATA ;7:37 AM 30 May 2000
|
---|
2 | ;;22.0;VA FileMan;**9,38**;Mar 30, 1999
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | EN1 ;
|
---|
5 | K ^UTILITY($J)
|
---|
6 | D ^DICRW I Y=-1 G QUIT
|
---|
7 | S DDXPFINO=+Y
|
---|
8 | XTEM ;
|
---|
9 | S DIC="^DIPT(",DIC(0)="QEASZ",DIC("A")="Choose an EXPORT template or '^' to Quit: ",DIC("S")="I $P(^(0),U,8)=3",D="F"_DDXPFINO W !
|
---|
10 | D IX^DIC K DIC,D I $D(DTOUT)!$D(DUOUT) G QUIT
|
---|
11 | I Y=-1 G XTEM
|
---|
12 | S DDXPXTNO=+Y,DDXPXTNM=$P(Y,U,2),FLDS="["_DDXPXTNM_"]"
|
---|
13 | I DUZ(0)[$E($P(Y(0),U,6),1)!(DUZ(0)="@") D I $D(DIRUT) G QUIT
|
---|
14 | . W !,"Do you want to delete the "_DDXPXTNM_" template",!,"after the data export is complete?",!
|
---|
15 | . S DDXPTMDL=0,DIR(0)="Y",DIR("B")="NO" D ^DIR K DIR W !
|
---|
16 | . S:Y DDXPTMDL=1
|
---|
17 | S DDXPFFNO=+$G(^DIPT(DDXPXTNO,105)),DDXPFMZO=$G(^DIST(.44,DDXPFFNO,0))
|
---|
18 | I $G(^DIST(.44,DDXPFFNO,6))]"" S DDXPDATE=1
|
---|
19 | S DDXPATH=$P($G(^DIPT(DDXPXTNO,105)),U,4) I DDXPATH]"" D MULTBY
|
---|
20 | SORS ;
|
---|
21 | W ! S DIR(0)="YA",DIR("B")="NO",DIR("A")="Do you want to SEARCH for entries to be exported? "
|
---|
22 | S DIR("?",1)="To use VA FileMan's SEARCH option to choose entries, answer 'YES'."
|
---|
23 | S:'$D(BY) DIR("?",2)="After the SEARCH, you can respond to VA FileMan's 'SORT BY:' prompt."
|
---|
24 | S DIR("?")="If you answer 'NO', "_$S('$D(BY):"you can only SORT entries before export.",1:"the data export will begin.")
|
---|
25 | D ^DIR K DIR I $D(DIRUT) G QUIT
|
---|
26 | S DDXPSORS=Y,DIC=DDXPFINO,L=0
|
---|
27 | D DIOBEG,DIOEND
|
---|
28 | I DDXPSORS D EN^DIS
|
---|
29 | I $G(X)="^"!($G(POP)) G QUIT
|
---|
30 | I 'DDXPSORS D EN1^DIP
|
---|
31 | I $G(X)="^"!($G(POP)) G QUIT
|
---|
32 | I $G(DDXPQ),$G(DDXPTMDL) W !,?5,"Export template "_DDXPXTNM_" will be deleted",!,?5,"when queued export is completed." G DONE
|
---|
33 | I $G(DDXPTMDL) S DIK="^DIPT(",DA=DDXPXTNO D ^DIK K DIK,DA
|
---|
34 | G DONE
|
---|
35 | QUIT ;
|
---|
36 | W !!,?10,"Export NOT completed!"
|
---|
37 | DONE ;
|
---|
38 | K DDXPFINO,DDXPSORS,DDXPIOM,DDXPIOSL,DDXPXTNO,DDXPXTNM,DDXPFFNO,DDXPFMZO,DDXPCUSR,DDXPDATE,DDXPTMDL,DDXPY,DDXPATH,L,Y,DTOUT,DUOUT,DIRUT,DIC,FLDS,BY,FR,DIOEND,DIOBEG,DDXPQ,X,POP
|
---|
39 | Q
|
---|
40 | ZIS ;
|
---|
41 | S %ZIS="Q"
|
---|
42 | S DDXPIOM=$S($P(DDXPFMZO,U,8):$P(DDXPFMZO,U,8),$G(^DIPT(DDXPXTNO,"IOM")):^("IOM"),1:80)
|
---|
43 | S DDXPIOSL=99999
|
---|
44 | Q
|
---|
45 | MULTBY ;
|
---|
46 | N NUMPC,I,C S BY="",C=",",NUMPC=$L(DDXPATH,C)
|
---|
47 | W !!,"Since you are exporting fields from multiples,"
|
---|
48 | W !,"a sort will be done automatically."
|
---|
49 | W !,"You will NOT have the opportunity to sort the data before export.",!
|
---|
50 | F I=1:1:NUMPC D
|
---|
51 | . S BY=BY_DDXPATH_",NUMBER,"
|
---|
52 | . S DDXPATH=$P(DDXPATH,C,1,$L(DDXPATH,C)-1)
|
---|
53 | . Q
|
---|
54 | S BY=$E(BY,1,$L(BY)-1),FR=""
|
---|
55 | Q
|
---|
56 | DIOBEG ;
|
---|
57 | S DDXPBEG=$G(^DIST(.44,DDXPFFNO,1))
|
---|
58 | I DDXPBEG']"" G QBEG
|
---|
59 | I $E(DDXPBEG)="""" S DIOBEG="W "_DDXPBEG G QBEG
|
---|
60 | S DIOBEG=DDXPBEG
|
---|
61 | QBEG K DDXPBEG
|
---|
62 | Q
|
---|
63 | DIOEND ;
|
---|
64 | S DDXPEND=$G(^DIST(.44,DDXPFFNO,2))
|
---|
65 | I DDXPEND']"" G QEND
|
---|
66 | I $E(DDXPEND)="""" S DIOEND="W "_DDXPEND G QEND
|
---|
67 | S DIOEND=DDXPEND
|
---|
68 | QEND K DDXPEND
|
---|
69 | Q
|
---|
70 | DJTOPY(Y) ;
|
---|
71 | N BJ,EJ,YOUT,NUMW,TYPEJ,DDXPXORY,SUB S YOUT=Y
|
---|
72 | S BJ=$F(Y,"$J(") I BJ D
|
---|
73 | . S DDXPXORY=$P($E(Y,BJ,999),",",1)
|
---|
74 | . S NUMW=$L($E(Y,1,BJ),"W")-1 I NUMW'>0 Q
|
---|
75 | . S EJ=$F(Y,") ",BJ)
|
---|
76 | . S TYPEJ=$L($E(Y,BJ,$S(EJ:EJ-1,1:999)),",")
|
---|
77 | . I TYPEJ'=2&(TYPEJ'=3) Q
|
---|
78 | . I TYPEJ=3 S SUB="$S("_DDXPXORY_"]"""":+"_DDXPXORY_",1:"""_$P(DDXPFMZO,U,13)_""")"
|
---|
79 | . I TYPEJ=2 S SUB=DDXPXORY
|
---|
80 | . S YOUT=$P($E(Y,1,BJ),"W",1,NUMW)_"W "_SUB_$S(EJ:$E(Y,EJ-1,999),1:"")
|
---|
81 | . Q
|
---|
82 | Q YOUT
|
---|
83 | DT ;
|
---|
84 | N X
|
---|
85 | I 'Y S DDXPY=Y Q
|
---|
86 | S X=Y
|
---|
87 | I $D(^DIST(.44,DDXPFFNO,6)) X ^(6) S DDXPY=$G(Y)
|
---|
88 | Q
|
---|
89 | EN2 ; Export API from EXPORT^DDXP
|
---|
90 | N DDXP,DDXPXTNO,DDPXFFNO,DDXPFMZO,DDXPDATE,DDXPATH,DDXPOUT,ERROR,DIA
|
---|
91 | K ^UTILITY($J)
|
---|
92 | ; Check for valild file number
|
---|
93 | I '$G(DDXPFINO) S ERROR="File Number Missing." D EN2ERR G DONE
|
---|
94 | I DDXPFINO[U D I $D(DDXPOUT) K DDXPOUT G DONE
|
---|
95 | . I $P(DDXPFINO,U)'=1.1 S DDXPOUT=1,ERROR="You can only use the "","" syntax if doing an Export of the Audit File(1.1)" D EN2ERR Q
|
---|
96 | . I '$D(^DIC(+$P(DDXPFINO,U,2),0))#2 S DDXPOUT=1,ERROR="File Does Not Exist on This System." D EN2ERR Q
|
---|
97 | I DDXPFINO'[U,'$D(^DIC(+DDXPFINO,0))#2 S ERROR="File Does Not Exist on This System." D EN2ERR G DONE
|
---|
98 | N DIC,D,X
|
---|
99 | S DIC="^DIPT(",DIC(0)="SZ",DIC("S")="I $P(^(0),U,8)=3",D="F"_+DDXPFINO,X=DDXPXTNM
|
---|
100 | D IX^DIC K DIC
|
---|
101 | I Y<0 S ERROR="The Template is Not an Export Template or Is Missing." D EN2ERR G DONE
|
---|
102 | S DDXPXTNO=+Y
|
---|
103 | S DDXPFFNO=+$G(^DIPT(DDXPXTNO,105)),DDXPFMZO=$G(^DIST(.44,DDXPFFNO,0))
|
---|
104 | I $G(^DIST(.44,DDXPFFNO,6))]"" S DDXPDATE=1
|
---|
105 | I $G(DDXPBY)="" S DDXPATH=$P($G(^DIPT(DDXPXTNO,105)),U,4) I DDXPATH]"" D MULTBY
|
---|
106 | ; Setup For Sort Template If BY NOT Setup by MULTBY
|
---|
107 | I '$D(BY) D I $D(DDXPOUT) K DDXPOUT S ERROR="Sort Template Invalid or Missing." D EN2ERR G DONE
|
---|
108 | . I $G(DDXPBY)]"" D Q:$D(DDXPOUT)
|
---|
109 | .. N DIC,X
|
---|
110 | .. S DIC="^DIBT(",DIC(0)="Z",X=DDXPBY
|
---|
111 | .. D ^DIC K DIC
|
---|
112 | .. I Y<0 S DDXPOUT=1 Q
|
---|
113 | .. D SORTCHK I $D(DDXPOUT) Q
|
---|
114 | .. S BY="["_DDXPBY_"]"
|
---|
115 | S DDXP=4 ; Tell other FileMan routines we are Exporting
|
---|
116 | S DIC=$S(+DDXPFINO=1.1:"^DIA("_+$P(DDXPFINO,U,2)_",",1:+DDXPFINO)
|
---|
117 | S L=0
|
---|
118 | S FLDS="["_DDXPXTNM_"]"
|
---|
119 | D DIOBEG,DIOEND,EN1^DIP
|
---|
120 | I $G(X)="^"!($G(POP)) K DDXP,DDXPBY,DDXPFR,DDXPTO G QUIT
|
---|
121 | K:$D(DIA) DIA ; **Leaking Variable**
|
---|
122 | I $G(DDXPTMDL) S DIK="^DIPT(",DA=DDXPXTNO D ^DIK K DIK,DA
|
---|
123 | K DDXP,DDXPBY,DDXPFR,DDXPTO
|
---|
124 | G DONE
|
---|
125 | SORTCHK ; Check Sort For Illegal Qualifiers
|
---|
126 | N D0,D1,DDXPX,I
|
---|
127 | S D0=+Y
|
---|
128 | S D1=0
|
---|
129 | F S D1=$O(^DIBT(D0,2,D1)) Q:D1<1!$D(DDXPOUT) D
|
---|
130 | . S DDXPX=^DIBT(D0,2,D1,0)
|
---|
131 | . F I="#","!","+","@" D Q:$D(DDXPOUT)
|
---|
132 | .. I $P(DDXPX,U,4)[I,I'="@" S DDXPOUT=1,ERROR="You can not use the """_I_""" when exporting." D EN2ERR Q
|
---|
133 | .. I I="@",$P(DDXPX,U,4)["@",$P(DDXPX,U,4)'["@B" S DDXPOUT=1,ERROR="You can not use the ""@"" when exporting." D EN2ERR Q
|
---|
134 | . F I=";C",";S" D Q:$D(DDXPOUT)
|
---|
135 | .. I $P(DDXPX,U,5)[I S DDXPOUT=1,ERROR="You can not use "_I_" when exporting." D EN2ERR Q
|
---|
136 | .. I $P(DDXPX,U,5)[";""" S DDXPOUT=1,ERROR="You can Replace a Caption when exporting." D EN2ERR Q
|
---|
137 | Q
|
---|
138 | EN2ERR ; Error Processing
|
---|
139 | I $D(IOST),$E(IOST,1,2)="C-" W $C(7)
|
---|
140 | W "=>"_ERROR,!
|
---|
141 | K DDXPBY,DDXPFR,DDXPTO,ERROR
|
---|
142 | Q
|
---|