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

DIPTED.m

Go to the documentation of this file.
  1. DIPTED ;SFISC/GFT-EDIT PRINT TEMPLATE ;02/24/2009
  1. ;;22.0;VA FileMan;**97,160**;Mar 30, 1999;Build 23
  1. ;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. N DIC,DIPT,DIPTED,DRK,DIPTEDTY,I,J
  1. S DIC=.4,DIC(0)="AEQ",DIC("S")="I $P(^(0),U,8)=7!'$P(^(0),U,8)" D ^DIC Q:Y<1
  1. K DIC
  1. S DIPT=+Y D E
  1. D PUT
  1. K K ^TMP("DIPTED",$J),^UTILITY("DIP2",$J)
  1. Q
  1. ;
  1. EDIT(DIPT) ; EDIT PRINT TEMPLATE 'DIPT' VIA VA FILEMAN SCREEN EDITOR
  1. N DIPTED,DRK,DIPTEDTY,I,J
  1. E N DA,D0,DUOUT,DTOUT,DIPTEDER,DIPTH,L,DY,Y,DIPTX,D,C,Q,DIPTROW,DCL,DXS,DNP,DHD,DISH,DV,DJ,DL,DK,DIL
  1. X ^%ZOSF("EON")
  1. I '$D(^DIPT(DIPT,0)) W !,"NO TEMPLATE SELECTED",! Q
  1. S DIPTED="Print",DIPTEDTY=$P(^(0),U,8) I DIPTEDTY=7 S DIPTED="EXPORT FIELDS"
  1. S DIPTED=DIPTED_" Template """_$P(^(0),U)_""""
  1. D GET("^TMP(""DIPTED"",$J)")
  1. S DIPTH="Editing "_DIPTED,DIPTROW=1
  1. DDW D EDIT^DDW("^TMP(""DIPTED"",$J)","M",DIPTH,"(File "_DRK_")",DIPTROW)
  1. K ^UTILITY($J,0),^UTILITY("DIP2",$J),I,J
  1. I $D(DTOUT)!$D(DUOUT) K ^TMP("DIPTED",$J) W $C(7),$$EZBLD^DIALOG(8077) Q
  1. S (DV,DNP)="",(DIL,DJ)=0,(DL,DXS)=1,DK=DRK,J(0)=DK,I(0)=^DIC(DK,0,"GL")
  1. D PROCESS("^TMP(""DIPTED"",$J)")
  1. X ^%ZOSF("EON")
  1. S DIPTROW=$O(DIPTEDER(0)) I DIPTROW W " ",DIPTEDER(DIPTROW) H 2 S DIPTH="ERROR! Re-editing "_DIPTED K DIPTEDER G DDW
  1. I '$D(^UTILITY("DIP2",$J)) W "<NOTHING TO SAVE>",$C(7) G K
  1. S DDSCHG=1
  1. I $D(DXS)>9 M ^UTILITY("DIP2",$J,U,"DXS")=DXS
  1. M ^UTILITY("DIP2",$J,U,"DCL")=DCL
  1. I $D(DNP) S ^UTILITY("DIP2",$J,U,"DNP")=1
  1. I $G(DISH) S ^("SUB")=1
  1. I $G(DHD)]"" S ^("H")=DHD
  1. Q
  1. ;
  1. GET(DIPTA,DIT) ;put displayable template into @DIPTA
  1. N DS,DIWD,D9,D0
  1. K @DIPTA
  1. I '$D(DIT) S DIT=$NA(^DIPT(DIPT)),D0=DIPT
  1. E S D0=-1
  1. S (DRK,J(0))=$P(@DIT@(0),U,4),L=0,D(L)="0FIELD",C=",",D9="",Y=2,Q="""",DHD=$G(^("H")),DISH=$D(^("SUB"))
  1. F DS(1)=0:0 S DS(1)=$O(@DIT@("F",DS(1))) Q:DS(1)="" S DY=^(DS(1)) D Y^DIPT
  1. D:D9]"" UP^DIPT
  1. F D=2:1 Q:'$D(DS(D)) S @DIPTA@(D-1)=$J("",D>2*$G(DIWD(D))*3)_DS(D) ;indentation showing level of subfiles
  1. Q
  1. ;
  1. PROCESS(DIPTA) ;puts nodes into ^UTILITY("DIP2")
  1. N D0,DM,DQI,DA,ERR,P,S,LINE,X,DIETAB
  1. S DIETAB=0
  1. F LINE=1:1 Q:'$D(@DIPTA@(LINE)) K ERR S X=^(LINE) D
  1. .I X?1"^".E S LINE=999999999 K ^UTILITY("DIP2",$J) Q
  1. .S X=$$LINE(X) I X]"" S ^($O(^UTILITY("DIP2",$J,""),-1)+1)=X Q
  1. .I $D(ERR) W "LINE ",LINE S DIPTEDER(LINE)=ERR,LINE=-LINE Q ;stop if we find one error
  1. I LINE<0 W " ERROR!" Q
  1. Q
  1. ;
  1. LINE(X) ;returns X as component of Template. DD number is currently 'DK'
  1. N DIC,DICMX,DATE,Y,DICOMPX,DICOMP,DP,DJ
  1. I X?." " Q ""
  1. F P=$L(X):-1:1 Q:$A(X,P)>32 S X=$E(X,1,P-1) ;strip off trailing spaces
  1. F P=0:1 Q:$A(X)-32 S X=$E(X,2,999) ;strip off 'P' leading spaces
  1. I P<DIETAB,DL>1 F D U I DL-1*3'>P Q ;pop Up (MAYBE SEVERAL LEVELS) if we find outdentation
  1. S DIETAB=P
  1. F S (P,S)=""
  1. LIT I $E(X)="""",$L(X,"""")#2 F I=3:2:$L(X,"""") Q:$P(X,"""",I)]""&($E($P(X,"""",I)'=$C(95)))
  1. I I $P($P(X,"""",I),";")="" G DJ
  1. S DIC="^DD(DK,",DIC(0)="ZO"
  1. DIC I X="NUMBER" S Y=0 G S
  1. D ^DIC G GF:Y>0
  1. I X="" D U:DL>2 Q X
  1. STRIP I DIPTEDTY-7 D G:'$D(D) DIC S X=$RE(X) D S X=$RE(X) G:'$D(D) DIC ;from beginning, then end
  1. .F D="+","#","*","&","!" I $E(X)=D S P=D,X=$E(X,2,999) K D Q
  1. I X[";" G EXP:DIPTEDTY=7 S S=";"_$P(X,";",2,99)_S,X=$P(X,";") G DIC
  1. HARD S DM=X,DQI="DIP(",DA="DXS("_DXS_C,S=S_";Z;"""_X_"""",DICOMP=DIL_$E("?",''L)_"TI",DICOMPX=""
  1. I X'?.E1":" S DICMX="X DICMX" D EN^DICOMP G QQ:'$D(X) D FLY^DIP22 S X=S G DJ
  1. G EXP:DIPTEDTY=7 S DICMX="S DIXX=DIXX("_DL_") D M" D ^DICOMPW
  1. I $D(X) D S S=U_$P(DP,U,2)_U_$E(1,Y["m")_U_S,DIL(DL)=DIL,DV(DL)=DV,DL(DL)=DK,DK=+DP,DV=DV_-DP_C,DL=DL+1,DIL=+Y,Y=0,X=DV_S K P G VAL3 ;relational jump
  1. .N Y D OVFL^DIP22,F^DIP22
  1. QQ S ERR="" Q ""
  1. ;
  1. GF I $P(Y(0),U,2) D D S X=$P($P(Y(0),U,4),";"),I(DIL)=$S(+X=X:X,1:Q_X_Q),J(DIL)=DK G WORD:$P($G(^DD(DK,.01,0)),U,2)["W" Q "" ;down to a multiple
  1. I +Y=.001 S Y=0
  1. S S X=+Y_S
  1. DJ S X=DV_X
  1. VAL3 I DIPTEDTY'=7!(S'[";W"&(S'[";m")) S S="" D P Q X
  1. EXP S ERR="NOT ALLOWED WHEN SELECTING EXPORT FIELDS" Q ""
  1. ;
  1. P D:$D(P) Q
  1. .I P="" K DNP Q
  1. .I P="*" S DCL=$G(DCL)+1
  1. .S DCL(DK_U_+Y)=$S($T:DCL_P,1:P)
  1. ;
  1. D S DIL(DL)=DIL,DV(DL)=DV,DL(DL)=DK,DK=+$P(^DD(DK,+Y,0),U,2),DL=DL+1,DIL=DIL+1,DV=DV_+Y_C,Y=0 Q ;go Down a level
  1. ;
  1. WORD I DIPTEDTY=7 G EXP
  1. S Y=.01 D P S X=DV_Y_S D U Q X
  1. ;
  1. U S DL=DL-1,DV=DV(DL),DK=DL(DL),DIL=DIL(DL) F %=DIL:0 S %=$O(I(%)) Q:%="" K I(%),J(%)
  1. Q
  1. ;
  1. SAVEFLDS(Y) ;POST-SAVE OF 'DIPTED' SCREENMAN FORM
  1. N DMAX,J,X
  1. Q:'$D(^UTILITY("DIP2",$J))!'$G(Y)
  1. CLEAR S $X=0,$Y=0 I $G(IOXY)]"" N DX,DY S (DY,DX)=0 X IOXY W $C(27,91,74)
  1. S Y=$$CLONE(Y) Q:'Y ;ASK 'SAVE AS'
  1. D NOW^%DTC S $P(^DIPT(Y,0),U,2)=+$J(%,0,4)
  1. S $P(^DIPT(Y,0),U,5)=$G(DUZ)
  1. K ^DIPT(Y,"F") S J="" D D J
  1. .F %=1:1 Q:'$D(^UTILITY("DIP2",$J,%)) S X=^(%) I X]"" D
  1. ..I $L(J)+$L(X)>150 D J S J=""
  1. ..S J=J_X_$C(126)
  1. K ^DIPT(Y,"DXS"),^("DCL"),^("DNP")
  1. M ^DIPT(Y)=^UTILITY("DIP2",$J,U)
  1. I $D(^DIPT(Y,"ROU")) K ^("ROU") I $D(^("IOM")) S IOM=^("IOM") K ^("IOM") I $D(^("ROUOLD")) S X=^("ROUOLD") I X]"",$G(DISYS),$D(^DD("OS",DISYS,"ZS")) S DMAX=^DD("ROU") D ENZ^DIPZ I $D(^DIPT(DIPZ,"H")) S DHD=^("H")
  1. D K
  1. Q
  1. ;
  1. J S ^($O(^DIPT(+Y,"F",""),-1)+1)=J Q
  1. ;
  1. CLONE(DA) ;
  1. N DIC,DIPTEDTY,DIPTEDFI,X,Y,DIPTEDNM,DDS
  1. I '$D(^DIPT(DA,0)) Q 0
  1. S (DIPTEDNM,DIC("B"))=$P(^(0),U)
  1. ASK S DIPTEDFI=$P(^DIPT(DA,0),U,4),DIPTEDTY=$P(^(0),U,8) I 'DIPTEDFI Q 0
  1. S DIC=.4,DIC("A")="Save revised Print Template "_DIPTEDNM_" as: ",DIC(0)="AEQL",DIC("S")="I $P(^(0),U,4)=DIPTEDFI,$P(^(0),U,8)=DIPTEDTY"
  1. D ^DIC I Y<0 Q 0
  1. I +Y=DA Q DA
  1. I $O(^DIPT(+Y,0))]"" W !,$C(7),"Are you sure you want to overwrite this '",$P(Y,U,2),"' Template" S %=1 D YN^DICN I %-1 K DIC G ASK:%=2 Q 0
  1. L +^DIPT(+Y):5 E W !,$C(7),"Sorry. Another user is editing this template." Q 0
  1. S ^DIPT("F"_DIPTEDFI,$P(Y,U,2),+Y)=1
  1. S $P(^DIPT(+Y,0),U,4)=DIPTEDFI,$P(^(0),U,8)=DIPTEDTY
  1. L -^DIPT(+Y)
  1. Q +Y
  1. ;
  1. ;
  1. PUT ;save template from ^UTILITY
  1. I '$D(^UTILITY("DIP2",$J)) Q
  1. N DIC,DIPZ
  1. S DIC("B")=DIPT
  1. SAVEAS S DIC=.4,DIC("A")="Save revised "_DIPTED_" as: ",DIC(0)="AEQL",DIC("S")="I $P(^(0),U,4)=DRK,$P(^(0),U,8)=DIPTEDTY"
  1. D ^DIC
  1. Q:Y<0 I $O(^DIPT(+Y,0))]"" W !,$C(7),"Are you sure you want to overwrite this '",$P(Y,U,2),"' Template" S %=1 D YN^DICN I %-1 Q:%<2 K DIC("B") G SAVEAS
  1. L +^DIPT(+Y):5 E W !,$C(7),"Sorry. Another user is editing this template." Q
  1. S ^DIPT("F"_J(0),$P(Y,U,2),+Y)=1
  1. S $P(^DIPT(+Y,0),U,4)=J(0),$P(^(0),U,8)=DIPTEDTY
  1. L -^DIPT(+Y)
  1. D SAVEFLDS(+Y)
  1. Q