1 | TMGDIT0 ;SFISC/XAK-PREPARE TO XFR ;09:21 AM Jul 19, 1988
|
---|
2 | ;;22.0;VA FileMan;;Mar 30, 1999
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;"Copied from FM, for customization
|
---|
5 |
|
---|
6 | K Y,DIC
|
---|
7 | S DIT=DDF(1)
|
---|
8 | S DIC=L
|
---|
9 | S DIC(0)="EQLAM"
|
---|
10 | S X="DATA INTO WHICH "
|
---|
11 | D LK ;"--> ^DIC Asks for destination record, and creates new if needed. Y=destination record
|
---|
12 | G Q:Y<0 ;"abort if requested
|
---|
13 | S DFR=+Y
|
---|
14 | S DTO(1)=DIC_+Y_"," ;"DTO is DESTINATION info array
|
---|
15 | ;"At this point we have:
|
---|
16 | ;" DTO=^VA(200,
|
---|
17 | ;" DTO(1) = ^VA(200,166,
|
---|
18 | S DIC(0)="EQAM",X="FROM ",DIC("S")="I Y-"_+Y
|
---|
19 | D LK ;"--> ^DIC Asks for source record.
|
---|
20 | G Q:Y<0 ;"abort if requested
|
---|
21 | S S %=2 ;"default to NO delete
|
---|
22 | ;"//ktW !," WANT TO DELETE THIS ENTRY AFTER IT'S TRANSFERRED"
|
---|
23 | ;"//ktD YN^DICN ;"%=1 for YES, %=2 for NO
|
---|
24 | G Q:%<0 ;"abort if requested
|
---|
25 | S DH=2-% ;"DH=1 for delete, DH=0 for NO delete
|
---|
26 | I '% do goto S ;"loop back
|
---|
27 | . do F^TMGDIT
|
---|
28 | S ^UTILITY("DIT",$J,+Y)=DFR_";"_$E(DIC,2,999)
|
---|
29 | S DTO=0
|
---|
30 | S (D0,DA)=+Y
|
---|
31 | S DIK=DIC
|
---|
32 | S DFR(1)=DIC_DA_","
|
---|
33 | K DIC
|
---|
34 | D WAIT^DICD ;"Let me put you on hold...
|
---|
35 | GO D GO^DITR ;"Find fields to XRef
|
---|
36 | S DIT=DH
|
---|
37 | D KL^TMGDIT
|
---|
38 | D ^DIK:DH ;"kill record if prev requested (I think)
|
---|
39 | S DA=DFR
|
---|
40 | K DFR
|
---|
41 | D IX1^DIK
|
---|
42 |
|
---|
43 | S DH=DIT
|
---|
44 | set %=2 ;"//kt added
|
---|
45 | ;"//ktD ASK^DITP ;"Ask, redirect pointers? %: 1=yes, 2=no
|
---|
46 | ;"//ktD PTS^DITP:%=1
|
---|
47 | Q G Q^TMGDIT
|
---|
48 | ;
|
---|
49 | LK S DIC("A")="TRANSFER "_X_DFL
|
---|
50 | G ^DIC
|
---|
51 | ;
|
---|
52 | EN ; PROGRAMMER CALL
|
---|
53 | ; DIT("F") = GLOBAL ROOT OR FILE # OF FILE TO TRANSFER FROM
|
---|
54 | ; DIT("T") = GLOBAL ROOT OR FILE # OF FILE TO TRANSFER TO
|
---|
55 | ; DA("F") = ENTRY # IN FILE TO TRANSFER FROM
|
---|
56 | ; DA("T") = ENTRY # IN FILE TO TRANSFER TO
|
---|
57 | ;" //kt: Note: this does not delete the FROM record
|
---|
58 | ;
|
---|
59 | I '$D(DIT("F"))!'$D(DIT("T"))!'$D(DA("F"))!'$D(DA("T")) G FIN
|
---|
60 | S DDF(1)=DIT("F")
|
---|
61 | S DDT(0)=DIT("T")
|
---|
62 | I 'DDF(1) do goto FIN:'DDF(1)
|
---|
63 | . set DDF(1)=$piece($get(@(DDF(1)_"0")),"^",2)
|
---|
64 | . if DDF(1)="" set DDF(1)=0
|
---|
65 | . ;"S DDF(1)=$S($D(@(DDF(1)_"0)"))#2:+$P(^(0),U,2),1:0)
|
---|
66 | . Q:'DDF(1)
|
---|
67 | . S DFR(1)=DIT("F")
|
---|
68 | I 'DDT(0) do G FIN:'DDT(0) goto C
|
---|
69 | . S DDT(0)=$S($D(@(DDT(0)_"0)"))#2:+$P(^(0),U,2),1:0)
|
---|
70 | . quit:'DDT(0)
|
---|
71 | . S DTO(1)=DIT("T")
|
---|
72 | G FIN:'$D(^DIC(+DDF(1),0,"GL"))
|
---|
73 | S DFR(1)=^("GL")
|
---|
74 | G FIN:'$D(^DIC(+DDT(0),0,"GL"))
|
---|
75 | S DTO(1)=^("GL")
|
---|
76 | C S DB=DA("F")
|
---|
77 | S (DB1,DFR)=DA("T")
|
---|
78 | S DIK=DTO(1)
|
---|
79 | I $D(DA(1)) F I=1:1 G:'$D(DA(I)) SET do
|
---|
80 | . S DRF(I)=$P(DA(I),",",1)_",1,"
|
---|
81 | . S DOT(I)=$P(DA(I),",",2)_",1,"
|
---|
82 |
|
---|
83 | DON K DRF,DOT
|
---|
84 | S DFR(1)=DFR(1)_DB_","
|
---|
85 | S DTO(1)=DTO(1)_DB1_","
|
---|
86 | S DKP=1,DMRG=1,DTO=0,DH=0
|
---|
87 | G GO
|
---|
88 |
|
---|
89 | SET F I=I-1:-1 G:I'>0 DON do
|
---|
90 | . S DFR(1)=DFR(1)_DRF(I)
|
---|
91 | . S DTO(1)=DTO(1)_DOT(I)
|
---|
92 | FIN ;
|
---|
93 | K DDF,DFR,DDT,DTO
|
---|
94 | Q
|
---|