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

DDXP4.m

Go to the documentation of this file.
  1. DDXP4 ;SFISC/DPC,S0-EXPORT DATA ;7:37 AM 30 May 2000
  1. ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
  1. ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
  1. ;;Licensed under the terms of the Apache License, Version 2.0.
  1. ;
  1. EN1 ;
  1. K ^UTILITY($J)
  1. D ^DICRW I Y=-1 G QUIT
  1. S DDXPFINO=+Y
  1. XTEM ;
  1. 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 !
  1. D IX^DIC K DIC,D I $D(DTOUT)!$D(DUOUT) G QUIT
  1. I Y=-1 G XTEM
  1. S DDXPXTNO=+Y,DDXPXTNM=$P(Y,U,2),FLDS="["_DDXPXTNM_"]"
  1. I DUZ(0)[$E($P(Y(0),U,6),1)!(DUZ(0)="@") D I $D(DIRUT) G QUIT
  1. . W !,"Do you want to delete the "_DDXPXTNM_" template",!,"after the data export is complete?",!
  1. . S DDXPTMDL=0,DIR(0)="Y",DIR("B")="NO" D ^DIR K DIR W !
  1. . S:Y DDXPTMDL=1
  1. S DDXPFFNO=+$G(^DIPT(DDXPXTNO,105)),DDXPFMZO=$G(^DIST(.44,DDXPFFNO,0))
  1. I $G(^DIST(.44,DDXPFFNO,6))]"" S DDXPDATE=1
  1. S DDXPATH=$P($G(^DIPT(DDXPXTNO,105)),U,4) I DDXPATH]"" D MULTBY
  1. SORS ;
  1. W ! S DIR(0)="YA",DIR("B")="NO",DIR("A")="Do you want to SEARCH for entries to be exported? "
  1. S DIR("?",1)="To use VA FileMan's SEARCH option to choose entries, answer 'YES'."
  1. S:'$D(BY) DIR("?",2)="After the SEARCH, you can respond to VA FileMan's 'SORT BY:' prompt."
  1. S DIR("?")="If you answer 'NO', "_$S('$D(BY):"you can only SORT entries before export.",1:"the data export will begin.")
  1. D ^DIR K DIR I $D(DIRUT) G QUIT
  1. S DDXPSORS=Y,DIC=DDXPFINO,L=0
  1. D DIOBEG,DIOEND
  1. I DDXPSORS D EN^DIS
  1. I $G(X)="^"!($G(POP)) G QUIT
  1. I 'DDXPSORS D EN1^DIP
  1. I $G(X)="^"!($G(POP)) G QUIT
  1. I $G(DDXPQ),$G(DDXPTMDL) W !,?5,"Export template "_DDXPXTNM_" will be deleted",!,?5,"when queued export is completed." G DONE
  1. I $G(DDXPTMDL) S DIK="^DIPT(",DA=DDXPXTNO D ^DIK K DIK,DA
  1. G DONE
  1. QUIT ;
  1. W !!,?10,"Export NOT completed!"
  1. DONE ;
  1. 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
  1. Q
  1. ZIS ;
  1. S %ZIS="Q"
  1. S DDXPIOM=$S($P(DDXPFMZO,U,8):$P(DDXPFMZO,U,8),$G(^DIPT(DDXPXTNO,"IOM")):^("IOM"),1:80)
  1. S DDXPIOSL=99999
  1. Q
  1. MULTBY ;
  1. N NUMPC,I,C S BY="",C=",",NUMPC=$L(DDXPATH,C)
  1. W !!,"Since you are exporting fields from multiples,"
  1. W !,"a sort will be done automatically."
  1. W !,"You will NOT have the opportunity to sort the data before export.",!
  1. F I=1:1:NUMPC D
  1. . S BY=BY_DDXPATH_",NUMBER,"
  1. . S DDXPATH=$P(DDXPATH,C,1,$L(DDXPATH,C)-1)
  1. . Q
  1. S BY=$E(BY,1,$L(BY)-1),FR=""
  1. Q
  1. DIOBEG ;
  1. S DDXPBEG=$G(^DIST(.44,DDXPFFNO,1))
  1. I DDXPBEG']"" G QBEG
  1. I $E(DDXPBEG)="""" S DIOBEG="W "_DDXPBEG G QBEG
  1. S DIOBEG=DDXPBEG
  1. QBEG K DDXPBEG
  1. Q
  1. DIOEND ;
  1. S DDXPEND=$G(^DIST(.44,DDXPFFNO,2))
  1. I DDXPEND']"" G QEND
  1. I $E(DDXPEND)="""" S DIOEND="W "_DDXPEND G QEND
  1. S DIOEND=DDXPEND
  1. QEND K DDXPEND
  1. Q
  1. DJTOPY(Y) ;
  1. N BJ,EJ,YOUT,NUMW,TYPEJ,DDXPXORY,SUB S YOUT=Y
  1. S BJ=$F(Y,"$J(") I BJ D
  1. . S DDXPXORY=$P($E(Y,BJ,999),",",1)
  1. . S NUMW=$L($E(Y,1,BJ),"W")-1 I NUMW'>0 Q
  1. . S EJ=$F(Y,") ",BJ)
  1. . S TYPEJ=$L($E(Y,BJ,$S(EJ:EJ-1,1:999)),",")
  1. . I TYPEJ'=2&(TYPEJ'=3) Q
  1. . I TYPEJ=3 S SUB="$S("_DDXPXORY_"]"""":+"_DDXPXORY_",1:"""_$P(DDXPFMZO,U,13)_""")"
  1. . I TYPEJ=2 S SUB=DDXPXORY
  1. . S YOUT=$P($E(Y,1,BJ),"W",1,NUMW)_"W "_SUB_$S(EJ:$E(Y,EJ-1,999),1:"")
  1. . Q
  1. Q YOUT
  1. DT ;
  1. N X
  1. I 'Y S DDXPY=Y Q
  1. S X=Y
  1. I $D(^DIST(.44,DDXPFFNO,6)) X ^(6) S DDXPY=$G(Y)
  1. Q
  1. EN2 ; Export API from EXPORT^DDXP
  1. N DDXP,DDXPXTNO,DDPXFFNO,DDXPFMZO,DDXPDATE,DDXPATH,DDXPOUT,ERROR,DIA
  1. K ^UTILITY($J)
  1. ; Check for valild file number
  1. I '$G(DDXPFINO) S ERROR="File Number Missing." D EN2ERR G DONE
  1. I DDXPFINO[U D I $D(DDXPOUT) K DDXPOUT G DONE
  1. . 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
  1. . I '$D(^DIC(+$P(DDXPFINO,U,2),0))#2 S DDXPOUT=1,ERROR="File Does Not Exist on This System." D EN2ERR Q
  1. I DDXPFINO'[U,'$D(^DIC(+DDXPFINO,0))#2 S ERROR="File Does Not Exist on This System." D EN2ERR G DONE
  1. N DIC,D,X
  1. S DIC="^DIPT(",DIC(0)="SZ",DIC("S")="I $P(^(0),U,8)=3",D="F"_+DDXPFINO,X=DDXPXTNM
  1. D IX^DIC K DIC
  1. I Y<0 S ERROR="The Template is Not an Export Template or Is Missing." D EN2ERR G DONE
  1. S DDXPXTNO=+Y
  1. S DDXPFFNO=+$G(^DIPT(DDXPXTNO,105)),DDXPFMZO=$G(^DIST(.44,DDXPFFNO,0))
  1. I $G(^DIST(.44,DDXPFFNO,6))]"" S DDXPDATE=1
  1. I $G(DDXPBY)="" S DDXPATH=$P($G(^DIPT(DDXPXTNO,105)),U,4) I DDXPATH]"" D MULTBY
  1. ; Setup For Sort Template If BY NOT Setup by MULTBY
  1. I '$D(BY) D I $D(DDXPOUT) K DDXPOUT S ERROR="Sort Template Invalid or Missing." D EN2ERR G DONE
  1. . I $G(DDXPBY)]"" D Q:$D(DDXPOUT)
  1. .. N DIC,X
  1. .. S DIC="^DIBT(",DIC(0)="Z",X=DDXPBY
  1. .. D ^DIC K DIC
  1. .. I Y<0 S DDXPOUT=1 Q
  1. .. D SORTCHK I $D(DDXPOUT) Q
  1. .. S BY="["_DDXPBY_"]"
  1. S DDXP=4 ; Tell other FileMan routines we are Exporting
  1. S DIC=$S(+DDXPFINO=1.1:"^DIA("_+$P(DDXPFINO,U,2)_",",1:+DDXPFINO)
  1. S L=0
  1. S FLDS="["_DDXPXTNM_"]"
  1. D DIOBEG,DIOEND,EN1^DIP
  1. I $G(X)="^"!($G(POP)) K DDXP,DDXPBY,DDXPFR,DDXPTO G QUIT
  1. K:$D(DIA) DIA ; **Leaking Variable**
  1. I $G(DDXPTMDL) S DIK="^DIPT(",DA=DDXPXTNO D ^DIK K DIK,DA
  1. K DDXP,DDXPBY,DDXPFR,DDXPTO
  1. G DONE
  1. SORTCHK ; Check Sort For Illegal Qualifiers
  1. N D0,D1,DDXPX,I
  1. S D0=+Y
  1. S D1=0
  1. F S D1=$O(^DIBT(D0,2,D1)) Q:D1<1!$D(DDXPOUT) D
  1. . S DDXPX=^DIBT(D0,2,D1,0)
  1. . F I="#","!","+","@" D Q:$D(DDXPOUT)
  1. .. I $P(DDXPX,U,4)[I,I'="@" S DDXPOUT=1,ERROR="You can not use the """_I_""" when exporting." D EN2ERR Q
  1. .. 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
  1. . F I=";C",";S" D Q:$D(DDXPOUT)
  1. .. I $P(DDXPX,U,5)[I S DDXPOUT=1,ERROR="You can not use "_I_" when exporting." D EN2ERR Q
  1. .. I $P(DDXPX,U,5)[";""" S DDXPOUT=1,ERROR="You can Replace a Caption when exporting." D EN2ERR Q
  1. Q
  1. EN2ERR ; Error Processing
  1. I $D(IOST),$E(IOST,1,2)="C-" W $C(7)
  1. W "=>"_ERROR,!
  1. K DDXPBY,DDXPFR,DDXPTO,ERROR
  1. Q