Changeset 623 for WorldVistAEHR/trunk/r/IMAGING-MAG-ZMAG/MAGJUTL2.m
- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/IMAGING-MAG-ZMAG/MAGJUTL2.m
r613 r623 1 MAGJUTL2 ;WIRMFO/JHC VistRad subroutines for RPC calls[ 2/21/97 10:53 AM ] ; 22 Mar 2001 2:24 PM 2 ;;3.0;IMAGING;**18,65,76**;Jun 22, 2007;Build 19 3 ;;Per VHA Directive 2004-038, this routine should not be modified. 4 ;; +---------------------------------------------------------------+ 5 ;; | Property of the US Government. | 6 ;; | No permission to copy or redistribute this software is given. | 7 ;; | Use of unreleased versions of this software requires the user | 8 ;; | to execute a written test agreement with the VistA Imaging | 9 ;; | Development Office of the Department of Veterans Affairs, | 10 ;; | telephone (301) 734-0100. | 11 ;; | | 12 ;; | The Food and Drug Administration classifies this software as | 13 ;; | a medical device. As such, it may not be changed in any way. | 14 ;; | Modifications to this software may result in an adulterated | 15 ;; | medical device under 21CFR820, the use of which is considered | 16 ;; | to be a violation of US Federal Statutes. | 17 ;; +---------------------------------------------------------------+ 18 ;; 19 Q 20 IMGINFO(RARPT,RET) ; Fetch info from Image File for input RARPT: 21 ; Input: RARPT: Rad Report pointer 22 ; RET: see below 23 ; RET contents delimited by ^: 24 ; CT = # of images for case 25 ; ONL = Image Storage status (Y=On Magnetic disk, N=Jukebox 26 ; "n/a" for not available, e.g., film only) 27 ; note -- if last image in group is Online, considers ALL online 28 ; MAGDT = Date/Time of Image Capture 29 ; REMOTE = 1/0 to Indicate images were remotely cached 30 ; MODALITY= Modality abbrev 31 ; PLACE = Image storage PLace (ptr to 2006.1 entry) 32 ; KEY = 1/0 ind. Key Images exist for this exam 33 ; 34 N IRPT,MAGIEN,MAGIEN2,ONLCHK,NETLOC,STIEN 35 N CT,ONL,MAGDT,REMOTE,MODALITY,PLACE,REMCHK,KEY 36 S CT="",ONL="",MAGDT="",RET="",REMOTE="",MODALITY="",PLACE="",KEY=0 ; init return vars 37 G IMGINFQ:'RARPT G IMGINFQ:'$D(^RARPT(RARPT,2005,0)) 38 I 'MAGJOB("P32") D 39 . S STIEN=$$STUDYID^MAGJUPD2("",RARPT,1) 40 . I STIEN S T=$O(^MAG(2005,STIEN,205,0)) I T S KEY=1 41 S IRPT=0 F S IRPT=$O(^RARPT(RARPT,2005,IRPT)) Q:'IRPT S MAGIEN=$P(^(IRPT,0),U) D 42 . Q:'$D(^MAG(2005,MAGIEN,0)) 43 . I MAGDT="" S MAGDT=$P($G(^MAG(2005,MAGIEN,100)),U,6) S:MAGDT="" MAGDT=$P($G(^(2)),U) 44 . I $O(^MAG(2005,MAGIEN,1,0)) S CT=CT+$P(^(0),U,4),Y=$P(^(0),U,3),MAGIEN2=$P($G(^(Y,0)),U) S:(MAGIEN2]"") ONLCHK=$$ONLCHK(MAGIEN2),REMCHK=$$REMOTE(MAGIEN2) ; last image in group 45 . E S CT=CT+1,ONLCHK=$$ONLCHK(MAGIEN),REMCHK=$$REMOTE(MAGIEN) 46 . S ONL=$S(ONL="":+ONLCHK,+ONL:+ONLCHK,1:0) ; NOT Online if ANY img is 0 47 . S REMOTE=$S(REMOTE="":REMCHK,+REMOTE:REMCHK,1:0) ; NOT Remote if ANY img is 0 48 . S X=$P(ONLCHK,U,3) 49 . I MODALITY="" S MODALITY=X 50 . E I MODALITY'[X S MODALITY=MODALITY_","_X 51 . I PLACE="" S PLACE=$P(ONLCHK,U,4) 52 IMGINFQ S ONL=$S(+ONL:"Y",ONL="":"n/a",1:"N") 53 S RET=CT_U_ONL_U_MAGDT_U_REMOTE_U_MODALITY_U_PLACE_U_KEY 54 Q 55 ; 56 ONLCHK(MAGIEN,USETGA) ; 57 ; Input: MAGIEN: Image pointer 58 ; USETGA: 1/0 -- if 1, forces return of TGA (not .big) file 59 ;Return: 60 ; - T/F for Full-Res image on Mag. Disk that is Online 61 ; - File type (BIG/FULL) 62 ; - Modality 63 ; - Place 64 ; - DFN 65 ; - File Name IFF this image is stored Off-Line (else null) 66 ; - USETGA as calculated in the logic below 67 ; - PROCDT = Img Processing DtTime 68 ; - ACQSITE = Acquisition site code 69 ; USETGA is set to False (0) if a low-resolution image (TGA) is 70 ; requested, but none exists; calling routine would call by ref. 71 ; 72 N BIG,X,NOD,MAG0,MODALITY,RET,PLACE,DFN,FILNAM,MAG2,PROCDT,ACQSITE,MAG100 73 S USETGA=+$G(USETGA) ; Defaults to Full-Resolution image if not defined 74 S RET="",MODALITY="",PLACE="",ACQSITE="" 75 S MAG0=^MAG(2005,MAGIEN,0),BIG=$D(^("FBIG")),NOD=$S(BIG:^("FBIG"),1:MAG0) 76 S MAG2=^MAG(2005,MAGIEN,2),PROCDT=$P(MAG2,U) 77 S MAG100=$G(^MAG(2005,MAGIEN,100)),ACQSITE=$P(MAG100,U,3) 78 I USETGA D 79 . I 'BIG S USETGA=0 ; reply no low-res image available 80 . I BIG S NOD=MAG0,BIG=0 ; enable correct logic inside this subroutine 81 S MODALITY=$P(MAG0,U,8),DFN=$P(MAG0,U,7) 82 I BIG S X=+$P(NOD,U) ; $p 1 is Magnetic Disk/Volume (.big) <*> DCM--add to end: S:'X X=+$P(NOD,U,3) 83 E S X=+$P(NOD,U,3) ; $p 3 is Magnetic Disk/Volume (.tga) 84 I X D 85 . I '$D(NETLOC(X)) S NETLOC(X)=+$P(^MAG(2005.2,X,0),U,6)_U_$P(^(0),U,10) 86 . S RET=+NETLOC(X),PLACE=$P(NETLOC(X),U,2) ; NETLOC is global to this subrtn 87 . S FILNAM="" 88 E D 89 . S RET=0,FILNAM=$P(MAG0,U,2) 90 . S T=$S(BIG:$P(NOD,U,2),1:$P(NOD,U,5)) 91 . I T S PLACE=$P(^MAG(2005.2,T,0),U,10) ; <*>DCM--add anything? 92 S RET=RET_U_$S(BIG:"BIG",1:"FULL")_U_MODALITY_U_PLACE_U_DFN_U_FILNAM_U_USETGA_U_PROCDT_U_ACQSITE 93 Q RET 94 ; 95 REMOTE(MAGIEN) ;Return list of remote Cache Locations 96 ; else, return "" if none 97 N RET,LOC 98 S RET="" 99 I $D(^MAG(2005,MAGIEN,4,"LOC")) S LOC=0 D 100 . F S LOC=$O(^MAG(2005,MAGIEN,4,"LOC",LOC)) Q:'LOC S RET=RET_$S(RET="":"",1:",")_LOC 101 Q RET 102 ; 103 IMGINF2(RARPT,RET,USETGA) ; Fetch info from Image File for input RARPT: 104 ; Input: RARPT: Rad Report pointer 105 ; RET: see below 106 ; USETGA: 1/0 -- if 1, forces return of TGA (not .big) file 107 ; RET holds array of return values: 108 ; RET = # Images stored for the case 109 ; RET(1:n) = 1/0 ^ FULL/BIG ^ Mod ^ ien ^ Series ^ Routed-to Locations ^ PLACE ^ DFN ^ FileName (if OffLine) ^ PS_Indicator 110 ; (1=Image is on Magnetic Disk) 111 ; * This subroutine may be called by other VistARad routines 112 ; 113 N BIG,IMG,MAGIEN,MAGIEN2,MAGPTR,MAGINDX,MAGREF,NETLOC,SERIES,SERCT,SERPREV 114 K RET S RET=0,SERCT=0,SERPREV="" 115 S USETGA=+$G(USETGA) ; Defaults to Full-Resolution image if not defined 116 G IMGINF2Q:'RARPT S IMG=0 117 S MAGINDX="ADCM" ; maybe others will exist in the future 118 ; *P18--this index is defunct for P18 & beyond 119 ; however, keep for bkwds-compat P18 to P32; remove later 120 F S IMG=$O(^RARPT(RARPT,2005,IMG)) Q:'IMG S MAGIEN=$P(^(IMG,0),U) D 121 . S MAGREF=$NA(^MAG(2005,MAGIEN,1,MAGINDX)) 122 . I 'MAGJOB("P32")!'$D(@MAGREF) D ; use group multiple structure 123 .. Q:'$D(^MAG(2005,MAGIEN,0)) S MAGPTR=0 124 .. I '$O(^MAG(2005,MAGIEN,1,MAGPTR)) D Q 125 ... S T=$$ONLCHK(MAGIEN,USETGA) 126 ... S RET=RET+1,RET(RET)=$P(T,U,1,3)_U_MAGIEN_U_U_$$REMOTE(MAGIEN)_U_$P(T,U,4,7)_U_$$PSIND(MAGIEN)_U_$P(T,U,8)_U_$P(T,U,9) 127 .. E F S MAGPTR=$O(^MAG(2005,MAGIEN,1,MAGPTR)) Q:'MAGPTR S MAGIEN2=$P(^(MAGPTR,0),U) D 128 ... S T=$$ONLCHK(MAGIEN2,USETGA) 129 ... S RET=RET+1,RET(RET)=$P(T,U,1,3)_U_MAGIEN2_U_U_$$REMOTE(MAGIEN2)_U_$P(T,U,4,7)_U_$$PSIND(MAGIEN2)_U_$P(T,U,8)_U_$P(T,U,9) 130 . E I $D(@MAGREF) D ; use exam index, e.g., "ADCM" 131 .. F S MAGREF=$Q(@MAGREF) Q:($P(MAGREF,",",4)'=(""""_MAGINDX_"""")) D 132 ... S X=$L(MAGREF,","),MAGIEN2=$P(MAGREF,",",X-1),SERIES=$P(MAGREF,",",5) 133 ... S T=$$ONLCHK(MAGIEN2,USETGA) 134 ... S RET=RET+1,RET(RET)=$P(T,U,1,3)_U_MAGIEN2_U_SERIES_U_$$REMOTE(MAGIEN2)_U_$P(T,U,4,7) 135 ... I SERIES'=SERPREV S SERCT=SERCT+1,$P(RET("SER",SERCT),U,2)=SERIES,SERPREV=SERIES,RET("SER",0)=SERCT 136 ... S $P(RET("SER",SERCT),U)=RET("SER",SERCT)+1 137 IMGINF2Q ; 138 Q 139 ; 140 PSIND(MAGIEN) ; return Presentation State Indicator(s) for image 141 ; K=Key Image PStype; I=Interpretation PStyp; U=User PStyp 142 N RSL,IEN,X 143 S RSL="",IEN=0 144 I $D(^MAG(2005,MAGIEN,210,IEN)) F S IEN=$O(^MAG(2005,MAGIEN,210,IEN)) Q:'IEN S X=$P(^(IEN,0),U,2) Q:RSL[X S RSL=RSL_$S(RSL="":"",1:",")_X 145 Q:$Q RSL Q 146 ; 147 JBFETCH(RARPT,MAGS,USETGA) ; fetch this case's images from Jukebox, if necessary 148 ; Input: RARPT: Rad Report pointer 149 ; MAGS: see below 150 ; USETGA: 1/0 -- if 1, forces return of TGA (not .big) file 151 ; This is a function that returns a string containing: 152 ; # Images fetched from JB ^ Total # Images for Case ^ # Low Res Imgs 153 ; The MAGS array will be returned to the calling 154 ; routine if MAGS is provided as an input parameter 155 ; MAGS is populated by call to IMGINF2. 156 ; IF any images are stored OffLine, then this node is set here: 157 ; MAGS("OFFLN",JBOFFLN)="" JBOFFLN = Platter ID from file 2006.033 158 ; 159 ; * This function may be called by other VistARad routines 160 ; 161 N MAGIEN,FETCH,IMAG,FILNAM,JBOFFLN,LORESCT 162 S USETGA=+$G(USETGA) ; Defaults to Full-Resolution image if not defined 163 S FETCH=0,LORESCT=0 164 D IMGINF2(RARPT,.MAGS,USETGA) 165 I MAGS F IMAG=1:1:MAGS S X=MAGS(IMAG) D 166 . I USETGA S LORESCT=LORESCT+$P(X,U,10) 167 . I '+X D ; Call params below depend on Consolidated Site status 168 .. S FILNAM=$P(X,U,9) 169 .. I FILNAM]"",$D(^MAGQUEUE(2006.033,"B",FILNAM)) S T=$O(^(FILNAM,"")) S JBOFFLN=$P($G(^MAGQUEUE(2006.033,T,0)),U,2) S FETCH=FETCH+1,MAGS("OFFLN",JBOFFLN)="" Q ; OffLine Image 170 .. I '$G(MAGJOB("CONSOLIDATED")) S X=$$JBTOHD^MAGBAPI($P(X,U,4)_"^"_$P(X,U,2)),FETCH=FETCH+1 ; pre-consolidation vs 171 .. E S X=$$JBTOHD^MAGBAPI($P(X,U,4)_"^"_$P(X,U,2),$P(X,U,7)),FETCH=FETCH+1 172 Q FETCH_U_MAGS_U_LORESCT 173 ; 174 END Q ; 1 MAGJUTL2 ;WIRMFO/JHC VistRad subroutines for RPC calls[ 2/21/97 10:53 AM ] ; 22 Mar 2001 2:24 PM 2 ;;3.0;IMAGING;**18,65**;Jul 27, 2006;Build 28 3 ;;Per VHA Directive 2004-038, this routine should not be modified. 4 ;; +---------------------------------------------------------------+ 5 ;; | Property of the US Government. | 6 ;; | No permission to copy or redistribute this software is given. | 7 ;; | Use of unreleased versions of this software requires the user | 8 ;; | to execute a written test agreement with the VistA Imaging | 9 ;; | Development Office of the Department of Veterans Affairs, | 10 ;; | telephone (301) 734-0100. | 11 ;; | | 12 ;; | The Food and Drug Administration classifies this software as | 13 ;; | a medical device. As such, it may not be changed in any way. | 14 ;; | Modifications to this software may result in an adulterated | 15 ;; | medical device under 21CFR820, the use of which is considered | 16 ;; | to be a violation of US Federal Statutes. | 17 ;; +---------------------------------------------------------------+ 18 ;; 19 Q 20 IMGINFO(RARPT,RET) ; Fetch info from Image File for input RARPT: 21 ; Input: RARPT: Rad Report pointer 22 ; RET: see below 23 ; RET contents delimited by ^: 24 ; CT = # of images for case 25 ; ONL = Image Storage status (Y=On Magnetic disk, N=Jukebox 26 ; "n/a" for not available, e.g., film only) 27 ; note -- if last image in group is Online, considers ALL online 28 ; MAGDT = Date/Time of Image Capture 29 ; REMOTE = 1/0 to Indicate images were remotely cached 30 ; MODALITY= Modality abbrev 31 ; PLACE = Image storage PLace (ptr to 2006.1 entry) 32 ; KEY = 1/0 ind. Key Images exist for this exam 33 ; 34 N IRPT,MAGIEN,MAGIEN2,ONLCHK,NETLOC,STIEN 35 N CT,ONL,MAGDT,REMOTE,MODALITY,PLACE,REMCHK,KEY 36 S CT="",ONL="",MAGDT="",RET="",REMOTE="",MODALITY="",PLACE="",KEY=0 ; init return vars 37 G IMGINFQ:'RARPT G IMGINFQ:'$D(^RARPT(RARPT,2005,0)) 38 I 'MAGJOB("P32") D 39 . S STIEN=$$STUDYID^MAGJUPD2("",RARPT,1) 40 . I STIEN S T=$O(^MAG(2005,STIEN,205,0)) I T S KEY=1 41 S IRPT=0 F S IRPT=$O(^RARPT(RARPT,2005,IRPT)) Q:'IRPT S MAGIEN=$P(^(IRPT,0),U) D 42 . Q:'$D(^MAG(2005,MAGIEN,0)) I MAGDT="" S MAGDT=$P($G(^(2)),U) 43 . I $O(^MAG(2005,MAGIEN,1,0)) S CT=CT+$P(^(0),U,4),Y=$P(^(0),U,3),MAGIEN2=$P($G(^(Y,0)),U) S:(MAGIEN2]"") ONLCHK=$$ONLCHK(MAGIEN2),REMCHK=$$REMOTE(MAGIEN2) ; last image in group 44 . E S CT=CT+1,ONLCHK=$$ONLCHK(MAGIEN),REMCHK=$$REMOTE(MAGIEN) 45 . S ONL=$S(ONL="":+ONLCHK,+ONL:+ONLCHK,1:0) ; NOT Online if ANY img is 0 46 . S REMOTE=$S(REMOTE="":REMCHK,+REMOTE:REMCHK,1:0) ; NOT Remote if ANY img is 0 47 . S X=$P(ONLCHK,U,3) 48 . I MODALITY="" S MODALITY=X 49 . E I MODALITY'[X S MODALITY=MODALITY_","_X 50 . I PLACE="" S PLACE=$P(ONLCHK,U,4) 51 IMGINFQ S ONL=$S(+ONL:"Y",ONL="":"n/a",1:"N") 52 S RET=CT_U_ONL_U_MAGDT_U_REMOTE_U_MODALITY_U_PLACE_U_KEY 53 Q 54 ; 55 ONLCHK(MAGIEN,USETGA) ; 56 ; Input: MAGIEN: Image pointer 57 ; USETGA: 1/0 -- if 1, forces return of TGA (not .big) file 58 ;Return: 59 ; - T/F for Full-Res image on Mag. Disk that is Online 60 ; - File type (BIG/FULL) 61 ; - Modality 62 ; - Place 63 ; - DFN 64 ; - File Name IFF this image is stored Off-Line (else null) 65 ; - USETGA as calculated in the logic below 66 ; - PROCDT = Img Processing DtTime 67 ; - ACQSITE = Acquisition site code 68 ; USETGA is set to False (0) if a low-resolution image (TGA) is 69 ; requested, but none exists; calling routine would call by ref. 70 ; 71 N BIG,X,NOD,MAG0,MODALITY,RET,PLACE,DFN,FILNAM,MAG2,PROCDT,ACQSITE,MAG100 72 S USETGA=+$G(USETGA) ; Defaults to Full-Resolution image if not defined 73 S RET="",MODALITY="",PLACE="",ACQSITE="" 74 S MAG0=^MAG(2005,MAGIEN,0),BIG=$D(^("FBIG")),NOD=$S(BIG:^("FBIG"),1:MAG0) 75 S MAG2=^MAG(2005,MAGIEN,2),PROCDT=$P(MAG2,U) 76 S MAG100=$G(^MAG(2005,MAGIEN,100)),ACQSITE=$P(MAG100,U,3) 77 I USETGA D 78 . I 'BIG S USETGA=0 ; reply no low-res image available 79 . I BIG S NOD=MAG0,BIG=0 ; enable correct logic inside this subroutine 80 S MODALITY=$P(MAG0,U,8),DFN=$P(MAG0,U,7) 81 I BIG S X=+$P(NOD,U) ; $p 1 is Magnetic Disk/Volume (.big) <*> DCM--add to end: S:'X X=+$P(NOD,U,3) 82 E S X=+$P(NOD,U,3) ; $p 3 is Magnetic Disk/Volume (.tga) 83 I X D 84 . I '$D(NETLOC(X)) S NETLOC(X)=+$P(^MAG(2005.2,X,0),U,6)_U_$P(^(0),U,10) 85 . S RET=+NETLOC(X),PLACE=$P(NETLOC(X),U,2) ; NETLOC is global to this subrtn 86 . S FILNAM="" 87 E D 88 . S RET=0,FILNAM=$P(MAG0,U,2) 89 . S T=$S(BIG:$P(NOD,U,2),1:$P(NOD,U,5)) 90 . I T S PLACE=$P(^MAG(2005.2,T,0),U,10) ; <*>DCM--add anything? 91 S RET=RET_U_$S(BIG:"BIG",1:"FULL")_U_MODALITY_U_PLACE_U_DFN_U_FILNAM_U_USETGA_U_PROCDT_U_ACQSITE 92 Q RET 93 ; 94 REMOTE(MAGIEN) ;Return list of remote Cache Locations 95 ; else, return "" if none 96 N RET,LOC 97 S RET="" 98 I $D(^MAG(2005,MAGIEN,4,"LOC")) S LOC=0 D 99 . F S LOC=$O(^MAG(2005,MAGIEN,4,"LOC",LOC)) Q:'LOC S RET=RET_$S(RET="":"",1:",")_LOC 100 Q RET 101 ; 102 IMGINF2(RARPT,RET,USETGA) ; Fetch info from Image File for input RARPT: 103 ; Input: RARPT: Rad Report pointer 104 ; RET: see below 105 ; USETGA: 1/0 -- if 1, forces return of TGA (not .big) file 106 ; RET holds array of return values: 107 ; RET = # Images stored for the case 108 ; RET(1:n) = 1/0 ^ FULL/BIG ^ Mod ^ ien ^ Series ^ Routed-to Locations ^ PLACE ^ DFN ^ FileName (if OffLine) ^ PS_Indicator 109 ; (1=Image is on Magnetic Disk) 110 ; * This subroutine may be called by other VistARad routines 111 ; 112 N BIG,IMG,MAGIEN,MAGIEN2,MAGPTR,MAGINDX,MAGREF,NETLOC,SERIES,SERCT,SERPREV 113 K RET S RET=0,SERCT=0,SERPREV="" 114 S USETGA=+$G(USETGA) ; Defaults to Full-Resolution image if not defined 115 G IMGINF2Q:'RARPT S IMG=0 116 S MAGINDX="ADCM" ; maybe others will exist in the future 117 ; *P18--this index is defunct for P18 & beyond 118 ; however, keep for bkwds-compat P18 to P32; remove later 119 F S IMG=$O(^RARPT(RARPT,2005,IMG)) Q:'IMG S MAGIEN=$P(^(IMG,0),U) D 120 . S MAGREF=$NA(^MAG(2005,MAGIEN,1,MAGINDX)) 121 . I 'MAGJOB("P32")!'$D(@MAGREF) D ; use group multiple structure 122 .. Q:'$D(^MAG(2005,MAGIEN,0)) S MAGPTR=0 123 .. I '$O(^MAG(2005,MAGIEN,1,MAGPTR)) D Q 124 ... S T=$$ONLCHK(MAGIEN,USETGA) 125 ... S RET=RET+1,RET(RET)=$P(T,U,1,3)_U_MAGIEN_U_U_$$REMOTE(MAGIEN)_U_$P(T,U,4,7)_U_$$PSIND(MAGIEN)_U_$P(T,U,8)_U_$P(T,U,9) 126 .. E F S MAGPTR=$O(^MAG(2005,MAGIEN,1,MAGPTR)) Q:'MAGPTR S MAGIEN2=$P(^(MAGPTR,0),U) D 127 ... S T=$$ONLCHK(MAGIEN2,USETGA) 128 ... S RET=RET+1,RET(RET)=$P(T,U,1,3)_U_MAGIEN2_U_U_$$REMOTE(MAGIEN2)_U_$P(T,U,4,7)_U_$$PSIND(MAGIEN2)_U_$P(T,U,8)_U_$P(T,U,9) 129 . E I $D(@MAGREF) D ; use exam index, e.g., "ADCM" 130 .. F S MAGREF=$Q(@MAGREF) Q:($P(MAGREF,",",4)'=(""""_MAGINDX_"""")) D 131 ... S X=$L(MAGREF,","),MAGIEN2=$P(MAGREF,",",X-1),SERIES=$P(MAGREF,",",5) 132 ... S T=$$ONLCHK(MAGIEN2,USETGA) 133 ... S RET=RET+1,RET(RET)=$P(T,U,1,3)_U_MAGIEN2_U_SERIES_U_$$REMOTE(MAGIEN2)_U_$P(T,U,4,7) 134 ... I SERIES'=SERPREV S SERCT=SERCT+1,$P(RET("SER",SERCT),U,2)=SERIES,SERPREV=SERIES,RET("SER",0)=SERCT 135 ... S $P(RET("SER",SERCT),U)=RET("SER",SERCT)+1 136 IMGINF2Q ; 137 Q 138 ; 139 PSIND(MAGIEN) ; return Presentation State Indicator(s) for image 140 ; K=Key Image PStype; I=Interpretation PStyp; U=User PStyp 141 N RSL,IEN,X 142 S RSL="",IEN=0 143 I $D(^MAG(2005,MAGIEN,210,IEN)) F S IEN=$O(^MAG(2005,MAGIEN,210,IEN)) Q:'IEN S X=$P(^(IEN,0),U,2) Q:RSL[X S RSL=RSL_$S(RSL="":"",1:",")_X 144 Q:$Q RSL Q 145 ; 146 JBFETCH(RARPT,MAGS,USETGA) ; fetch this case's images from Jukebox, if necessary 147 ; Input: RARPT: Rad Report pointer 148 ; MAGS: see below 149 ; USETGA: 1/0 -- if 1, forces return of TGA (not .big) file 150 ; This is a function that returns a string containing: 151 ; # Images fetched from JB ^ Total # Images for Case ^ # Low Res Imgs 152 ; The MAGS array will be returned to the calling 153 ; routine if MAGS is provided as an input parameter 154 ; MAGS is populated by call to IMGINF2. 155 ; IF any images are stored OffLine, then this node is set here: 156 ; MAGS("OFFLN",JBOFFLN)="" JBOFFLN = Platter ID from file 2006.033 157 ; 158 ; * This function may be called by other VistARad routines 159 ; 160 N MAGIEN,FETCH,IMAG,FILNAM,JBOFFLN,LORESCT 161 S USETGA=+$G(USETGA) ; Defaults to Full-Resolution image if not defined 162 S FETCH=0,LORESCT=0 163 D IMGINF2(RARPT,.MAGS,USETGA) 164 I MAGS F IMAG=1:1:MAGS S X=MAGS(IMAG) D 165 . I USETGA S LORESCT=LORESCT+$P(X,U,10) 166 . I '+X D ; Call params below depend on Consolidated Site status 167 .. S FILNAM=$P(X,U,9) 168 .. I FILNAM]"",$D(^MAGQUEUE(2006.033,"B",FILNAM)) S T=$O(^(FILNAM,"")) S JBOFFLN=$P($G(^MAGQUEUE(2006.033,T,0)),U,2) S FETCH=FETCH+1,MAGS("OFFLN",JBOFFLN)="" Q ; OffLine Image 169 .. I '$G(MAGJOB("CONSOLIDATED")) S X=$$JBTOHD^MAGBAPI($P(X,U,4)_"^"_$P(X,U,2)),FETCH=FETCH+1 ; pre-consolidation vs 170 .. E S X=$$JBTOHD^MAGBAPI($P(X,U,4)_"^"_$P(X,U,2),$P(X,U,7)),FETCH=FETCH+1 171 Q FETCH_U_MAGS_U_LORESCT 172 ; 173 END Q ;
Note:
See TracChangeset
for help on using the changeset viewer.