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

DIEFU.m

Go to the documentation of this file.
  1. DIEFU ;SF/DPC-FILER UTILITIES ;1:56 PM 25 May 2001 [ 04/02/2003 8:25 AM ]
  1. ;;22.0;VA FileMan;**1001,1019**;APR 1, 2003;Build 2
  1. ;;22.0;VA FileMan;**85**;Mar 30, 1999
  1. ;Per VHA Directive 10-93-142, this routine should not be modified.
  1. ;IHS/OIT/FBD - DI*22.0*1019 - 11/13/2015 - ATTEMPT TO REDUCE DISK BLOCK
  1. ; COLLISIONS BY REPLACING CLEAN SURBROUTINE'S UNCONDITIONAL KILLS
  1. ; WITH CONDITIONAL PRE-CHECKS
  1. ;
  1. INIZE ;
  1. N %,X,%H,DIE,DICS,DIC,%DT,DIK,%Y,%X,%D,%M,%I
  1. D DTNOLF^DICRW
  1. D CLEAN
  1. Q
  1. CLEAN ;
  1. K DIRUT,DIROUT,DUOUT,DTOUT
  1. ;K ^TMP("DIERR",$J),^TMP("DIMSG",$J),^TMP("DIHELP",$J) ;DI*22.0*1019 - IHS/OIT/FBD - ORIGINAL LINE - COMMENTED OUT
  1. I $D(^TMP("DIERR",$J)) K ^TMP("DIERR",$J) ;DI*22.0*1019 - IHS/OIT/FBD - ADDED LINE
  1. I $D(^TMP("DIMSG",$J)) K ^TMP("DIMSG",$J) ;DI*22.0*1019 - IHS/OIT/FBD - ADDED LINE
  1. I $D(^TMP("DIHELP",$J)) K ^TMP("DIHELP",$J) ;DI*22.0*1019 - IHS/OIT/FBD - ADDED LINE
  1. K DIERR,DIHELP,DIMSG
  1. Q
  1. ;
  1. CALLOUT(DIOUTAR) ;
  1. I '$$VROOT(DIOUTAR) Q
  1. I $D(DIERR) D
  1. . S @DIOUTAR@("DIERR")=DIERR
  1. . M @DIOUTAR@("DIERR")=^TMP("DIERR",$J)
  1. . K ^TMP("DIERR",$J)
  1. . Q
  1. I $D(DIHELP) D
  1. . S @DIOUTAR@("DIHELP")=DIHELP
  1. . M @DIOUTAR@("DIHELP")=^TMP("DIHELP",$J)
  1. . K ^TMP("DIHELP",$J)
  1. . Q
  1. I $D(DIMSG) D
  1. . S @DIOUTAR@("DIMSG")=DIMSG
  1. . M @DIOUTAR@("DIMSG")=^TMP("DIMSG",$J)
  1. . K ^TMP("DIMSG",$J)
  1. . Q
  1. Q
  1. ;
  1. IEN(DIEFDA) ;
  1. IENX ;
  1. I '$D(DIEFDA) Q 0
  1. N I,DIEFIEN S (I,DIEFIEN)="",DIEFDA(0)=$G(DIEFDA)
  1. F S I=$O(DIEFDA(I)) Q:I="" S DIEFIEN=DIEFIEN_DIEFDA(I)_","
  1. K DIEFDA(0)
  1. Q DIEFIEN
  1. ;
  1. DA(DAIEN,DATARG) ;
  1. DAX ;
  1. K DATARG N I
  1. F I=1:1:$L(DAIEN,",")-1 S DATARG(I-1)=$P(DAIEN,",",I)
  1. I $D(DATARG(0)) S DATARG=DATARG(0) K DATARG(0)
  1. Q
  1. ;
  1. VROOT(DIEFAR) ;
  1. I DIEFAR'["(" Q 1
  1. I $E(DIEFAR,$L(DIEFAR))=")",$F(DIEFAR,")")>($F(DIEFAR,"(")+1) Q 1
  1. D BLD^DIALOG(202,"array root")
  1. Q 0
  1. ;
  1. VFILE(F,FLAG) ;
  1. VFILEX ;
  1. I $P($G(^DD(F,.01,0)),U,2)]"",$P(^(0),U,2)'["W" Q 1
  1. I $G(FLAG)["D" N P S P("FILE")=F D BLD^DIALOG(401,.P,.P)
  1. Q 0
  1. ;
  1. VENTRY(DIEFF,DIEFIEN,DIEFFLG) ;
  1. N DIEFROOT,DIEFDA
  1. S DIEFFLG=$G(DIEFFLG),DIEFDA=$P(DIEFIEN,",")
  1. S DIEFROOT=$$ROOT^DIQGU(DIEFF,DIEFIEN,1,$S(DIEFFLG["D":1,1:0)) Q:DIEFROOT="" 0
  1. I $P($G(@DIEFROOT@(DIEFDA,0)),"^",1)="" D Q 0
  1. . I DIEFFLG["D" N DIEFP S DIEFP("FILE")=DIEFF,DIEFP("IENS")=DIEFIEN D BLD^DIALOG(601,"",.DIEFP)
  1. I DIEFFLG["9" Q:'$$VMINUS9(DIEFF,DIEFIEN,DIEFFLG) 0
  1. Q 1
  1. ;
  1. VMINUS9(DIEFF,DIEFIEN,DIEFFLG) ;
  1. N DIEFTOP,DIEFROOT S DIEFFLG=$G(DIEFFLG)
  1. S DIEFTOP=$P(DIEFIEN,",",$L(DIEFIEN,",")-1),DIEFROOT=$$ROOT^DIQGU($$FNO^DILIBF(DIEFF),.DIEFTOP,1,$S(DIEFFLG["D":1,1:0))
  1. Q:DIEFROOT="" 0
  1. I $D(@DIEFROOT@(DIEFTOP,-9)) D Q 0
  1. . I DIEFFLG["D" N DIEFP S DIEFP("FILE")=DIEFF,DIEFP("IENS")=DIEFIEN D BLD^DIALOG(602,"",.DIEFP)
  1. Q 1
  1. ;
  1. CHKFLD(DIEFF,DIEFFLD) ;
  1. I DIEFFLD'=+DIEFFLD S DIEFFLD=$$FLDNUM^DIEF1(DIEFF,DIEFFLD) Q:'DIEFFLD 0
  1. I '$$VFIELD(DIEFF,DIEFFLD,"D") Q 0
  1. Q DIEFFLD
  1. ;
  1. VFIELD(F,FLD,FLAG) ;
  1. VFIELDX ;
  1. I $D(^DD(F,FLD)) Q 1
  1. I $G(FLAG)["D" N P S (P(1),P("FIELD"))=FLD,P("FILE")=F D BLD^DIALOG(501,.P,.P)
  1. Q 0
  1. ;
  1. DT(DIEFDT,DIEFX,DIEFY,DIEFDT0,DIOUTAR) ;
  1. DTX ;
  1. I '$D(DIQUIET) N DIQUIET S DIQUIET=1
  1. I '$D(DIFM) N DIFM S DIFM=1 D INIZE
  1. N %DT,X,Y
  1. S DIEFDT=$G(DIEFDT)
  1. I $G(DIEFX)="" D BLD^DIALOG(202,"date being converted") G DTOUT
  1. I '$$VERFLG^DIEFU(DIEFDT,"FMNPRSTXEeI") G DTOUT
  1. I DIEFX?."?" D DT^DIEH1(DIEFDT) S DIEFY=-1 G DTOUT
  1. S %DT=DIEFDT,X=DIEFX S:$G(DIEFDT0)]"" %DT(0)=DIEFDT0 D ^%DT S DIEFY=Y
  1. I DIEFY=-1 D:DIEFDT'["e" G DTOUT
  1. . N DIEFP
  1. . S DIEFP(1)=DIEFX,DIEFP(2)="date/time"
  1. . D BLD^DIALOG(330,.DIEFP,.DIEFP)
  1. I DIEFDT["E" D DD^%DT S DIEFY(0)=Y
  1. DTOUT I $G(DIOUTAR)]"" D CALLOUT^DIEFU(DIOUTAR)
  1. Q
  1. ;
  1. VERFLG(FLG,GDFLGS) ;
  1. N EI
  1. S EI=$TR(FLG,GDFLGS,"")
  1. I EI="" Q 1
  1. D BLD^DIALOG(301,EI,EI)
  1. Q 0
  1. ;
  1. XA(DIEFF,DIEFIEN,DIEFFLD,DIEFNVAL,DIEFOVAL) ;
  1. N DA,DIEFCNOD,DOREPL
  1. S DIEFNVAL=$G(DIEFNVAL),DIEFOVAL=$G(DIEFOVAL)
  1. Q:DIEFNVAL=DIEFOVAL
  1. D DA(DIEFIEN,.DA)
  1. D XRFAUD^DIEF
  1. Q
  1. ;
  1. FILENM(F) ;
  1. N NM
  1. S NM=$P($G(^DIC($$FNO^DILIBF(F),0)),U)
  1. ;I NM="" <DO ERROR>
  1. Q NM
  1. ;
  1. FLDNM(F,FLD) ;
  1. N NM,UP
  1. S NM=$P($G(^DD(F,FLD,0)),U,1)
  1. F S UP=$G(^DD(F,0,"UP")) Q:'UP D
  1. . S NM=NM_" in "_$P($G(^DD(F,0)),U,1)
  1. . S F=UP
  1. . Q
  1. ;I NM="" <DO ERROR>
  1. Q NM