| 1 | DDXP32 ;SFISC/DPC-CREATE EXPORT TEMPLATE (CONT) ;12:44 PM  7 Jun 1999
 | 
|---|
| 2 |  ;;22.0;VA FileMan;**9**;Mar 30, 1999
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | CAPDT ;
 | 
|---|
| 5 |  K DDXPFCAP,DDXPDT,DDXPATH N FCAP,NUMPC,C S C=","
 | 
|---|
| 6 |  F DDXPCNDX=1:1:DDXPTOTF D
 | 
|---|
| 7 |  . I DDXPNOUT(DDXPCNDX) Q
 | 
|---|
| 8 |  . S DDXPX=^TMP($J,"TIN",DDXPCNDX),DDXPTGFL=DDXPFINO,NUMPC=0 K FCAP
 | 
|---|
| 9 |  . D FLDFIND
 | 
|---|
| 10 |  . S DDXPFCAP(DDXPCNDX)=FCAP(NUMPC)
 | 
|---|
| 11 |  . F NUMPC=NUMPC-1:-1 Q:'$D(FCAP(NUMPC))  D
 | 
|---|
| 12 |  . . S DDXPFCAP(DDXPCNDX)=DDXPFCAP(DDXPCNDX)_" in "_FCAP(NUMPC)_" subfile"
 | 
|---|
| 13 |  . . Q
 | 
|---|
| 14 |  . K FCAP,NUMPC
 | 
|---|
| 15 |  . Q
 | 
|---|
| 16 |  I $D(DDXPATH) D MULTVER
 | 
|---|
| 17 |  K DDXPX,DDXPCNDX,DDXPTGFL,DDXPDD0 Q
 | 
|---|
| 18 | FLDFIND ;
 | 
|---|
| 19 |  S NUMPC=NUMPC+1
 | 
|---|
| 20 |  I DDXPX=0 D  Q
 | 
|---|
| 21 |  . S FCAP(NUMPC)="NUMBER",DDXPDT(DDXPCNDX)=4
 | 
|---|
| 22 |  . Q
 | 
|---|
| 23 |  I +DDXPX D
 | 
|---|
| 24 |  . S DDXPDD0="^DD("_DDXPTGFL_","_+DDXPX_",0)"
 | 
|---|
| 25 |  . Q
 | 
|---|
| 26 |  I DDXPX=+DDXPX D  Q
 | 
|---|
| 27 |  . S FCAP(NUMPC)=$P(@DDXPDD0,U,1)
 | 
