| 1 | DIFROMSX ;SFIRMFO/DCM/TKW-MOVE INDEX FILE ENTRIES ;12:31 PM  31 Oct 2001 | 
|---|
| 2 | ;;22.0;VA FileMan;**1,11,92**;Mar 30, 1999 | 
|---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | DDIXOUT(DIFRFILE,DIFRF2,DIFRFDD,DIFRTA) ; retrieve INDEX entries for file | 
|---|
| 5 | ; DIFRFILE=top level file# | 
|---|
| 6 | ; DIFRF2=current file/subfile # | 
|---|
| 7 | ; DIFRFDD=1 if sending full DD | 
|---|
| 8 | ; DIFRTA=Global reference of transport global. | 
|---|
| 9 | N DIFRNAME,DIFRD0,DIFRD1,DIFRF,DIFRFLD,DIOUT,X,DICNT1,DICNT2 | 
|---|
| 10 | S DIFRNAME="",DIOUT=0 | 
|---|
| 11 | F  S DIFRNAME=$O(^DD("IX","BB",DIFRF2,DIFRNAME)) Q:DIFRNAME=""  D  Q:DIOUT | 
|---|
| 12 | . S DIFRD0=$O(^DD("IX","BB",DIFRF2,DIFRNAME,0)) Q:'DIFRD0 | 
|---|
| 13 | . S (DIFRD1,DICNT1,DICNT2)=0 | 
|---|
| 14 | . F  S DIFRD1=$O(^DD("IX",DIFRD0,11.1,DIFRD1)) Q:'DIFRD1  D  Q:DIOUT | 
|---|
| 15 | . . S X=$G(^DD("IX",DIFRD0,11.1,DIFRD1,0)) | 
|---|
| 16 | . . S DIFRF=$P(X,U,3),DIFRFLD=$P(X,U,4) Q:'DIFRFLD!('DIFRF) | 
|---|
| 17 | . . S DICNT1=DICNT1+1,X=$$FNO^DILIBF(DIFRF) | 
|---|
| 18 | . . I '$D(@DIFRTA@("^DD",X,DIFRF,DIFRFLD)) D  Q | 
|---|
| 19 | . . . Q:'DIFRFDD&($G(@DIFRTA@("FIA",X,DIFRF))'=0) | 
|---|
| 20 | . . . D ERR1(DIFRF,DIFRFLD,DIFRNAME,"INDEX") Q | 
|---|
| 21 | . . S DICNT2=DICNT2+1 | 
|---|
| 22 | . . Q | 
|---|
| 23 | . Q:DIOUT  I DICNT2=0,'DIFRFDD Q | 
|---|
| 24 | . ;I DICNT1'=DICNT2 D ERR2(DIFRF2,DIFRNAME,"INDEX") Q | 
|---|
| 25 | . M @DIFRTA@("IX",DIFRFILE,DIFRF2,DIFRNAME)=^DD("IX",DIFRD0) | 
|---|
| 26 | . K @DIFRTA@("IX",DIFRFILE,DIFRF2,DIFRNAME,11.1,"AC") | 
|---|
| 27 | . K @DIFRTA@("IX",DIFRFILE,DIFRF2,DIFRNAME,11.1,"B") | 
|---|
| 28 | . K @DIFRTA@("IX",DIFRFILE,DIFRF2,DIFRNAME,11.1,"BB") | 
|---|
| 29 | . Q | 
|---|
| 30 | Q | 
|---|
| 31 | ; | 
|---|
| 32 | DDIXIN(DIFRFILE,DIFRF2,DIFRSA) ; Install INDEX file entries for file DIFRFILE | 
|---|
| 33 | ; DIFRFILE=source file# | 
|---|
| 34 | ; DIFRF2=current file/subfile# | 
|---|
| 35 | ; DIFRSA=name of array containing incoming data. | 
|---|
| 36 | N DIFRER,DIFRIN,DIFRNAME,DIFRD1,DIOUT,DIFRIN1,DIFRF,DIFRFLD,X | 
|---|
| 37 | I '$D(^DD(.11)) S DIFRER("FILE")=.11 D BLD^DIALOG(401,.DIFRER) Q | 
|---|
| 38 | S DIFRIN=$NA(@DIFRSA@("IX",DIFRFILE,DIFRF2)) | 
|---|
| 39 | S DIFRNAME="" | 
|---|
| 40 | F  S DIFRNAME=$O(@DIFRIN@(DIFRNAME)) Q:DIFRNAME=""  D | 
|---|
| 41 | . S (DIFRD1,DIOUT)=0,DIFRIN1=$NA(@DIFRIN@(DIFRNAME)) | 
|---|
| 42 | . F  S DIFRD1=$O(@DIFRIN1@(11.1,DIFRD1)) Q:'DIFRD1  D  Q:DIOUT | 
|---|
| 43 | . . S X=$G(@DIFRIN1@(11.1,DIFRD1,0)) | 
|---|
| 44 | . . S DIFRF=$P(X,U,3),DIFRFLD=$P(X,U,4) | 
|---|
| 45 | . . I 'DIFRF!('DIFRFLD) Q | 
|---|
| 46 | . . I '$D(^DD(DIFRF,DIFRFLD,0)) D ERR3(DIFRF,DIFRFLD,DIFRNAME,"INDEX") Q | 
|---|
| 47 | . . I $O(^DD(DIFRF,DIFRFLD,5,0)) D | 
|---|
| 48 | . . . Q:$D(^TMP("DIFROMS2",$J,"TRIG",DIFRFILE,DIFRF,DIFRFLD)) | 
|---|
| 49 | . . . D TRMOD^DICR(DIFRF,DIFRFLD) | 
|---|
| 50 | . . . S ^TMP("DIFROMS2",$J,"TRIG",DIFRFLD,DIFRF,DIFRFLD)="" Q | 
|---|
| 51 | . . Q | 
|---|
| 52 | . Q:DIOUT | 
|---|
| 53 | . N DIEN,DIK,DA,DIC,DO | 
|---|
| 54 | . S DIEN=$O(^DD("IX","BB",DIFRF2,DIFRNAME,0)) | 
|---|
| 55 | . I DIEN D  N DINUM S DINUM=DIEN | 
|---|
| 56 | . . S DIK="^DD(""IX"",",DA=DIEN N DIEN D ^DIK Q | 
|---|
| 57 | . S DIC="^DD(""IX"",",DIC(0)="L",DIC("DR")=".02///^S X="_""""_DIFRNAME_"""",X=DIFRF2 D FILE^DICN S DIEN=+Y | 
|---|
| 58 | . I DIEN'>0 D ERR4(DIFRF2,DIFRNAME,"INDEX") Q | 
|---|
| 59 | . M ^DD("IX",DIEN)=@DIFRIN1 | 
|---|
| 60 | . K DIK,DA S DIK="^DD(""IX"",",DA=DIEN D IX1^DIK | 
|---|
| 61 | . Q | 
|---|
| 62 | Q | 
|---|
| 63 | ; | 
|---|
| 64 | ERR1(DIFRF,DIFRFLD,DIFRNAME,DIFRTYPE) ; | 
|---|
| 65 | N DIFRER S DIFRER(1)=DIFRFLD | 
|---|
| 66 | S DIFRER(2)=DIFRF | 
|---|
| 67 | S DIFRER(3)=DIFRNAME,DIFRER(4)=DIFRTYPE | 
|---|
| 68 | D BLD^DIALOG(9543,.DIFRER) S DIOUT=1 Q | 
|---|
| 69 | ERR2(DIFRF2,DIFRNAME,DIFRTYPE) ; | 
|---|
| 70 | N DIFRER S DIFRER(1)=DIFRNAME,DIFRER(2)=DIFRTYPE | 
|---|
| 71 | S DIFRER(3)=DIFRF2 | 
|---|
| 72 | D BLD^DIALOG(9544,.DIFRER) Q | 
|---|
| 73 | ERR3(DIFRF,DIFRFLD,DIFRNAME,DIFRTYPE) ; | 
|---|
| 74 | N DIFRER S DIFRER(1)=DIFRTYPE,DIFRER(2)=DIFRNAME | 
|---|
| 75 | S DIFRER(3)=DIFRFLD | 
|---|
| 76 | S DIFRER(4)=DIFRF | 
|---|
| 77 | D BLD^DIALOG(9545,.DIFRER) S DIOUT=1 Q | 
|---|
| 78 | ERR4(DIFRF2,DIFRNAME,DIFRTYPE) ; | 
|---|
| 79 | N DIFRER S DIFRER(1)=DIFRTYPE,DIFRER(2)=DIFRNAME,DIFRER(3)=DIFRF2 | 
|---|
| 80 | D BLD^DIALOG(9549,.DIFRER) Q | 
|---|
| 81 | ; | 
|---|
| 82 | ;9543  Field |1| of file |2|, part of '|3|' |4| entry, is missing from the transport global... | 
|---|
| 83 | ;9544  Field(s) that are part of |1| |2| entry are missing from the transport global. | 
|---|
| 84 | ;9545  |1| entry |2| not installed.  The REFERENCE FIELD |3| in file |4| does not exist on the system. | 
|---|
| 85 | ;9549 |1| "|2|" on file |3| not installed, FILE^DICN call failed. | 
|---|
| 86 | ; | 
|---|