Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: MAGSDOFL

MAGSDOFL.m

Go to the documentation of this file.
  1. MAGSDOFL ;WOIFO/SF - DEX & AA Track Offline Images ; 01/31/13
  1. ;;3.0;IMAGING;**18,98,135**;Mar 19, 2002;Build 5238;Jul 17, 2013
  1. ;; Per VHA Directive 2004-038, this routine should not be modified.
  1. ;; +---------------------------------------------------------------+
  1. ;; | Property of the US Government. |
  1. ;; | No permission to copy or redistribute this software is given. |
  1. ;; | Use of unreleased versions of this software requires the user |
  1. ;; | to execute a written test agreement with the VistA Imaging |
  1. ;; | Development Office of the Department of Veterans Affairs, |
  1. ;; | telephone (301) 734-0100. |
  1. ;; | The Food and Drug Administration classifies this software as |
  1. ;; | a medical device. As such, it may not be changed in any way. |
  1. ;; | Modifications to this software may result in an adulterated |
  1. ;; | medical device under 21CFR820, the use of which is considered |
  1. ;; | to be a violation of US Federal Statutes. |
  1. ;; +---------------------------------------------------------------+
  1. ;;
  1. Q
  1. ENTRY ;Interactive entry here
  1. I '$D(DUZ) W !,"Use the MAG JB OFFLINE menu option to run this application" Q
  1. N BOLD,NORMAL,N,R
  1. D SETUP W @IOF
  1. LOOP ; main menu loop
  1. D SETUP
  1. W !!,$P($T(OPTIONS),";",3),!
  1. S N=0 F I=1:1 S X=$P($T(OPTIONS+I),";",3,999) Q:X="" D ; list options
  1. . I $P(X,";")="" Q
  1. . S N=N+1 W !,?2,$J(N,2),?6,$P(X,";")
  1. . Q
  1. ;
  1. AGAIN ;
  1. W !!,?2,"OPTION: " R " ",R:DTIME Q:R=""!(R="^")
  1. I R["?" D HELP2 G AGAIN
  1. I R?1N.N,R>0,R'>N D G LOOP
  1. . S N=0 F I=1:1 D Q:X="" I R=N D @($P(X,";",2)),RETURN Q
  1. . . S X=$P($T(OPTIONS+I),";",3,999) Q:X=""
  1. . . S N=N+1
  1. . Q
  1. W " ??? -- Invalid option. Try again." G AGAIN
  1. ;
  1. SETUP ;
  1. I ^%ZOSF("OS")?1"MSM".E S IOF="#"
  1. E D HOME^%ZIS
  1. S U="^"
  1. S NORMAL=$C(27)_"[0;"_"44m" ; normal blue
  1. S BOLD=$C(27)_"[1;"_"44m" ; bold blue
  1. Q
  1. ;
  1. RETURN ;
  1. D SETUP
  1. R !!,"Push <Enter> to continue...",X:DTIME
  1. Q
  1. OFFLINE(MAGIN) ;Set images offline
  1. N COUNT
  1. ASK1 I MAGIN="" R !!,"Enter file to read offline images from: ",X:DTIME
  1. I X="" Q
  1. I X="^" Q
  1. I X["?" D HELP1 G ASK1
  1. N IOP,MAGFDA,MAGFL
  1. I MAGIN="" S MAGIN=X
  1. S %ZIS="",%ZIS("HFSNAME")=MAGIN,%ZIS("HFSMODE")="R",IOP="HFS"
  1. S X="ERROR^MAGSDOFL",@^%ZOSF("TRAP")
  1. S MAGFL=2006.033
  1. S COUNT=0
  1. U IO(0) W !!,"Here goes nothing...",!
  1. D ^%ZIS
  1. F U IO R LN:5 Q:LN["Files Listed" D
  1. . S COUNT=COUNT+1
  1. . S LN=$$TRIM(LN)
  1. . I LN["Media """ S MAGPLAT=$P(LN,"""",2) U IO(0) W !,MAGPLAT
  1. . I COUNT#50=0 U IO(0) W "."
  1. . S LN=$$FNAME(LN) Q:LN=""
  1. . K MAGIEN S MAGIEN="?+1,"
  1. . S MAGFDA(MAGFL,MAGIEN,.01)=LN
  1. . S MAGFDA(MAGFL,MAGIEN,1)=MAGPLAT
  1. . D UPDATE^DIE("","MAGFDA","MAGIEN","MAGERR")
  1. . Q
  1. W !,"Done."
  1. Q
  1. LINE(OUT,LN,MAGPLAT) ;RPC - MAG UTIL JBOFFLN
  1. ; LN := Process the line from JB platter/media report
  1. ; MAGPLAT := platter name
  1. ; OUT := return the result
  1. ; e.g.: '0, Done'
  1. ; '-1, Error message'
  1. ;
  1. N MAGFL,MAGIEN
  1. S OUT(0)=0,MAGFL=2006.033 ;;JB offline file
  1. I ($G(LN)="")!($G(MAGPLAT)="") S OUT(0)="-1,No text line value or specified platter" Q
  1. S LN=$$TRIM(LN)
  1. S LN=$$FNAME(LN) Q:LN=""
  1. K MAGIEN S MAGIEN="?+1,"
  1. S MAGFDA(MAGFL,MAGIEN,.01)=LN
  1. S MAGFDA(MAGFL,MAGIEN,1)=MAGPLAT
  1. D UPDATE^DIE("","MAGFDA","MAGIEN","MAGERR")
  1. S OUT(0)="0,Done"
  1. Q
  1. FNAME(LN) ;Find img file name
  1. N XX ;OTG 4x or 5x
  1. I LN["\" D Q XX
  1. . F N=1:1 S XX=$P(LN,"\",N) Q:XX="" I XX?.E1"."2.5AN S LN=XX Q
  1. ;OTG 3x
  1. I $P(LN," ",1)'?.E1"."2.5AN Q ""
  1. S LN=$P(LN," ")
  1. Q LN
  1. ONLINE(MAGPLAT) ;Set images back online
  1. ;
  1. ASK I MAGPLAT="" U IO(0) R !!,"Enter the name of the platter being inserted: ",X:DTIME
  1. I X="" Q
  1. I X="^" Q
  1. I X["?" D HELP G ASK
  1. N MAGENT
  1. S MAGPLAT=X
  1. I '$D(^MAGQUEUE(2006.033,"C",MAGPLAT)) W " Platter not on file..." Q
  1. S DIK="^MAGQUEUE(2006.033,"
  1. S MAGENT=""
  1. F S MAGENT=$O(^MAGQUEUE(2006.033,"C",MAGPLAT,MAGENT)) Q:'MAGENT D
  1. . S DA=MAGENT
  1. . D ^DIK
  1. . I $D(Y) U IO(0) W "."
  1. . E U IO(0) W !,"Problem deleting entry# "_MAGENT
  1. U IO(0) W !,"Done."
  1. Q
  1. HELP ;List offline platters
  1. U IO(0) W !,"Do you want to see a list of all offline platters? " R X:60
  1. I "?"[$E(X) W !!,"Answer ""yes"" to see a list of platters currently marked offline"
  1. I "?"[$E(X) W !,"Answer ""no"" to return",! G HELP
  1. I "Yy"'[$E(X) Q
  1. LISTP S MAGPLAT=""
  1. F S MAGPLAT=$O(^MAGQUEUE(2006.033,"C",MAGPLAT)) D Q:MAGPLAT=""
  1. . U IO(0) W !,MAGPLAT
  1. Q
  1. LISTOFL(OUT) ;RPC - MAG UTIL LSTOFLJB ;LIST OFFLINE JB PLATTER(S) ;;*98
  1. N MAGPLAT,CNT S MAGPLAT="",OUT(1)="0"
  1. F CNT=1:1 S MAGPLAT=$O(^MAGQUEUE(2006.033,"C",MAGPLAT)) Q:MAGPLAT="" S OUT(CNT)=MAGPLAT
  1. Q
  1. BKONL(OUT,MAGPLAT) ;RPC - MAG UTIL BKONLJB ;Put images back online (Insert Jukebox Platter)
  1. N DIK,CNT,DA,Y
  1. S OUT(1)="0"
  1. I $G(MAGPLAT)="" S OUT(1)="-1,No JB Platter specified" Q
  1. I $O(^MAGQUEUE(2006.033,"C",MAGPLAT,0))="" S OUT(1)="-1,Platter not on file 2006.033 -"_MAGPLAT Q
  1. S DIK="^MAGQUEUE(2006.033,",MAGENT=""
  1. F CNT=0:1 S MAGENT=$O(^MAGQUEUE(2006.033,"C",MAGPLAT,MAGENT)) Q:'MAGENT D
  1. . S DA=MAGENT D ^DIK
  1. I $D(Y) S OUT(1)="0,Done "_CNT
  1. Q
  1. GROUP ;Remove platters in group
  1. N COUNT,MAGPLAT,PLAT,X,TOTAL,MAGIEN,CNT,IOP,MAGFDA,MAGFL,POP
  1. ASK3 R !!,"Enter 'DIR' file to read offline platter TXT from: ",X:$G(DTIME)
  1. I X=""!(X="^") Q
  1. I X["?" D HELP3 G ASK3
  1. S MAGIN=X ;DIR filename
  1. S %ZIS="",%ZIS("HFSNAME")=MAGIN,%ZIS("HFSMODE")="R",IOP="HFS"
  1. S X="ERROR^MAGSDOFL",@^%ZOSF("TRAP")
  1. D ^%ZIS
  1. F U IO R MAGPLAT:30 Q:($G(MAGPLAT)="")!($G(MAGPLAT)["~end") I $L(MAGPLAT) S MAGPLAT(MAGPLAT)=0 U IO(0) W "|"
  1. D ^%ZISC
  1. S MAGFL=2006.033
  1. U IO(0) W !!,"Here goes nothing...",!,"50 per '.'",!
  1. S PLAT="" F CNT=0:1 S PLAT=$O(MAGPLAT(PLAT)) Q:PLAT="" U IO(0) W !,PLAT D
  1. . S COUNT=0,%ZIS="",%ZIS("HFSNAME")=PLAT,%ZIS("HFSMODE")="R",IOP="HFS"
  1. . S X="ERROR^MAGSDOFL",@^%ZOSF("TRAP")
  1. . D ^%ZIS I POP W !,"Sorry, ",PLAT," not found, try later.",! Q
  1. . F U IO R LN:5 D
  1. . . S COUNT=COUNT+1,TOTAL=$G(TOTAL)+1
  1. . . S LN=$$TRIM(LN)
  1. . . I LN["Media """ S MAGPLAT=$P(LN,"""",2) U IO(0) W !,MAGPLAT
  1. . . I COUNT#50=0 U IO(0) W "."
  1. . . S LN=$$FNAME(LN) Q:LN=""
  1. . . K MAGIEN S MAGIEN="?+1,"
  1. . . S MAGFDA(MAGFL,MAGIEN,.01)=LN
  1. . . S MAGFDA(MAGFL,MAGIEN,1)=MAGPLAT
  1. . . D UPDATE^DIE("","MAGFDA","MAGIEN","MAGERR")
  1. . . Q
  1. . D ^%ZISC ;cls media report
  1. . Q
  1. U IO(0) W !,"Done (",CNT," platter(s), total files ",TOTAL," were marked offline.)",!
  1. Q
  1. HELP1 ;Help for offline
  1. W !,"Enter the name of the file created by the jukebox media file report"
  1. Q
  1. HELP2 ;Help for OPTION prompt
  1. W !,"Select option 1 if you are marking DEX images offline"
  1. W !,"Select option 2 if you are marking images online"
  1. W !,"Select option 3 if you want the listing of off-line platter(s)"
  1. W !,"Select option 4 if you are taking the group of platters off-line"
  1. W !,"Select option 5 if you are marking Archive Appliance (AA) images offline"
  1. W !,"Type ""^"" to quit"
  1. Q
  1. HELP3 ;Help for GROUP platters TXT
  1. W !,"Enter the full file name that is grouped by the jukebox media TXT file report",!
  1. W !,"For example: you do 'DIR JB*.TXT /B /S > [USER]DIR.TXT' ,append '~end' at end of file",!
  1. W !,"Then use [USER]DIR.TXT as source file",!
  1. Q
  1. ;
  1. TRIM(X) ;
  1. N I,J
  1. F I=1:1:$L(X) Q:$E(X,I)'=" "
  1. F J=$L(X):-1:I Q:$E(X,J)'=" "
  1. Q $E(X,I,J)
  1. ERROR ;Trap Errors Here
  1. D ^%ZISC
  1. Q
  1. OPTIONS ; Offline Image Menu
  1. ;;Take DEX images offline (Remove Jukebox Platter);OFFLINE("")
  1. ;;Put images back online (Insert Jukebox Platter);ONLINE("")
  1. ;;Take images offline (Group platters);GROUP
  1. ;;List current offline Jukebox Platter;LISTP
  1. ;;Take 'AA' Archive Appliance images offline (Remove Jukebox Platter);EN^MAGSDOFF