|---|
| 28 |  . S %=$P(@DDXPDD0,U,2),DDXPDT(DDXPCNDX)=$S(%["D":1,%["N":2,1:4) K %
 | 
|---|
| 29 |  . Q
 | 
|---|
| 30 |  I '+DDXPX D  Q
 | 
|---|
| 31 |  . S DDXPDT(DDXPCNDX)=4
 | 
|---|
| 32 |  . I $E(DDXPX)=Q S FCAP(NUMPC)=DDXPX Q
 | 
|---|
| 33 |  . S %=$P(DDXPX,";Z;",2),%=$P(%,Q,2,99),%=$P(%,";",1),FCAP(NUMPC)=$E(%,1,($L(%)-1)) K %
 | 
|---|
| 34 |  . Q
 | 
|---|
| 35 | MULT ;
 | 
|---|
| 36 |  S FCAP(NUMPC)=$P(@DDXPDD0,U,1)
 | 
|---|
| 37 |  S DDXPTGFL=+$P(@DDXPDD0,U,2)
 | 
|---|
| 38 |  I NUMPC=1 D
 | 
|---|
| 39 |  . N %,I,DONE S %=$P(DDXPX,C,1,$L(DDXPX,C)-1),DONE=0
 | 
|---|
| 40 |  . F I=2:1:$L(DDXPX,C) Q:DONE  D
 | 
|---|
| 41 |  . . Q:+$P(%,C,I)
 | 
|---|
| 42 |  . . S %=$P(%,C,1,I-1),DONE=1
 | 
|---|
| 43 |  . . Q
 | 
|---|
| 44 |  . S DDXPATH(DDXPCNDX)=%
 | 
|---|
| 45 |  . Q
 | 
|---|
| 46 |  S DDXPX=$P(DDXPX,C,2,99)
 | 
|---|
| 47 |  G FLDFIND
 | 
|---|
| 48 | SETFLD ;
 | 
|---|
| 49 |  S %L=$S($D(DDXPFLEN):";2///^S X=DDXPFLEN(DDXPFLD)",1:"")
 | 
|---|
| 50 |  S %F=$S($D(DDXPFFNM):";3///^S X=DDXPFFNM(DDXPFLD)",1:"")
 | 
|---|
| 51 |  S (DIC,DIE)="^DIPT("_DDXPXTNO_",100,",DA(1)=DDXPXTNO,DIC("P")=$P(^DD(.4,100,0),U,2),DIC(0)="L" K DO
 | 
|---|
| 52 |  F DDXPFLD=1:1:DDXPTOTF D
 | 
|---|
| 53 |  . I DDXPNOUT(DDXPFLD) Q
 | 
|---|
| 54 |  . S (DINUM,X)=DDXPFLD K DD D FILE^DICN
 | 
|---|
| 55 |  . S DA=DDXPFLD,DR="1////^S X=DDXPDT(DDXPFLD)"_%L_%F D ^DIE
 | 
|---|
| 56 |  . Q
 | 
|---|
| 57 |  K DIE,DIC,X,Y,DA,DR,%L,%F
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 | SETEMP ;
 | 
|---|
| 60 |  S DR="2///NOW;4///"_DDXPFINO_";5///"_DUZ_";8///3;105////"_DDXPFMNO S:$G(DDXPATH) DR=DR_";115///"_DDXPATH
 | 
|---|
| 61 |  S DA=DDXPXTNO,DIE="^DIPT(" D ^DIE K DIE,DA,DR
 | 
|---|
| 62 |  ; Hard Set ReadAccess and WriteAccess
 | 
|---|
| 63 |  I $D(^DIPT(DDXPXTNO,0))#2,$D(DUZ(0))#2 D
 | 
|---|
| 64 |  . S $P(^DIPT(DDXPXTNO,0),U,3)=DUZ(0) ; Read Access
 | 
|---|
| 65 |  . S $P(^DIPT(DDXPXTNO,0),U,6)=DUZ(0) ; Write Access
 | 
|---|
| 66 |  S %X="^DIPT("_DDXPFDTM_",""DXS"",",%Y="^DIPT("_DDXPXTNO_",""DXS""," D %XY^%RCR K %X,%Y
 | 
|---|
| 67 |  S ^DIPT(DDXPXTNO,"SUB")=1
 | 
|---|
| 68 |  S ^DIPT(DDXPXTNO,"H")="@@"
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 | MULTVER ;
 | 
|---|
| 71 |  N I,MP,LP,MPC,LPC,NOMATCH S LP="",NOMATCH=0
 | 
|---|
| 72 |  F I=1:1:DDXPTOTF D  Q:NOMATCH
 | 
|---|
| 73 |  . S MP=$G(DDXPATH(I)) Q:'MP
 | 
|---|
| 74 |  . I LP=MP Q
 | 
|---|
| 75 |  . I 'LP S LP=MP Q
 | 
|---|
| 76 |  . S LPC=$L(LP,C),MPC=$L(MP,C)
 | 
|---|
| 77 |  . I LPC=MPC S NOMATCH=1 Q
 | 
|---|
| 78 |  . I LPC>MPC D  Q
 | 
|---|
| 79 |  . . I MP=$P(LP,C,1,MPC) Q
 | 
|---|
| 80 |  . . S NOMATCH=1
 | 
|---|
| 81 |  . . Q
 | 
|---|
| 82 |  . I LP=$P(MP,C,1,LPC) S LP=MP Q
 | 
|---|
| 83 |  . S NOMATCH=1
 | 
|---|
| 84 |  . Q
 | 
|---|
| 85 |  I 'NOMATCH S DDXPATH=LP Q
 | 
|---|
| 86 |  W !!,$C(7),"The "_DDXPFDNM_" template has fields in more than one multiple path."
 | 
|---|
| 87 |  W !,"Therefore, export of the data will not succeed."
 | 
|---|
| 88 |  W !,"Refer to the VA FileMan User Manual for more details.",!
 | 
|---|
| 89 |  S DDXPOUT=1
 | 
|---|
| 90 |  Q
 | 
|---|
| 91 | QUOT ;
 | 
|---|
| 92 |  N QPC,Q1ST
 | 
|---|
| 93 |  I DDXPDT(DDXPFLD)=2 Q
 | 
|---|
| 94 |  S Q1ST=$S(DDXPNPC=DDXPRNPC:1,1:0)
 | 
|---|
| 95 |  S QPC="W $C(34)"_$S(Q1ST&(DDXPFLD=1):"",1:";X")
 | 
|---|
| 96 |  I Q1ST S DDXPNPC=QPC_T_DDXPNPC
 | 
|---|
| 97 |  E  S DDXPNPC=DDXPNPC_T_QPC
 | 
|---|
| 98 |  Q
 | 
|---|