DDSM1 ;SFISC/MKO-MULTILINE, LOAD AND DELETE ;09:39 AM 15 Jul 1994
;;21.0;VA FileMan;;Dec 28, 1994
;Per VHA Directive 10-93-142, this routine should not be modified.
;
LOAD(DDSIEN) ;Load subentries
MLOAD N DDSI,DDSOSN,DDSPDA,DDSRN,DDSSN,DDSSTL
Q:$D(@DDSIEN)<9
S DDSPDA=$P(DDSREP,U),DDSSTL=$P(DDSREP,U,2)
S (DDSOSN,DDSSN)=$O(@DDSREFT@(DDSPG,DDSBK,DDSPDA," "),-1)
;
S DDSI="" F S DDSI=$O(@DDSIEN@(DDSI)) Q:DDSI="" D
. S DDSRN=@DDSIEN@(DDSI) Q:'DDSRN
. S DA=+DDSRN,$P(DDSDA,",")=DA
. I $D(@DDSREFT@(DDSPG,DDSBK,DDSPDA,"B",DDSDA))[0 D
.. S DDSSN=DDSSN+1
.. D ADD^DDSM(DDSDA,DDSPDA,DDSSN)
. E D ^DDS11(DDSBK) S DDSCHG=1
;
S DDSSN=DDSSN+1
D POSSN^DDSM(DDSSN)
D DMULTN^DDSR(DDSPG,DDSBK,DDSPDA,$P(DDSREP,U,5),1)
S DIR0=$P(@DDSREFS@(DDSPG,DDSBK,DDO,"D"),U,1,3)
S:$P($G(DDSREP),U,3)>1 $P(DIR0,U)=$P(DIR0,U)+$P(DDSREP,U,3)-1
Q
;
DEL(DDSIEN) ;Delete subentry
MDEL N C,P,R,S
Q:'$G(DDSIEN)
S P=$P(DDSREP,U)
S C=$G(@DDSREFT@(DDSPG,DDSBK,P,$P(DDSREP,U,4)))
S S=$S(DDSIEN=C:$P(DDSREP,U,4),1:$G(@DDSREFT@(DDSPG,DDSBK,P,"B",DDSIEN)))
Q:'S
;
K @DDSREFT@(DDSPG,DDSBK,P,"B",DDSIEN)
F S=S:1 Q:$D(@DDSREFT@(DDSPG,DDSBK,P,S+1))[0 D
. S R=@DDSREFT@(DDSPG,DDSBK,P,S+1)
. S @DDSREFT@(DDSPG,DDSBK,P,S)=R
. S @DDSREFT@(DDSPG,DDSBK,P,"B",R)=S
K @DDSREFT@(DDSPG,DDSBK,P,S)
K @DDSREFT@("F"_DDP,DDSIEN)
;
S DA=+$G(@DDSREFT@(DDSPG,DDSBK,P,$P(DDSREP,U,4)))
S $P(DDSDA,",")=+DA
I C=DDSIEN D
. D DMULTN^DDSR(DDSPG,DDSBK,P,$P(DDSREP,U,5),$P(DDSREP,U,3))
E D
. D DMULTN^DDSR(DDSPG,DDSBK,P,$P(DDSREP,U,5),1)
. D:'DA POSSN^DDSM(999999999999)
S DIR0=$P(@DDSREFS@(DDSPG,DDSBK,DDO,"D"),U,1,3)
S:$P($G(DDSREP),U,3)>1 $P(DIR0,U)=$P(DIR0,U)+$P(DDSREP,U,3)-1
Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>