File:  [Coherent Logic Development] / freem_fileman / USER / DDSM1.m
Revision 1.1: download - view: text, annotated - select for diffs
Mon Apr 28 14:13:19 2025 UTC (3 months ago) by snw
Branches: MAIN
CVS tags: HEAD
Restructure repository

    1: DDSM1	;SFISC/MKO-MULTILINE, LOAD AND DELETE ;09:39 AM  15 Jul 1994
    2: 	;;21.0;VA FileMan;;Dec 28, 1994
    3: 	;Per VHA Directive 10-93-142, this routine should not be modified.
    4: 	;
    5: LOAD(DDSIEN)	;Load subentries
    6: MLOAD	N DDSI,DDSOSN,DDSPDA,DDSRN,DDSSN,DDSSTL
    7: 	Q:$D(@DDSIEN)<9
    8: 	S DDSPDA=$P(DDSREP,U),DDSSTL=$P(DDSREP,U,2)
    9: 	S (DDSOSN,DDSSN)=$O(@DDSREFT@(DDSPG,DDSBK,DDSPDA," "),-1)
   10: 	;
   11: 	S DDSI="" F  S DDSI=$O(@DDSIEN@(DDSI)) Q:DDSI=""  D
   12: 	. S DDSRN=@DDSIEN@(DDSI) Q:'DDSRN
   13: 	. S DA=+DDSRN,$P(DDSDA,",")=DA
   14: 	. I $D(@DDSREFT@(DDSPG,DDSBK,DDSPDA,"B",DDSDA))[0 D
   15: 	.. S DDSSN=DDSSN+1
   16: 	.. D ADD^DDSM(DDSDA,DDSPDA,DDSSN)
   17: 	. E  D ^DDS11(DDSBK) S DDSCHG=1
   18: 	;
   19: 	S DDSSN=DDSSN+1
   20: 	D POSSN^DDSM(DDSSN)
   21: 	D DMULTN^DDSR(DDSPG,DDSBK,DDSPDA,$P(DDSREP,U,5),1)
   22: 	S DIR0=$P(@DDSREFS@(DDSPG,DDSBK,DDO,"D"),U,1,3)
   23: 	S:$P($G(DDSREP),U,3)>1 $P(DIR0,U)=$P(DIR0,U)+$P(DDSREP,U,3)-1
   24: 	Q
   25: 	;
   26: DEL(DDSIEN)	;Delete subentry
   27: MDEL	N C,P,R,S
   28: 	Q:'$G(DDSIEN)
   29: 	S P=$P(DDSREP,U)
   30: 	S C=$G(@DDSREFT@(DDSPG,DDSBK,P,$P(DDSREP,U,4)))
   31: 	S S=$S(DDSIEN=C:$P(DDSREP,U,4),1:$G(@DDSREFT@(DDSPG,DDSBK,P,"B",DDSIEN)))
   32: 	Q:'S
   33: 	;
   34: 	K @DDSREFT@(DDSPG,DDSBK,P,"B",DDSIEN)
   35: 	F S=S:1 Q:$D(@DDSREFT@(DDSPG,DDSBK,P,S+1))[0  D
   36: 	. S R=@DDSREFT@(DDSPG,DDSBK,P,S+1)
   37: 	. S @DDSREFT@(DDSPG,DDSBK,P,S)=R
   38: 	. S @DDSREFT@(DDSPG,DDSBK,P,"B",R)=S
   39: 	K @DDSREFT@(DDSPG,DDSBK,P,S)
   40: 	K @DDSREFT@("F"_DDP,DDSIEN)
   41: 	;
   42: 	S DA=+$G(@DDSREFT@(DDSPG,DDSBK,P,$P(DDSREP,U,4)))
   43: 	S $P(DDSDA,",")=+DA
   44: 	I C=DDSIEN D
   45: 	. D DMULTN^DDSR(DDSPG,DDSBK,P,$P(DDSREP,U,5),$P(DDSREP,U,3))
   46: 	E  D
   47: 	. D DMULTN^DDSR(DDSPG,DDSBK,P,$P(DDSREP,U,5),1)
   48: 	. D:'DA POSSN^DDSM(999999999999)
   49: 	S DIR0=$P(@DDSREFS@(DDSPG,DDSBK,DDO,"D"),U,1,3)
   50: 	S:$P($G(DDSREP),U,3)>1 $P(DIR0,U)=$P(DIR0,U)+$P(DDSREP,U,3)-1
   51: 	Q

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