cAN008 ;Gelijkhouden bestanden ;%AN008 ; [ 11/05/01 10:08 AM ] Q ; T0 ;Gelijkhouden bestanden ; ; T0F ;Interaction des fichiers ; ; T0E ;Gelijkhouden bestanden ; ; ; ============================================== ; eerste bestand: ^_Q_GL(index,0) ; ============================================== ; tweede bestand: ^D_GL("string",GL_".A",UI1,0) ; ============================================== ; linken via: 148 = intern nummer tweede bestand ; 149 = Q-waarde eerste bestand ; 150 = index eerste bestand ; ============================================== ; CNV ; converteer bepaalde velden bij overgang KL naar KL.A, LE naar LE.A, AR ... ; algemene wijzigingen die gelden voor alle bestanden en zowel voor oud (KL) als nieuw (KL.A) I '$L($P(B(1),D,49)) S $P(B(1),D,49)=Q ; Q-waarde S $P(B(1),D,50)=UI1 ; UI1 eerste bestand I UFU="O",'$L($P(B(1),D,48)) D . N UQC,USC,UI1 . S $ZT="TRAP^cAN000" . S UQC=$P(^DMS(DMSQ,DMS,2),D),USC=$P(^(2),D,2) . I $L(UQC),$L(USC) D .. S $ZT="TRAP^cAN000" .. N Q .. S Q=$P(B(1),D,49) .. S UI1=$$NR^cAN000 .. S $P(B(1),D,48)=UI1 ; indien KL of LE : NAAM_" "_NR wegschrijven I $G(UDD)=1 S $P(B(1),D,50)=$$DI^cAN000($P(B(1),D,2),$P(B(1),D)) ; hierna volgen velden die afwijken tussen de 2 bestanden (codebestanden) CNVA M NB=B,NA=A S $P(NB(1),D,30)=+$P(B(1),D,30),$P(NA(1),D,30)=+$P(A(1),D,30) I $L($P($G(^DMS(DMSQ,DMS,2)),D,3)) X $P(^(2),D,3) ; specifieke xecutes CNVZ Q ; ;-------------------------------------------------------------- ; OPENEN ; Deze functie wordt opgeroepen vanuit $P(^DMA(UQA,USA,0,2),D) ;-------------------------------------------------------------- O S $ZT="TRAP^cAN000" I $G(EXTTOOL) G OZ N DMS,DMSQ,NA,NB,UDD S UDD=$P(^DMC(UQC,USC,"DATA"),D) N UQC,USC S DMS=^DMA(UQA,USA,0,"DMS") S DMSQ=$$DMSQ(DMS) I DMSQ="" D G OZ . I '$P(B(1),D,48) S $P(B(1),D,48)=$P(B(1),D) ; VJ 21.05.02 D CNV S UQC=$P(^DMS(DMSQ,DMS,2),D),USC=$P(^(2),D,2) I $L(UQC),$L(USC) D . N UI1,A,B,Q . M B=NB,A=NA . S Q=$P(B(1),D,49) . S UI1=$P(B(1),D,48) . N SW2,ULOG S SW2=1 D U^cAN000 K dummy OZ S OK=2 Q ; ; ;-------------------------------------------------------------- ; WIJZIGEN ; Deze functie wordt opgeroepen vanuit $P(^DMA(UQA,USA,0,3),D) ;-------------------------------------------------------------- W S $ZT="TRAP^cAN000" I $G(EXTTOOL) G WZ N DMS,DMSQ,NA,NB,MEM,UDD S UDD=$P(^DMC(UQC,USC,"DATA"),D) N UQC,USC S DMS=^DMA(UQA,USA,0,"DMS") S DMSQ=$$DMSQ(DMS) I DMSQ="" D G WZ . I '$P(B(1),D,48) S $P(B(1),D,48)=$P(B(1),D) ; VJ 21.05.02 M MEM=ULOG D CNV S UQC=$P(^DMS(DMSQ,DMS,2),D),USC=$P(^(2),D,2) I $L(UQC),$L(USC) D . N UREF,A,B,UI1,Q . M B=NB,A=NA . S Q=$P(B(1),D,49) . S UI1=$P(B(1),D,48) . S UREF=^DMC(UQC,USC,"DATA","REF") . S OK=$$PLUS^cANLOCK(UREF,2,"",$S($G(EXTWIJZ):0,1:2)) I 'OK Q . D U^cAN000 K dummy . L -@UREF S OK=2 K ULOG M ULOG=MEM WZ S OK=2 Q ; ; ;-------------------------------------------------------------- ; VERWIJDEREN (niv.2) ; Deze functie wordt opgeroepen vanuit $P(^DMA(UQA,USA,0,4),D,2) ;-------------------------------------------------------------- V S $ZT="TRAP^cAN000" I $G(EXTTOOL) G VZ N DMS,DMSQ,NA,NB,MEM,UDD S UDD=$P(^DMC(UQC,USC,"DATA"),D) N UQC,USC S DMS=^DMA(UQA,USA,0,"DMS") S DMSQ=$$DMSQ(DMS) I DMSQ="" D G VZ . I '$P(B(1),D,48) S $P(B(1),D,48)=$P(B(1),D) ; VJ 21.05.02 M MEM=ULOG D CNV S UQC=$P(^DMS(DMSQ,DMS,2),D),USC=$P(^(2),D,2) I $L(UQC),$L(USC) D . N UREF,A,B,UI1,Q . M B=NB,A=NA . S Q=$P(B(1),D,49) . S UI1=$P(B(1),D,48) . S UREF=^DMC(UQC,USC,"DATA","REF") . S OK=$$PLUS^cANLOCK(UREF,2,"",$S($G(EXTWIJZ):0,1:2)) I 'OK Q . D U^cAN000 K dummy . L -@UREF S OK=2 K ULOG M ULOG=MEM VZ Q ; ; ;-------------------------------------------------------------- ; VERWIJDEREN (kill) ; Deze functie wordt opgeroepen vanuit $P(^DMA(UQA,USA,0,4),D,2) ;-------------------------------------------------------------- X S $ZT="TRAP^cAN000" I $G(EXTTOOL) G XZ N DMS,DMSQ,NIV,MEM,NA,NB S UDD=$P(^DMC(UQC,USC,"DATA"),D) N UQC,USC S DMS=^DMA(UQA,USA,0,"DMS") S DMSQ=$$DMSQ(DMS) I DMSQ="" D G XZ . I '$P(B(1),D,48) S $P(B(1),D,48)=$P(B(1),D) ; VJ 21.05.02 M MEM=ULOG D CNV S UQC=$P(^DMS(DMSQ,DMS,2),D),USC=$P(^(2),D,2) I $L(UQC),$L(USC) D . N UREF,A,B,UI1,Q . M B=NB,A=NA . S Q=$P(B(1),D,49) . S UI1=$P(B(1),D,48) . S UREF=^DMC(UQC,USC,"DATA","REF") . S OK=$$PLUS^cANLOCK(UREF,2,"",$S($G(EXTWIJZ):0,1:2)) I 'OK Q . D U^cAN000,K^cAN000 K dummy . L -@UREF S OK=2 K ULOG M ULOG=MEM XZ Q ; ;-------------------------------------------------------------- ; Opbouwen 2' bestand ;-------------------------------------------------------------- 1(Q,DMS,NDMS) S $ZT="TRAP^cAN000" ; DMS = oude DMS ; NDMS = nieuwe DMS (niet verplicht : NDMS=USC uit ^DMS(Q,"DMS",2) veld 2 S DMSQ=$$DMSQ(DMS) I DMSQ="" G YZ S UQC=$P(^DMS(DMSQ,DMS,2),D),USC=$P(^DMS(DMSQ,DMS,2),D,2) I UQC=""!(USC="") G YZ I '$L($G(NDMS)) S NDMS=USC S REF=^DMC(UQC,USC,"DATA","REF"),REF=$P(REF,",UI1")_")" D KILL(REF) S REF=^DMC(UQC,USC,"DATA","INDEX") D KILL(REF) S REF=^DMC(UQC,USC,"DATA","INDEX2") D KILL(REF) S NREFLOG=$G(^DMC(UQC,USC,"LOGGING")) S OKLOG=0 I $L(NREFLOG),$E(NREFLOG)="^" D . D KILL(NREFLOG) . W !,"Overnemen logging " R OK . I $L(OK) S OK=$E(OK) I "YyJj"[OK S OKLOG=1 S REF=^DMC(UQC,USC,"DIN") I $L(REF),REF["^" D . W !,"Set ",REF,"=",1E5," " R OK . I $L(OK) S OK=$E(OK) I "YyJj"[OK S @REF=100000 W !,REF,"=",@REF S OKPAR=0,REF="^DPAR(0,""BATCH"")" I $L(REF),REF["^" D . W !,"Aanvullen ",REF," voor "_NDMS_" " R OK . I '$L(OK) Q . S OK=$E(OK) I "YyJj"'[OK Q . S OK=0 F W !,"Volgnummer in ^DPAR(0,""BATCH"") <1>" R OK Q:OK!'$L(OK) . I '$L(OK) S OK=1 . D PARBATCH(Q,OK,DMS,NDMS) W !,"Running..." S HH=$H 11 S UQA=$P($G(^DMS(Q,DMS,"DMA","O")),D) I UQA="" S UQA=0 13 S USA=$P($G(^DMS(Q,DMS,"DMA","O")),D,2) I USA="" S USA=DMS S SW4=0,SW3=1,I="" 17 S SW4=$O(^DMA(UQA,USA,SW4)) I SW4="" G 2 19 S I=$O(^DMA(UQA,USA,SW4,I)) I I="" G 17 S U7=$G(^(I,16)) I U7\100>SW3 S SW3=U7\100 G 19 ; 2 D DMS^cAN000("UQC","USC",DMS,1) I UQC=""!(USC="") G YZ S UDD=^DMC(UQC,USC,"DATA"),UREF=$G(^("DATA","REF")),REFLOG=$G(^DMC(UQC,USC,"LOGGING")) S UI1=$S(UDD=4:"",1:0),USL=D 21 S UI1=$O(@UREF) I UI1="" L G YZ L @UREF K A,B D R^cAN000 M A=B S UFU="O" D O ; set data + indexen S @UREF@(0)=B(1) ; linken opnemen F I=1:1:SW3-1 I '$D(^(I)) S ^(I)=B(I+1) ; ontbrekende nodes aanvullen I $P(B(1),D,30)=2 S UFU="V" D V ; kill indexen I $G(OKLOG) D LOG(Q,$S(UDD<3:$P(B(1),D),1:UI1),REFLOG,$P(B(1),D,48),NREFLOG) I HH'=$H W "." S HH=$H G 21 ; YZ W !!,"Einde conversie",! Q ; ;-------------------------------------------------------------- ; Controle via vastgelegd stramien: ^DPAR(0,"BATCH",VNR ;-------------------------------------------------------------- BATCH(Q,VNR,SWBG) G ^cAN0083 ; ;-------------------------------------------------------------- ; Controle(s) ;-------------------------------------------------------------- C(Q,DMS,SWBG) G ^cAN0081 ; ;-------------------------------------------------------------- ; Bepalen Q-waarde licentie ;-------------------------------------------------------------- DMSQ(DMS) S $ZT="TRAP^cAN000" N R S R="" I $L(DMS) D . I $D(^DMS(Q,DMS,2)) S R=Q Q . I $D(^DMS(0,DMS,2)) S R=0 DMSQZ Q R ; ;-------------------------------------------------------------- ; Verwijderen global ;-------------------------------------------------------------- KILL(REF) I $L(REF),REF["^" D . W !,"Kill "_REF_" " R OK . I $L(OK) S OK=$E(OK) I "YyJj"[OK K @REF W !,REF," was killed." KILLZ Q ; LOG(Q,UI1,REFLOG,NUI1,NREFLOG) ; overnemen logging S $ZT="TRAP^cAN000" I '$L($G(REFLOG)) G LOGZ I $E(REFLOG)'="^" G LOGZ I '$L($G(NREFLOG)) G LOGZ I $E(NREFLOG)'="^" G LOGZ K @NREFLOG@(NUI1) ; eerst nieuwe logging verwijderen M @NREFLOG@(NUI1)=@REFLOG@(UI1) ; oude overnemen LOGZ Q ; PARBATCH(Q,VNR,DMS,NDMS) ; opzetten ^DPAR(0,"BATCH",VNR) N DPARNR S $ZT="TRAP^cAN000" I '$L($G(VNR)) S VNR=1 I '$L($G(NDMS)) S NDMS=DMS_".A" S DPARNR=0 F S DPARNR=$O(^DPAR(0,"BATCH",VNR,DPARNR)) Q:DPARNR="" I $P(^(DPARNR),D)=NDMS Q I '$L(DPARNR) D . S DPARNR=$O(^DPAR(0,"BATCH",VNR,""),-1)+1 . S ^DPAR(0,"BATCH",VNR,DPARNR)=NDMS_"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\0" W !,$zr,"=""",@$zr_"""" S ^DPAR(0,"BATCH",VNR,DPARNR,Q)=DMS_"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\0" W !,$zr,"=""",@$zr_"""" PARBATCHZ Q ; ZZ ; 19.03.07 - 15 u 31 * V8.08