[613] | 1 | DIDU2 ;SEA/TOAD-VA FileMan: DD Tools, Header Nodes ;1:17 PM 12 Jan 2001
|
---|
| 2 | ;;22.0;VA FileMan;**72**;Mar 30, 1999
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | HEADER(DIFILE,DIENS,DIMSGA) ;
|
---|
| 6 | ;ENTRY POINT--return the value a file's Header Node should have
|
---|
| 7 | ;extrinsic function, DIENS passed by reference
|
---|
| 8 | I '$D(DIQUIET) N DIQUIET S DIQUIET=1
|
---|
| 9 | I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
|
---|
| 10 | N DIROOT D HINPUT(.DIFILE,.DIENS,.DIMSGA,.DIROOT) I $G(DIERR) D Q ""
|
---|
| 11 | . D CLOSE
|
---|
| 12 | N DIHEADER S DIHEADER=$$PIECES12(DIFILE,DIROOT) I $G(DIERR) D Q ""
|
---|
| 13 | . D CLOSE
|
---|
| 14 | N DIRECENT S DIRECENT=$O(@DIROOT@(" "),-1) I DIRECENT="" S DIRECENT=0
|
---|
| 15 | N DICOUNT,DIRECORD S DIRECORD=0
|
---|
| 16 | F DICOUNT=0:1 S DIRECORD=$O(@DIROOT@(DIRECORD)) Q:'DIRECORD I DICOUNT>10000 S DICOUNT=$P($G(@DIROOT@(0)),U,4) Q
|
---|
| 17 | Q DIHEADER_U_DIRECENT_U_DICOUNT
|
---|
| 18 | ;
|
---|
| 19 | HINPUT(DIFILE,DIENS,DIMSGA,DIROOT) ;
|
---|
| 20 | ;evaluate input variables for HEADER call
|
---|
| 21 | I $G(DIMSGA)'="" D
|
---|
| 22 | . K @DIMSGA@("DIERR"),@DIMSGA@("DIHELP"),@DIMSGA@("DIMSG")
|
---|
| 23 | S DIFILE=$G(DIFILE) I DIFILE="" D ERR(202,"","","","FILE") Q
|
---|
| 24 | I $G(^DD(DIFILE,.01,0))="" D Q
|
---|
| 25 | . I '$D(^DD(DIFILE)) D ERR(401,DIFILE) Q
|
---|
| 26 | . I '$D(^DD(DIFILE,.01)) D ERR(406,DIFILE) Q
|
---|
| 27 | . E D ERR(502,DIFILE,"",.01)
|
---|
| 28 | S DIENS=$G(DIENS) I DIENS="" S DIENS=","
|
---|
| 29 | I '$$IEN^DIDU1(DIENS) D Q
|
---|
| 30 | . I '$$IEN^DIDU1(DIENS_",") D ERR(202,"","","","IENS") Q
|
---|
| 31 | . E D ERR(304,"",DIENS)
|
---|
| 32 | S DIROOT=$G(DIFILE("ROOT")) I DIROOT="" D
|
---|
| 33 | . S DIROOT=$$ROOT^DILFD(DIFILE,DIENS,1,1) Q:DIROOT'=""!$G(DIERR)
|
---|
| 34 | . I '$D(^DD(DIFILE)) D ERR(401,DIFILE) Q
|
---|
| 35 | . E D ERR(402,DIFILE,DIENS)
|
---|
| 36 | Q
|
---|
| 37 | ;
|
---|
| 38 | PIECES12(DIFILE,DIROOT) ;
|
---|
| 39 | ;return pieces 1 & 2 of the Header node
|
---|
| 40 | N DIPIECE1,DIPIECE2
|
---|
| 41 | N DINAME S DINAME=$O(^DD(DIFILE,0,"NM","")) I DINAME="" D Q ""
|
---|
| 42 | . D ERR(408,DIFILE)
|
---|
| 43 | N DIPARENT S DIPARENT=$G(^DD(DIFILE,0,"UP"))
|
---|
| 44 | ;
|
---|
| 45 | P1 I DIPARENT'="" D ;subfile
|
---|
| 46 | . S DIPIECE1=""
|
---|
| 47 | . I $P(^DD(DIFILE,.01,0),U,2)["W" D Q
|
---|
| 48 | . . D ERR(407,DIFILE)
|
---|
| 49 | . N DIFIELD S DIFIELD=$O(^DD(DIPARENT,"B",DINAME,""))
|
---|
| 50 | . I DIFIELD="" D Q
|
---|
| 51 | . . D ERR(501,DIFILE,"","",DINAME)
|
---|
| 52 | . N DINODE S DINODE=$G(^DD(DIPARENT,DIFIELD,0)) I DINODE="" D Q
|
---|
| 53 | . . D ERR(502,DIFILE,"",DIFIELD)
|
---|
| 54 | . S DIPIECE2=$P(DINODE,U,2) I DIPIECE2="" D Q
|
---|
| 55 | . . D ERR(502,DIFILE,"",DIFIELD)
|
---|
| 56 | ;
|
---|
| 57 | P2 E D ;root file
|
---|
| 58 | . S DIPIECE1=DINAME
|
---|
| 59 | . S DIPIECE2=DIFILE_$$CODES(DIFILE,DIROOT) I $G(DIERR) Q
|
---|
| 60 | I $G(DIERR) Q ""
|
---|
| 61 | Q DIPIECE1_U_DIPIECE2
|
---|
| 62 | ;
|
---|
| 63 | CODES(DIFILE,DIROOT) ;
|
---|
| 64 | ;collect the file characteristics codes
|
---|
| 65 | N DIFIELD S DIFIELD=$P($G(^DD(DIFILE,.01,0)),U,2) I DIFIELD="" D Q ""
|
---|
| 66 | . I '$D(^DD(DIFILE,.01)) D ERR(501,DIFILE,"","",.01) Q
|
---|
| 67 | . E D ERR(510,DIFILE,"",DIFIELD)
|
---|
| 68 | N DICODES S DICODES=""
|
---|
| 69 | N DITYPE F DITYPE="D","S","P","V" I DIFIELD[DITYPE S DICODES=DITYPE Q
|
---|
| 70 | I $D(^DD(DIFILE,0,"ID")) S DICODES=DICODES_"I"
|
---|
| 71 | I $D(^DD(DIFILE,0,"SCR"))#2 S DICODES=DICODES_"s"
|
---|
| 72 | N DINODE S DINODE=$G(@DIROOT@(0))
|
---|
| 73 | I $P(DINODE,U,2)["A" S DICODES=DICODES_"A"
|
---|
| 74 | I $P(DINODE,U,2)["O" S DICODES=DICODES_"O"
|
---|
| 75 | Q DICODES
|
---|
| 76 | ;
|
---|
| 77 | CLOSE D CALLOUT^DIEFU($G(DIMSGA)):$G(DIMSGA)'="" Q
|
---|
| 78 | ;
|
---|
| 79 | ERR(DIERN,DIFILE,DIIENS,DIFIELD,DI1,DI2,DI3) ;
|
---|
| 80 | ;log an error
|
---|
| 81 | N DIPE
|
---|
| 82 | N DI F DI="FILE","IENS","FIELD",1:1:3 S DIPE(DI)=$G(@("DI"_DI))
|
---|
| 83 | D BLD^DIALOG(DIERN,.DIPE,.DIPE)
|
---|
| 84 | Q
|
---|