Annotation of freem_fileman/DITMGMRG.m, revision 1.1

1.1     ! snw         1: DITMGMRG       ;SFISC/EDE(OHPRD)-RELINK/MERGE TWO ENTRIES BELOW POINTED TO FILE ;2/24/94  16:10
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4:        ;
        !             5:        ; Merge two entries below pointed to file.  See ^DITMDOC.
        !             6:        ;
        !             7: START  ;
        !             8:        D ^DITMGM1
        !             9:        I 'DITMGMRG("GO") D EOJ K DITMGMRG Q
        !            10:        D EN
        !            11:        K DITMGMRG
        !            12:        Q
        !            13:        ;
        !            14: EN     ; EXTERNAL ENTRY POINT
        !            15:        D INIT^DITMGMRI
        !            16:        Q:$D(DITMGMQF)
        !            17:        D STACK
        !            18:        S:$D(DITMGMRG("NOTALK")) DITMGM2("NOTALK")=1
        !            19:        D ^DITMGM2 K DITMGM2("NOTALK")
        !            20:        K ^UTILITY("DITMGMRG",$J)
        !            21:        W:'$D(DITMGMRG("NOTALK")) !!,"Merge complete",!!
        !            22:        D EOJ
        !            23:        Q
        !            24:        ;
        !            25: STACK  ;STACK ALL FILES POINTING TO POINTED TO FILE AND IF .01 FIELD
        !            26:        ;POINTING AND DINUM, FILES POINTING TO POINTING FILE, AND SO ON.
        !            27:        ;
        !            28:        W:'$D(DITMGMRG("NOTALK")) !!,"Gathering files and checking 'PT' nodes"
        !            29:        NEW DITMGFLE,DITMGPFL,DITMGPFD,DITMSKP
        !            30:        K ^UTILITY("DITMGMRG",$J)
        !            31:        S DITMGFLE=DITMGMRG("FILE")
        !            32:        D FILES
        !            33:        Q
        !            34:        ;
        !            35: FILES  ; CALLED RECURSIVELY
        !            36:        D PTCHK
        !            37:        F DITMGPFL=0:0 S DITMGPFL=$O(^DD(DITMGFLE,0,"PT",DITMGPFL)) Q:DITMGPFL'=+DITMGPFL  D  I 'DITMSKP D FIELDS
        !            38:        . S DITMSKP=0
        !            39:        . I $D(DITMGMRG("EXCLUDE",DITMGPFL)) S DITMSKP=1 Q
        !            40:        . ;I DITMGFLE=DITMGPFL S DITMSKP=1 Q
        !            41:        . Q:'$D(DITMGMRG("PACKAGE"))
        !            42:        . I DITMGMRG("PACKAGE") S:'$D(DITMGMRG("PACKAGE",DITMGPFL)) DITMSKP=1 Q
        !            43:        . Q
        !            44:        Q
        !            45:        ;
        !            46: FIELDS ;
        !            47:        ;W:'$D(DITMGMRG("NOTALK")) "f"
        !            48:        F DITMGPFD=0:0 S DITMGPFD=$O(^DD(DITMGFLE,0,"PT",DITMGPFL,DITMGPFD)) Q:DITMGPFD'=+DITMGPFD  D
        !            49:        . S ^UTILITY("DITMGMRG",$J,DITMGPFL,DITMGPFD)=DITMGFLE
        !            50:        . ;W:'$D(DITMGMRG("NOTALK")) $S($D(^DD(DITMGPFL,0,"UP")):"s",1:".")
        !            51:        . I DITMGPFD=.01,'$D(^DD(DITMGPFL,0,"UP")),$P(^DD(DITMGPFL,.01,0),U,5,99)["DINUM" D RECURSE
        !            52:        Q
        !            53:        ;
        !            54: RECURSE        ;
        !            55:        ;W:'$D(DITMGMRG("NOTALK")) "d"
        !            56:        NEW DITMGFLE
        !            57:        S DITMGFLE=DITMGPFL
        !            58:        NEW DITMGPFL,DITMGPFD
        !            59:        D FILES
        !            60:        Q
        !            61:        ;
        !            62: PTCHK  ; MAKE SURE "PT" CORRECT
        !            63:        I '$D(DITMGMRG("NOTALK")) ;W $S(DITMGMRG("FILE")=DITMGFLE:"",1:"[")
        !            64:        E  S DITMU4("NOTALK")=1
        !            65:        S DITMU4FI=DITMGFLE
        !            66:        F DITMU4PF=0:0 S DITMU4PF=$O(^DD(DITMU4FI,0,"PT",DITMU4PF)) Q:DITMU4PF=""  F DITMU4PD=0:0 S DITMU4PD=$O(^DD(DITMU4FI,0,"PT",DITMU4PF,DITMU4PD)) Q:DITMU4PD=""  D CHKIT^DITMU4
        !            67:        K DITMU4FI,DITMU4L,DITMU4PF,DITMU4PD,DITMU4X,DITMU4("NOTALK")
        !            68:        ;I DITMGMRG("FILE")'=DITMGFLE,'$D(DITMGMRG("NOTALK")) W "]"
        !            69:        Q
        !            70:        ;
        !            71: EOJ    ;
        !            72:        K X,Y
        !            73:        K %,DIPGM
        !            74:        I $D(DITMGMQF) S DITMGMRG("QFLG")=DITMGMQF
        !            75:        K DITMGMF,DITMGMFG,DITMGMFL,DITMGMQF,DITMGMT
        !            76:        K AUPNDAYS,AUPNDOB,AUPNDOD,AUPNPAT,AUPNSEX
        !            77:        I $D(ZTQUEUED) S ZTREQ="@" Q
        !            78:        I $D(ZTSK) K ^%ZTSK(ZTSK),ZTSK Q  ; old Kernel
        !            79:        I '$D(DITMGMRG("NOTALK")),$D(DITMGMRG("ERROR")) D EOJ2 K DITMGMRG("ERROR")
        !            80:        Q
        !            81:        ;
        !            82: EOJ2   ; List errors
        !            83:        W !!,"The following errors occurred during the merge: ",!
        !            84:        F %=0:0 S %=$O(DITMGMRG("ERROR",%)) Q:%'=+%  W !,DITMGMRG("ERROR",%)
        !            85:        W !
        !            86:        K %
        !            87:        Q

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