- DIARX ;SFISC/DCM-ARCHIVING FUNCTION, BUILD INDEX ;8/12/98 10:25
- ;;22.0;VA FileMan;;Mar 30, 1999
- ;Per VHA Directive 10-93-142, this routine should not be modified.
- IX K ^UTILITY("DIQ1",$J) N DIC
- S DIARREC=^DIAR(1.11,DIARC,0),(DIARIXF,DIC)=$P(DIARREC,U,2),DIARIXST=$P(DIARREC,U,3),(DA,DIARDR,DIARIX,DIARDA)="",DR=".01",DIARLINE=.01_":"_$P(^DD(DIARIXF,.01,0),U)
- N DIXIEN S DIXIEN=$O(^DD("KEY","AP",DIARIXF,"P",0))
- I DIXIEN F S DIARDR=$O(^DD("KEY",DIXIEN,2,"BB",DIARDR)) Q:'DIARDR I DIARDR'=.01,$O(^(DIARDR,0))=DIARIXF,$D(^DD(DIARIXF,DIARDR,0)) D IDKEY
- F S DIARDR=$O(^DD(DIARIXF,0,"ID",DIARDR)) Q:DIARDR'>0 I DIARLINE'[("^"_DIARDR_":"),$D(^DD(DIARIXF,DIARDR,0)) D IDKEY
- S DIARBLNE=DIARLINE
- S DIARLINE="$INDEX"_U_DIARIXF_U_$P(^DIC(DIARIXF,0),U)_U_DIARLINE U IO W DIARLINE,!
- F S DA=$O(^DIBT(DIARIXST,1,DA)) Q:DA'>0 S DIQ(0)="E" D EN^DIQ1
- F S DIARDA=$O(^DIBT(DIARIXST,1,DIARDA)) Q:DIARDA'>0 D IX1
- K DIARREC,DIARIXF,DIARIXST,DA,DIARDR,DIARIX,DIARDA,DR,DIARLINE
- Q
- ;
- IDKEY ; Save KEY or Identifier data
- S DIARLINE=DIARLINE_U_DIARDR_":"_$P(^DD(DIARIXF,DIARDR,0),U)
- S DR=DR_";"_DIARDR Q
- Q
- ;
- IX1 S DIARLINE="" F S DIARIX=$O(^UTILITY("DIQ1",$J,DIARIXF,DIARDA,DIARIX)) Q:DIARIX'>0 S DIARLINE=DIARLINE_^(DIARIX,"E")_U
- W DIARLINE,!
- Q
- ;
- OUT I $D(DIARQUED) G QP
- S IOP=DIARPDEV D ^%ZIS G QP:POP
- DQ ;print archive activity report
- S DIARPG=0,DIARLINE="",DIARX=^DIAR(1.11,DIARC,0),DIARFI=$P(DIARX,U,2) U IO S Y=DT X ^DD("DD") S DIARXY=Y
- D HDR,BODY
- Q
- HDR W:$Y @IOF W !,"ARCHIVE ACTIVITY REPORT",?IOM-24,DIARXY,?IOM-10,"PAGE: ",DIARPG+1
- S DIARPG=DIARPG+1,$P(DIARLINE,"-",IOM)="" W !,DIARLINE Q
- ;
- BODY W !!,"ARCHIVAL ACTIVITY: ",DIARC,!,"ARCHIVE DEVICE LABEL INFORMATION: ",$P(^DIAR(1.11,DIARC,0),U,19)
- W !,"PRIMARY ARCHIVED FILE: ",$P($G(^DIC(DIARFI,0)),U)_" (#"_DIARFI_")"
- W !,"ARCHIVER: ",$P($G(^VA(200,$P(DIARX,U,6),0)),U)
- W !,"SEARCH CRITERIA: " S DIARU=$P(DIARX,U,3),DIARXZ=0
- F S DIARXZ=$O(^DIBT(DIARU,"O",DIARXZ)) Q:DIARXZ'>0 Q:'$D(^(DIARXZ,0)) W !,?5,^(0)
- W !!,"INDEX INFORMATION: ",! S (DIARTAB,DIARFLD)=0 F DIARXZ=1:1 S DIARFLD=$P($P(DIARBLNE,U,DIARXZ),":",2) Q:DIARFLD="" W DIARFLD S DIARTAB=DIARTAB+25 W ?DIARTAB
- F DIARXZ=0:0 S DIARXZ=$O(^UTILITY("DIQ1",$J,DIARFI,DIARXZ)) Q:DIARXZ'>0 D HDRC Q:$D(DTOUT)!$D(DIRUT) W ! S DIARTAB=0 F S DIARFLD=$O(^UTILITY("DIQ1",$J,DIARFI,DIARXZ,DIARFLD)) Q:DIARFLD'>0 W ^(DIARFLD,"E") S DIARTAB=DIARTAB+25 W ?DIARTAB
- W !!,"*** PLEASE KEEP THIS FOR FUTURE REFERENCE ***"
- I $E(IOST)'="C",$Y W @IOF
- D ^%ZISC
- Q
- ;
- HDRC Q:($Y+1<IOSL)
- I "C"[$E(IOST) K DIR S DIR(0)="E" D ^DIR Q:$D(DTOUT)!($D(DIRUT))
- D HDR
- Q
- ;
- QP S ZTRTN="DQ^DIARX",ZTSAVE("DIARC")="",ZTDESC="ARCHIVE ACTIVITY REPORT",ZTSAVE("^UTILITY(""DIQ1"",$J,")="",ZTSAVE("DIARBLNE")="",ZTIO=DIARPDEV,ZTDTH=$H
- D ^%ZTLOAD,HOME^%ZIS
- DIARX ;SFISC/DCM-ARCHIVING FUNCTION, BUILD INDEX ;8/12/98 10:25
- +1 ;;22.0;VA FileMan;;Mar 30, 1999
- +2 ;Per VHA Directive 10-93-142, this routine should not be modified.
- IX KILL ^UTILITY("DIQ1",$JOB)
- NEW DIC
- +1 SET DIARREC=^DIAR(1.11,DIARC,0)
- SET (DIARIXF,DIC)=$PIECE(DIARREC,U,2)
- SET DIARIXST=$PIECE(DIARREC,U,3)
- SET (DA,DIARDR,DIARIX,DIARDA)=""
- SET DR=".01"
- SET DIARLINE=.01_":"_$PIECE(^DD(DIARIXF,.01,0),U)
- +2 NEW DIXIEN
- SET DIXIEN=$ORDER(^DD("KEY","AP",DIARIXF,"P",0))
- +3 IF DIXIEN
- FOR
- SET DIARDR=$ORDER(^DD("KEY",DIXIEN,2,"BB",DIARDR))
- IF 'DIARDR
- QUIT
- IF DIARDR'=.01
- IF $ORDER(^(DIARDR,0))=DIARIXF
- IF $DATA(^DD(DIARIXF,DIARDR,0))
- DO IDKEY
- +4 FOR
- SET DIARDR=$ORDER(^DD(DIARIXF,0,"ID",DIARDR))
- IF DIARDR'>0
- QUIT
- IF DIARLINE'[("^"_DIARDR_":")
- IF $DATA(^DD(DIARIXF,DIARDR,0))
- DO IDKEY
- +5 SET DIARBLNE=DIARLINE
- +6 SET DIARLINE="$INDEX"_U_DIARIXF_U_$PIECE(^DIC(DIARIXF,0),U)_U_DIARLINE
- USE IO
- WRITE DIARLINE,!
- +7 FOR
- SET DA=$ORDER(^DIBT(DIARIXST,1,DA))
- IF DA'>0
- QUIT
- SET DIQ(0)="E"
- DO EN^DIQ1
- +8 FOR
- SET DIARDA=$ORDER(^DIBT(DIARIXST,1,DIARDA))
- IF DIARDA'>0
- QUIT
- DO IX1
- +9 KILL DIARREC,DIARIXF,DIARIXST,DA,DIARDR,DIARIX,DIARDA,DR,DIARLINE
- +10 QUIT
- +11 ;
- IDKEY ; Save KEY or Identifier data
- +1 SET DIARLINE=DIARLINE_U_DIARDR_":"_$PIECE(^DD(DIARIXF,DIARDR,0),U)
- +2 SET DR=DR_";"_DIARDR
- QUIT
- +3 QUIT
- +4 ;
- IX1 SET DIARLINE=""
- FOR
- SET DIARIX=$ORDER(^UTILITY("DIQ1",$JOB,DIARIXF,DIARDA,DIARIX))
- IF DIARIX'>0
- QUIT
- SET DIARLINE=DIARLINE_^(DIARIX,"E")_U
- +1 WRITE DIARLINE,!
- +2 QUIT
- +3 ;
- OUT IF $DATA(DIARQUED)
- GOTO QP
- +1 SET IOP=DIARPDEV
- DO ^%ZIS
- IF POP
- GOTO QP
- DQ ;print archive activity report
- +1 SET DIARPG=0
- SET DIARLINE=""
- SET DIARX=^DIAR(1.11,DIARC,0)
- SET DIARFI=$PIECE(DIARX,U,2)
- USE IO
- SET Y=DT
- XECUTE ^DD("DD")
- SET DIARXY=Y
- +2 DO HDR
- DO BODY
- +3 QUIT
- HDR IF $Y
- WRITE @IOF
- WRITE !,"ARCHIVE ACTIVITY REPORT",?IOM-24,DIARXY,?IOM-10,"PAGE: ",DIARPG+1
- +1 SET DIARPG=DIARPG+1
- SET $PIECE(DIARLINE,"-",IOM)=""
- WRITE !,DIARLINE
- QUIT
- +2 ;
- BODY WRITE !!,"ARCHIVAL ACTIVITY: ",DIARC,!,"ARCHIVE DEVICE LABEL INFORMATION: ",$PIECE(^DIAR(1.11,DIARC,0),U,19)
- +1 WRITE !,"PRIMARY ARCHIVED FILE: ",$PIECE($GET(^DIC(DIARFI,0)),U)_" (#"_DIARFI_")"
- +2 WRITE !,"ARCHIVER: ",$PIECE($GET(^VA(200,$PIECE(DIARX,U,6),0)),U)
- +3 WRITE !,"SEARCH CRITERIA: "
- SET DIARU=$PIECE(DIARX,U,3)
- SET DIARXZ=0
- +4 FOR
- SET DIARXZ=$ORDER(^DIBT(DIARU,"O",DIARXZ))
- IF DIARXZ'>0
- QUIT
- IF '$DATA(^(DIARXZ,0))
- QUIT
- WRITE !,?5,^(0)
- +5 WRITE !!,"INDEX INFORMATION: ",!
- SET (DIARTAB,DIARFLD)=0
- FOR DIARXZ=1:1
- SET DIARFLD=$PIECE($PIECE(DIARBLNE,U,DIARXZ),":",2)
- IF DIARFLD=""
- QUIT
- WRITE DIARFLD
- SET DIARTAB=DIARTAB+25
- WRITE ?DIARTAB
- +6 FOR DIARXZ=0:0
- SET DIARXZ=$ORDER(^UTILITY("DIQ1",$JOB,DIARFI,DIARXZ))
- IF DIARXZ'>0
- QUIT
- DO HDRC
- IF $DATA(DTOUT)!$DATA(DIRUT)
- QUIT
- WRITE !
- SET DIARTAB=0
- FOR
- SET DIARFLD=$ORDER(^UTILITY("DIQ1",$JOB,DIARFI,DIARXZ,DIARFLD))
- IF DIARFLD'>0
- QUIT
- WRITE ^(DIARFLD,"E")
- SET DIARTAB=DIARTAB+25
- WRITE ?DIARTAB
- +7 WRITE !!,"*** PLEASE KEEP THIS FOR FUTURE REFERENCE ***"
- +8 IF $EXTRACT(IOST)'="C"
- IF $Y
- WRITE @IOF
- +9 DO ^%ZISC
- +10 QUIT
- +11 ;
- HDRC IF ($Y+1<IOSL)
- QUIT
- +1 IF "C"[$EXTRACT(IOST)
- KILL DIR
- SET DIR(0)="E"
- DO ^DIR
- IF $DATA(DTOUT)!($DATA(DIRUT))
- QUIT
- +2 DO HDR
- +3 QUIT
- +4 ;
- QP SET ZTRTN="DQ^DIARX"
- SET ZTSAVE("DIARC")=""
- SET ZTDESC="ARCHIVE ACTIVITY REPORT"
- SET ZTSAVE("^UTILITY(""DIQ1"",$J,")=""
- SET ZTSAVE("DIARBLNE")=""
- SET ZTIO=DIARPDEV
- SET ZTDTH=$HOROLOG
- +1 DO ^%ZTLOAD
- DO HOME^%ZIS