File:  [Coherent Logic Development] / freem_fileman / Attic / DIEF1.m
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Mon Apr 28 14:10:44 2025 UTC (5 weeks, 4 days ago) by snw
Branches: CoherentLogicDevelopment
CVS tags: start
Initial commit

DIEF1	;SFISC/DPC-FILER UTILITIES ;12/21/94  08:50
	;;21.0;VA FileMan;;Dec 28, 1994
	;Per VHA Directive 10-93-142, this routine should not be modified.
LOAD(DIEFF,DIEFDAS,DIEFFLD,DIEFFLG,DIEFVAL,DIEFAR,DIEFOUT)	;
LOADX	;
	N DIEFIEN
	I '$D(DIQUIET) N DIQUIET S DIQUIET=1
	I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
	I $G(DIEFDAS)']"" D BLD^DIALOG(202,"IENS","IENS") G OUT
	I $E(DIEFDAS,$L(DIEFDAS))="," S DIEFIEN=DIEFDAS
	E  S DIEFIEN=$$IEN^DIEFU(.DIEFDAS)
	I '$$VROOT^DIEFU(DIEFAR) G OUT
	I '$$VFILE^DIEFU(DIEFF,"D") G OUT
	S DIEFFLD=$$CHKFLD^DIEFU(DIEFF,DIEFFLD) G:'DIEFFLD OUT
	I $G(DIEFFLG)["R",'$$VENTRY^DIEFU(DIEFF,DIEFIEN,"D") G OUT
	S @DIEFAR@(DIEFF,DIEFIEN,DIEFFLD)=DIEFVAL
OUT	I $G(DIEFOUT)]"" D CALLOUT^DIEFU(DIEFOUT)
	Q
	;
FLDNUM(DIEFF,DIEFFDNM)	;
FLDNUMX	;
	I '$D(DIQUIET) N DIQUIET S DIQUIET=1
	I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
	I '$$VFILE^DIEFU(DIEFF,"D") Q 0
	N DIEFFNUM
	I $D(^DD(DIEFF,"B",DIEFFDNM)) D  Q DIEFFNUM
	. S DIEFFNUM=$O(^DD(DIEFF,"B",DIEFFDNM,""))
	. I $O(^DD(DIEFF,"B",DIEFFDNM,DIEFFNUM)) N P S P(1)=DIEFFDNM,P("FILE")=DIEFF D BLD^DIALOG(505,.P,.P) S DIEFFNUM=0
	N P S P("FILE")=DIEFF,P(1)=DIEFFDNM D BLD^DIALOG(501,.P,.P)
	Q 0
	;
ADDCONV(DIEFIEN,DIEFADAR)	;
	N I,DIEFNIEN,P
	F I=1:1:$L(DIEFIEN,",")-1 D
	. S P=$P(DIEFIEN,",",I)
	. I P,$E(P)'="+" Q
	. S DIEFNIEN=@DIEFADAR@($TR(P,"+?"))
	. S $P(DIEFIEN,",",I)=DIEFNIEN
	Q DIEFIEN
	;
PUTDATA	;CODE TO ACTUALLY PUT THE DATA INTO THE NODE BEING EDITED. ALSO SAVES ORIGINAL VALUES. CALLED FROM DIEF.
	I +DIEFSPOT D
	. I DIEFNVAL[U D  Q
	. . S DIEFNG=1
	. . N INT,EXT
	. . S INT(1)=$$FLDNM^DIEFU(DIEFF,DIEFFLD),INT(2)=$$FILENM^DIEFU(DIEFF),EXT("FILE")=DIEFF,EXT("FIELD")=DIEFFLD
	. . D BLD^DIALOG(714,.INT,.EXT)
	. S DIEFOVAL=$P(DIEFFVAL,"^",DIEFSPOT)
	. S $P(DIEFFVAL,"^",DIEFSPOT)=DIEFNVAL,DOREPL=1
	E  I $E(DIEFSPOT)="E" D
	. N FR,TO,OLEN,NLEN
	. S FR=$P($P(DIEFSPOT,"E",2),",",1),TO=$P(DIEFSPOT,",",2)
	. S NLEN=$L(DIEFNVAL)
	. I NLEN-1>(TO-FR) D  Q
	. . S DIEFNG=1
	. . N INT,EXT
	. . S INT(1)=$$FLDNM^DIEFU(DIEFF,DIEFFLD),INT(2)=$$FILENM^DIEFU(DIEFF),EXT("FILE")=DIEFF,EXT("FIELD")=DIEFFLD
	. . D BLD^DIALOG(716,.INT,.EXT)
	. S DIEFOVAL=$E(DIEFFVAL,FR,TO),OLEN=$L(DIEFOVAL)
	. I $E(DIEFFVAL,TO+1,999)="" S $E(DIEFFVAL,FR,TO)=DIEFNVAL
	. E  S $E(DIEFFVAL,FR,TO)=DIEFNVAL_$J("",$S(OLEN>NLEN:OLEN-NLEN,1:0))
	. S DOREPL=1
	E  I DIEFSPOT=0 D
	. I $P($G(^DD(+$P(^DD(DIEFF,DIEFFLD,0),U,2),.01,0)),U,2)["W" D
	. . I '$$VROOT^DIEFU(DIEFNVAL) Q
	. . D PUTWP^DIEFW(DIEFFLAG,DIEFNVAL,DIEFNODE)
	. E  D
	. . N INT,EXT
	. . S (INT(1),EXT(1))="MULTIPLE",EXT("FILE")=DIEFF,EXT("FIELD")=DIEFFLD
	. . D BLD^DIALOG(520,.INT,.EXT)
	. . S DIEFNG=1
	E  I DIEFSPOT=" " D
	. N INT,EXT
	. S (INT(1),EXT(1))="COMPUTED",EXT("FILE")=DIEFF,EXT("FIELD")=DIEFFLD
	. D BLD^DIALOG(520,.INT,.EXT)
	. S DIEFNG=1
	Q
	;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>