1 | MAGQBJH ;WOIFO/PMK/RMP - Copy an image from the Jukebox to the Hard Disk [ 06/20/2001 08:57 ]
|
---|
2 | ;;3.0;IMAGING;**8,20**;Apr 12, 2006
|
---|
3 | ;; +---------------------------------------------------------------+
|
---|
4 | ;; | Property of the US Government. |
|
---|
5 | ;; | No permission to copy or redistribute this software is given. |
|
---|
6 | ;; | Use of unreleased versions of this software requires the user |
|
---|
7 | ;; | to execute a written test agreement with the VistA Imaging |
|
---|
8 | ;; | Development Office of the Department of Veterans Affairs, |
|
---|
9 | ;; | telephone (301) 734-0100. |
|
---|
10 | ;; | |
|
---|
11 | ;; | The Food and Drug Administration classifies this software as |
|
---|
12 | ;; | a medical device. As such, it may not be changed in any way. |
|
---|
13 | ;; | Modifications to this software may result in an adulterated |
|
---|
14 | ;; | medical device under 21CFR820, the use of which is considered |
|
---|
15 | ;; | to be a violation of US Federal Statutes. |
|
---|
16 | ;; +---------------------------------------------------------------+
|
---|
17 | ;;
|
---|
18 | ; RESULT=STATUS^MAGIFN^FROMPATH^TOPATH^FILETYPE^QPTR^VWP^QSN
|
---|
19 | ; VWP = VISTA WRITE-LOCATION POINTER, QSN=QUEUE SEQUENCE NUMBER
|
---|
20 | ENTRY(RESULT,QPTR) ; entry point from ^MAGBMAIN
|
---|
21 | N NODE,X,MAGIFN,FILETYPE,MAGXX,STATUS,TODAY,MAGPIECE,MAGREF
|
---|
22 | N FROMPATH,TOPATH,MAGFILE,MAGFILE2,QSN,MSG,PLACE
|
---|
23 | S U="^",NODE=^MAGQUEUE(2006.03,QPTR,0),QSN=+$P(NODE,U,9)
|
---|
24 | S PLACE=$P(NODE,U,12)
|
---|
25 | I "^JBTOHD^PREFET^"'[(U_$P(NODE,U)_U) D Q
|
---|
26 | . S RESULT="-4"_U_QPTR_U_"Not a Jukebox to HardDisk Process"
|
---|
27 | S MAGIFN=$P(NODE,U,7),FILETYPE=$P(NODE,U,8)
|
---|
28 | D NOW^%DTC S TODAY=X
|
---|
29 | I "^FULL^ABSTRACT^BIG^"'[("^"_FILETYPE_"^") D Q
|
---|
30 | . S RESULT="-4"_U_QPTR_U_FILETYPE_" Is not a Jukebox to HardDisk Process"
|
---|
31 | I $P(^MAG(2005,MAGIFN,0),U,2)="" D Q
|
---|
32 | . I +$P($G(^MAG(2005,MAGIFN,1,0)),U,4)>0 D
|
---|
33 | . . S MSG="Image group parent"
|
---|
34 | . E S MSG="Does not have an image file specified"
|
---|
35 | . S RESULT="-5"_U_QPTR_U_MSG
|
---|
36 | . K ^MAGQUEUE(2006.03,"F",PLACE,MAGIFN,FILETYPE,QPTR)
|
---|
37 | D @(FILETYPE_"(PLACE)") ; do either FULL or ABSTRACT
|
---|
38 | K ^MAGQUEUE(2006.03,"F",PLACE,MAGIFN,FILETYPE,QPTR)
|
---|
39 | K MAGFILE1
|
---|
40 | S RESULT=STATUS
|
---|
41 | S $P(RESULT,U,8)=QSN
|
---|
42 | Q ;RESULT ;!!! REMOVE RESULT ON DISTRIBUTION
|
---|
43 | ;
|
---|
44 | FULL(PLACE) ; copy a full-size image
|
---|
45 | S MAGXX=MAGIFN D VSTNOCP^MAGFILEB
|
---|
46 | I (($P(MAGFILE1,U)="-1")!('$P(^MAG(2005,MAGIFN,0),"^",5))) D Q
|
---|
47 | . S STATUS="-3"_U_QPTR_U_"Image IEN:"_MAGIFN_"has no file on-line"
|
---|
48 | S MAGREF=$P(^MAG(2005,MAGIFN,0),"^",3)
|
---|
49 | I MAGREF?1N.N D WLSET(.STATUS,MAGIFN,MAGREF,"FULL",PLACE) Q
|
---|
50 | S STATUS=$$COPY(PLACE) I +STATUS>0 D ;
|
---|
51 | . S $P(^MAG(2005,MAGIFN,0),"^",9)=TODAY ; update the last access date
|
---|
52 | Q
|
---|
53 | ;
|
---|
54 | ABSTRACT(PLACE) ; copy an image abstract
|
---|
55 | S MAGXX=MAGIFN D ABSNOCP^MAGFILEB
|
---|
56 | I (($P(MAGFILE1,U)="-1")!('$P(^MAG(2005,MAGIFN,0),"^",5))) D Q
|
---|
57 | . S STATUS="-3"_U_QPTR_U_"Image IEN:"_MAGIFN_"has no file on-line"
|
---|
58 | S MAGREF=$P(^MAG(2005,MAGIFN,0),"^",4)
|
---|
59 | I MAGREF?1N.N D WLSET(.STATUS,MAGIFN,MAGREF,"ABSTRACT",PLACE) Q
|
---|
60 | S STATUS=$$COPY(PLACE) I +STATUS>0 D ;
|
---|
61 | . S $P(^MAG(2005,MAGIFN,0),"^",9)=TODAY ; update the last access date
|
---|
62 | Q
|
---|
63 | ;
|
---|
64 | BIG(PLACE) ; copy a big image
|
---|
65 | S MAGXX=MAGIFN D BIGNOCP^MAGFILEB
|
---|
66 | I (($P(MAGFILE1,U)="-1")!('$P($G(^MAG(2005,MAGIFN,"FBIG")),U,2))) D Q
|
---|
67 | . S STATUS="-3"_U_QPTR_U_"Image IEN:"_MAGIFN_"has no file on-line"
|
---|
68 | S MAGREF=$P(^MAG(2005,MAGIFN,"FBIG"),U)
|
---|
69 | I MAGREF?1N.N D WLSET(.STATUS,MAGIFN,MAGREF,"BIG",PLACE) Q
|
---|
70 | S STATUS=$$COPY(PLACE) I +STATUS>0 D ;
|
---|
71 | . S $P(^MAG(2005,MAGIFN,0),"^",9)=TODAY ; update the last access date
|
---|
72 | Q
|
---|
73 | ;
|
---|
74 | WLSET(STATUS,MAGIFN,MAGREF,TYPE,PLACE) ;Write Location set already
|
---|
75 | N JBREF,JBPATH,CWL,SOURCE,DEST,ALTDEST,ONLINE,PATH
|
---|
76 | S $P(^MAG(2005,MAGIFN,0),U,9)=TODAY ; update the last access date
|
---|
77 | ; output the warning message
|
---|
78 | S JBREF=$S(TYPE="BIG":$P($G(^MAG(2005,MAGIFN,"FBIG")),U,2),1:$P(^MAG(2005,MAGIFN,0),U,5))
|
---|
79 | S JBPATH=$P(^MAG(2005.2,JBREF,0),U,2)
|
---|
80 | S JBPATH=JBPATH_$$DIRHASH^MAGFILEB(MAGFILE1,JBREF)
|
---|
81 | S CWL=$$CWL^MAGBAPI(PLACE)
|
---|
82 | S SOURCE=JBPATH_MAGFILE1
|
---|
83 | S ONLINE=$P(^MAG(2005.2,MAGREF,0),U,6)
|
---|
84 | ;If the current magnetic write location is on line the first
|
---|
85 | ;destination path will be to that path and the 2nd path is the
|
---|
86 | ;current write location
|
---|
87 | S PATH=$P(^MAG(2005.2,$S(ONLINE:MAGREF,1:CWL),0),U,2)
|
---|
88 | S DEST=PATH_$$DIRHASH^MAGFILEB(MAGFILE1,$S(ONLINE:MAGREF,1:CWL))_MAGFILE1
|
---|
89 | S:ONLINE ALTDEST=$P(^MAG(2005.2,CWL,0),U,2)_$$DIRHASH^MAGFILEB(MAGFILE1,CWL)_MAGFILE1
|
---|
90 | S STATUS="2^"_MAGIFN_U_SOURCE_U_DEST
|
---|
91 | S STATUS=STATUS_U_FILETYPE_U_QPTR_U_$S(ONLINE:MAGREF,1:CWL)_U_QSN
|
---|
92 | S:ONLINE STATUS=STATUS_U_ALTDEST_U_CWL
|
---|
93 | Q
|
---|
94 | ;
|
---|
95 | COPY(PLACE) ; copy an image file from the jukebox to the hard drive
|
---|
96 | N MAGREF,MAGDRIVE
|
---|
97 | D GETDRIVE(.MAGDRIVE,.MAGREF,PLACE) ;^MAGFILE ; find space to put file
|
---|
98 | I MAGREF'?1N.N Q "-4^"_QPTR_"^Current Write Location is not SET"
|
---|
99 | I +$P($G(^MAG(2005.2,MAGREF,0)),"^",6)'>0 Q "-4^"_QPTR_"^Current Write Location is OFFLINE"
|
---|
100 | S TOPATH=MAGDRIVE_$$DIRHASH^MAGFILEB(MAGFILE1,MAGREF)_MAGFILE1
|
---|
101 | S FROMPATH=MAGFILE2
|
---|
102 | Q "1"_U_MAGIFN_U_FROMPATH_U_TOPATH_U_FILETYPE_U_QPTR_U_MAGREF
|
---|
103 | GETDRIVE(DRIVE,MAGREF,PLACE) ; Get the current drive for writing an image
|
---|
104 | S MAGREF=$$CWL^MAGBAPI(PLACE)
|
---|
105 | S DRIVE=$S('MAGREF:"",1:$P(^MAG(2005.2,MAGREF,0),U,2))
|
---|
106 | Q
|
---|
107 | ;
|
---|