Annotation of freem_fileman/DIFROMSF.m, revision 1.1

1.1     ! snw         1: DIFROMSF       ;SCISC/DCL-SILENT DIFROM EXTENDED DATABASE FILES;08:41 AM  22 Nov 1994;
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4:        Q
        !             5:        ;
        !             6:        ; * EXTENDED DATABASE ELEMENTS (EDE) *
        !             7: EDEOUT(DIFRIEN,DIFRNAME,DIFRFLG,DIFRFIA,DIFRTA,DIFRLST,DIFRMSGR)       ;
        !             8:        ;ENTRY,PKGNAME,FLAGS,FIA_ARRAY,TARGET_ARRAY,LIST_ARRAY,MSG_ROOT
        !             9:        I $G(DIFRNAME)']"" D ERR("PACKAGE NAME") Q
        !            10:        N DIFRFILE
        !            11:        S DIFRFILE=$S(DIFRFLG="F":.403,DIFRFLG="I":.402,DIFRFLG="P":.4,DIFRFLG="S":.401,DIFRFLG="$":.5,1:"")
        !            12:        I DIFRFILE'>0 D ERR("FLAG") Q
        !            13:        I $G(DIFRTA)="" S DIFRTA=$NA(^XTMP("XPDT",DIFRNAME,"KRN"))
        !            14:        ;
        !            15:        ;              >*>*>*> c h e c k   h e r e <*<*<*<
        !            16:        ;
        !            17:        S DIFRFIA=$G(DIFRFIA) S:DIFRFIA="" DIFRFIA=$NA(@DIFRTA@("FIA"))
        !            18:        I $G(DIFRIEN)'>0&($G(DIFRLST)="") D ERR("NO IENs PASSED") Q
        !            19:        I $G(DIFRIEN)'>0,$D(@DIFRLST)'>9 D ERR("LIST DOES NOT CONTAIN IENs") Q
        !            20:        D EDEOUT^DIFROMS5
        !            21:        G EXIT
        !            22:        ;
        !            23: EDEIN  ; * EXTENDED DATABASE ELEMENTS *
        !            24:        Q
        !            25: FPRE(DIFRFILE,DIFRNAME,DIFRSA) ; FILE-PRE
        !            26:        K ^TMP("DIFROMS",$J)
        !            27:        ;FILENUMBER,SUBSCRIPT_NAME(package name for KIDS),SOURCE_ARRAY
        !            28:        S DIFRFILE=$G(DIFRFILE) S:DIFRFILE'>0 DIFRFILE=$G(XPDFIL)
        !            29:        I DIFRFILE'>0 D ERR("FILE NUMBER") Q
        !            30:        Q:DIFRFILE'=.403
        !            31:        I $G(DIFRNAME)="" D ERR("SUBSCRIPT NAME") Q
        !            32:        I $G(DIFRSA)="" S DIFRSA=$NA(^XTMP("XPDT",DIFRNAME,"KRN"))
        !            33:        I DIFRFILE=.403 D  Q  ;If Forms bring in Blocks
        !            34:        .N DIC,DIFRR,DIFRFILE,DIFRL,DIFRX,X,Y
        !            35:        .S DIC="^DIST(.404,",DIC(0)="LX",DLAYGO=.404,DIFRFILE=.404
        !            36:        .S DIFRR=0
        !            37:        .F  S DIFRR=$O(@DIFRSA@(DIFRFILE,DIFRR)) Q:DIFRR'>0  S DIFRX=^(DIFRR,0) D
        !            38:        ..S DIFRL=$P(DIFRX,"^",2)
        !            39:        ..S X=$P(DIFRX,"^")
        !            40:        ..K DA
        !            41:        ..D ^DIC
        !            42:        ..I Y'>0 D ERR("UNABLE TO ADD "_$P(DIFRX,"^")_" BLOCK") Q
        !            43:        ..K ^DIST(.404,+Y)
        !            44:        ..I '$D(^DD(+DIFRL)) D ERR("BLOCK: "_$P(DIFRX,"^")_" installed but associated file "_DIFRL_" missing")
        !            45:        ..M ^DIST(.404,+Y)=@DIFRSA@(DIFRFILE,DIFRR)
        !            46:        ..S DIK=DIC,DA=+Y
        !            47:        ..D IX1^DIK
        !            48:        ..Q
        !            49:        .Q
        !            50:        Q
        !            51:        ;
        !            52: EPRE(DIFRFILE,DIFRIEN,DIFROIEN,DIFRNAME,DIFRSA)        ; ENTRY-PRE
        !            53:        ;FILENUM,NEW_ENTRY_NUM,OLD_ENTRY_NUM,PKG/SUBSCRIPT_NAME,SOURCE_ARRAY
        !            54:        ; Entry Pre - delete template on target system
        !            55:        N DIFRRDA,DIFRX,DIFRF
        !            56:        S DIFRFILE=$G(DIFRFILE) S:DIFRFILE'>0 DIFRFILE=$G(XPDFIL)
        !            57:        I DIFRFILE'>0 D ERR("FILE NUMBER") Q
        !            58:        S DIFRIEN=$G(DIFRIEN) S:DIFRIEN'>0 DIFRIEN=$G(DA)
        !            59:        I DIFRIEN'>0 D ERR("ENTRY NUMBER") Q
        !            60:        S DIFROIEN=$G(DIFROIEN) S:DIFROIEN'>0 DIFROIEN=$G(OLDA)
        !            61:        I DIFRIEN'>0 D ERR("OLD ENTRY NUMBER") Q
        !            62:        I $G(DIFRNAME)="" D ERR("PACKAGE/SUBSCRIPT NAME MISSING") Q  ;GET VARIABLE FROM RON
        !            63:        I $G(DIFRSA)="" S DIFRSA=$NA(^XTMP("XPDT",DIFRNAME,"KRN"))
        !            64:        ; build file root with entry number and kill entry on target system
        !            65:        S DIFRRDA=$$CREF^DIQGU($$ROOT^DIQGU(DIFRFILE)_DIFRIEN)
        !            66:        S DIFRX=$P(@DIFRRDA@(0),"^")
        !            67:        S DIFRF=$S(DIFRFILE=.4:"DIPT",DIFRFILE=.402:"DIE",DIFRFILE=.401:"DIBT",DIFRFILE=.403:"DIST(.403,",DIFRFILE=.404:"DIST(.404,",1:"FUN")
        !            68:        S ^TMP("DIFROMS",$J,DIFRF,DIFRX)=DIFRIEN
        !            69:        K @DIFRRDA
        !            70:        I DIFRFILE=.403 D  ;If Forms resolve Block Pointers
        !            71:        .N DIFRA0,DIFRA1,DIFRA2,DIFRJ,DIFRL,DIFRP,DIFRX,DIFRY
        !            72:        .S DIFRJ=0
        !            73:        .F  S DIFRJ=$O(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ)) Q:'DIFRJ  I $D(^(DIFRJ,0)) S DIFRP=$P(^(0),"^",2) D
        !            74:        ..S:DIFRP]"" DIFRP=$O(^DIST(.404,"B",DIFRP,0))
        !            75:        ..S:DIFRP $P(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,0),"^",2)=DIFRP
        !            76:        ..S DIFRL=0
        !            77:        ..F  S DIFRL=$O(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,DIFRL)) Q:'DIFRL  S DIFRA0=$G(^(DIFRL,0)),DIFRP=$P(DIFRA0,"^") I DIFRP]"" D
        !            78:        ...S DIFRP=$O(^DIST(.404,"B",DIFRP,0)) I DIFRP D
        !            79:        ....S $P(DIFRA0,"^")=DIFRP,@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,"BLK",DIFRP,0)=DIFRA0
        !            80:        ....Q
        !            81:        ...Q
        !            82:        ..S DIFRA0=$G(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,0))
        !            83:        ..Q:DIFRA0=""
        !            84:        ..K @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40)
        !            85:        ..S (DIFRA1,DIFRA2)=0
        !            86:        ..S DIFRL=0
        !            87:        ..F  S DIFRL=$O(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,"BLK",DIFRL)) Q:'DIFRL  S @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,DIFRL,0)=^(DIFRL,0),DIFRA1=DIFRL,DIFRA2=DIFRA2+1
        !            88:        ..S $P(DIFRA0,"^",3,4)=DIFRA1_"^"_DIFRA2
        !            89:        ..S @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,0)=DIFRA0
        !            90:        ..K @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,"BLK")
        !            91:        ..Q
        !            92:        .Q
        !            93:        Q
        !            94: EPOST  ; ENTRY-POST
        !            95:        Q
        !            96: FPOST  ; FILE-POST      RECOMPILE TEMPLATES
        !            97:        N DIFR,DIFR1,DIFR2,DMAX,X,Y
        !            98:        K DIC,DLAYGO
        !            99:        F DIFR="DIE","DIPT" D
        !           100:        .I ^DD("VERSION")>17.4,'$D(DISYS) D OS^DII
        !           101:        .E  S DISYS=^DD("OS")
        !           102:        .Q:'$D(^DD("OS",DISYS,"ZS"))
        !           103:        .S DIFR1=""
        !           104: DZ1    .S DIFR1=$O(^TMP("DIFROMS",$J,DIFR,DIFR1)) Q:DIFR1=""
        !           105:        .F DIFR2=0:0 S DIFR2=$O(^TMP("DIFROMS",$J,DIFR,DIFR1,DIFR2)) Q:'DIFR2  D
        !           106:        ..S Y=DIFR2
        !           107:        ..I $D(@("^"_DIFR_"(Y,""ROU"")")) K ^("ROU") I $D(^("ROUOLD")) S X=^("ROUOLD") D
        !           108:        ...S DMAX=^DD("ROU") D:X]"" @("EN^DI"_$E(DIFR,3)_"Z")
        !           109:        ...Q
        !           110:        ..Q
        !           111:        .G DZ1
        !           112:        K ^TMP("DIFROMS",$J)
        !           113:        Q
        !           114: INITCHK        ; check
        !           115:        ;
        !           116:        ;
        !           117:        I '$D(DIQUIET) N DIQUIET S DIQUIET=1
        !           118:        I '$D(DIFM) N DIFM S DIFM=1
        !           119:        I $G(U)'="^"!($G(DT)'>0)!($G(DTIME)'>0)!('$D(DUZ)) D DT^DICRW
        !           120:        Q
        !           121:        ;
        !           122: ERR(X) S X(1)=X D BLD^DIALOG(1700,.X)
        !           123: EXIT   I $G(DIFRMSGR)]"" D CALLOUT^DIEFU(DIFRMSGR)
        !           124:        Q

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