Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DDXP32

DDXP32.m

Go to the documentation of this file.
  1. DDXP32 ;SFISC/DPC-CREATE EXPORT TEMPLATE (CONT) ;12:44 PM 7 Jun 1999 [ 04/02/2003 8:25 AM ]
  1. ;;22.0;VA FileMan;**1001**;APR 1, 2003
  1. ;;22.0;VA FileMan;**9**;Mar 30, 1999
  1. ;Per VHA Directive 10-93-142, this routine should not be modified.
  1. CAPDT ;
  1. K DDXPFCAP,DDXPDT,DDXPATH N FCAP,NUMPC,C S C=","
  1. F DDXPCNDX=1:1:DDXPTOTF D
  1. . I DDXPNOUT(DDXPCNDX) Q
  1. . S DDXPX=^TMP($J,"TIN",DDXPCNDX),DDXPTGFL=DDXPFINO,NUMPC=0 K FCAP
  1. . D FLDFIND
  1. . S DDXPFCAP(DDXPCNDX)=FCAP(NUMPC)
  1. . F NUMPC=NUMPC-1:-1 Q:'$D(FCAP(NUMPC)) D
  1. . . S DDXPFCAP(DDXPCNDX)=DDXPFCAP(DDXPCNDX)_" in "_FCAP(NUMPC)_" subfile"
  1. . . Q
  1. . K FCAP,NUMPC
  1. . Q
  1. I $D(DDXPATH) D MULTVER
  1. K DDXPX,DDXPCNDX,DDXPTGFL,DDXPDD0 Q
  1. FLDFIND ;
  1. S NUMPC=NUMPC+1
  1. I DDXPX=0 D Q
  1. . S FCAP(NUMPC)="NUMBER",DDXPDT(DDXPCNDX)=4
  1. . Q
  1. I +DDXPX D
  1. . S DDXPDD0="^DD("_DDXPTGFL_","_+DDXPX_",0)"
  1. . Q
  1. I DDXPX=+DDXPX D Q
  1. . S FCAP(NUMPC)=$P(@DDXPDD0,U,1)
  1. . S %=$P(@DDXPDD0,U,2),DDXPDT(DDXPCNDX)=$S(%["D":1,%["N":2,1:4) K %
  1. . Q
  1. I '+DDXPX D Q
  1. . S DDXPDT(DDXPCNDX)=4
  1. . I $E(DDXPX)=Q S FCAP(NUMPC)=DDXPX Q
  1. . S %=$P(DDXPX,";Z;",2),%=$P(%,Q,2,99),%=$P(%,";",1),FCAP(NUMPC)=$E(%,1,($L(%)-1)) K %
  1. . Q
  1. MULT ;
  1. S FCAP(NUMPC)=$P(@DDXPDD0,U,1)
  1. S DDXPTGFL=+$P(@DDXPDD0,U,2)
  1. I NUMPC=1 D
  1. . N %,I,DONE S %=$P(DDXPX,C,1,$L(DDXPX,C)-1),DONE=0
  1. . F I=2:1:$L(DDXPX,C) Q:DONE D
  1. . . Q:+$P(%,C,I)
  1. . . S %=$P(%,C,1,I-1),DONE=1
  1. . . Q
  1. . S DDXPATH(DDXPCNDX)=%
  1. . Q
  1. S DDXPX=$P(DDXPX,C,2,99)
  1. G FLDFIND
  1. SETFLD ;
  1. S %L=$S($D(DDXPFLEN):";2///^S X=DDXPFLEN(DDXPFLD)",1:"")
  1. S %F=$S($D(DDXPFFNM):";3///^S X=DDXPFFNM(DDXPFLD)",1:"")
  1. S (DIC,DIE)="^DIPT("_DDXPXTNO_",100,",DA(1)=DDXPXTNO,DIC("P")=$P(^DD(.4,100,0),U,2),DIC(0)="L" K DO
  1. F DDXPFLD=1:1:DDXPTOTF D
  1. . I DDXPNOUT(DDXPFLD) Q
  1. . S (DINUM,X)=DDXPFLD K DD D FILE^DICN
  1. . S DA=DDXPFLD,DR="1////^S X=DDXPDT(DDXPFLD)"_%L_%F D ^DIE
  1. . Q
  1. K DIE,DIC,X,Y,DA,DR,%L,%F
  1. Q
  1. SETEMP ;
  1. S DR="2///NOW;4///"_DDXPFINO_";5///"_DUZ_";8///3;105////"_DDXPFMNO S:$G(DDXPATH) DR=DR_";115///"_DDXPATH
  1. S DA=DDXPXTNO,DIE="^DIPT(" D ^DIE K DIE,DA,DR
  1. ; Hard Set ReadAccess and WriteAccess
  1. I $D(^DIPT(DDXPXTNO,0))#2,$D(DUZ(0))#2 D
  1. . S $P(^DIPT(DDXPXTNO,0),U,3)=DUZ(0) ; Read Access
  1. . S $P(^DIPT(DDXPXTNO,0),U,6)=DUZ(0) ; Write Access
  1. S %X="^DIPT("_DDXPFDTM_",""DXS"",",%Y="^DIPT("_DDXPXTNO_",""DXS""," D %XY^%RCR K %X,%Y
  1. S ^DIPT(DDXPXTNO,"SUB")=1
  1. S ^DIPT(DDXPXTNO,"H")="@@"
  1. Q
  1. MULTVER ;
  1. N I,MP,LP,MPC,LPC,NOMATCH S LP="",NOMATCH=0
  1. F I=1:1:DDXPTOTF D Q:NOMATCH
  1. . S MP=$G(DDXPATH(I)) Q:'MP
  1. . I LP=MP Q
  1. . I 'LP S LP=MP Q
  1. . S LPC=$L(LP,C),MPC=$L(MP,C)
  1. . I LPC=MPC S NOMATCH=1 Q
  1. . I LPC>MPC D Q
  1. . . I MP=$P(LP,C,1,MPC) Q
  1. . . S NOMATCH=1
  1. . . Q
  1. . I LP=$P(MP,C,1,LPC) S LP=MP Q
  1. . S NOMATCH=1
  1. . Q
  1. I 'NOMATCH S DDXPATH=LP Q
  1. W !!,$C(7),"The "_DDXPFDNM_" template has fields in more than one multiple path."
  1. W !,"Therefore, export of the data will not succeed."
  1. W !,"Refer to the VA FileMan User Manual for more details.",!
  1. S DDXPOUT=1
  1. Q
  1. QUOT ;
  1. N QPC,Q1ST
  1. I DDXPDT(DDXPFLD)=2 Q
  1. S Q1ST=$S(DDXPNPC=DDXPRNPC:1,1:0)
  1. S QPC="W $C(34)"_$S(Q1ST&(DDXPFLD=1):"",1:";X")
  1. I Q1ST S DDXPNPC=QPC_T_DDXPNPC
  1. E S DDXPNPC=DDXPNPC_T_QPC
  1. Q