Annotation of freem_fileman/DIFROMSF.m, revision 1.1.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>