| 1 | MAGGTSR ;WOIFO/GEK - SURGERY CASE LIST ; [ 06/20/2001 08:57 ] | 
|---|
| 2 | ;;3.0;IMAGING;**8,59**;Nov 27, 2007;Build 20 | 
|---|
| 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 | GET(MAGRY,MAGDFN,DATA) ;RPC [MAGGSUR GET] | 
|---|
| 21 | ; Call to get list of Patient Surgery procedures | 
|---|
| 22 | ;  MAGDFN       =       Patient DFN | 
|---|
| 23 | ;  DATA         =       For Future Use. | 
|---|
| 24 | N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR" | 
|---|
| 25 | N Y,NAME,AI,CASES,SDAT,DTX,SRFDA | 
|---|
| 26 | K ^TMP($J,"MAGGTSR") | 
|---|
| 27 | S NAME=$P($G(^DPT(MAGDFN,0)),U) I NAME="" S MAGRY(0)="0^INVALID Patient ID" Q | 
|---|
| 28 | ; This is the Old Call we have always made.  Doesn't have Non-OR | 
|---|
| 29 | D GET^SROGTSR(.MAGRY,MAGDFN) | 
|---|
| 30 | I 'MAGRY(0) S MAGRY(0)=MAGRY(0)_" for "_NAME G C1 | 
|---|
| 31 | ; Image count is for future use by Display | 
|---|
| 32 | S MAGRY(1)="#^Date^Case description^Case #^Images" | 
|---|
| 33 | S I=1 F  S I=$O(MAGRY(I)) Q:'I  D | 
|---|
| 34 | . S DTX=$$FMTE^XLFDT($P(MAGRY(I),U,5),"5MZ") | 
|---|
| 35 | . S ^TMP($J,"MAGGTSR",$P(MAGRY(I),U,5),$P(MAGRY(I),U,4))=DTX_"^"_$P(MAGRY(I),U,3)_"^"_$P(MAGRY(I),"^",4)_"^"_$P(MAGRY(I),U,6)_U_"|"_$P(MAGRY(I),U,4,5)_U | 
|---|
| 36 | ; | 
|---|
| 37 | ;This is the New Call, which has Non-OR, but doesn't have (Scheduled) so we merge the two calls. | 
|---|
| 38 | C1 D LIST^SROESTV(.CASES,MAGDFN) | 
|---|
| 39 | I '$D(@CASES)  G E1 | 
|---|
| 40 | S MAGRY(0)="1^" | 
|---|
| 41 | S MAGRY(1)="#^Date^Case description^Case #^Images" | 
|---|
| 42 | S I=0 F  S I=$O(@CASES@(I)) Q:'I  D | 
|---|
| 43 | . S SDAT=@CASES@(I) | 
|---|
| 44 | . ; SDAT = SURIEN  ^ SURDESC  ^ SURDT ^ DFN;NAME ^ | 
|---|
| 45 | . I $D(^TMP($J,"MAGGTSR",$P(SDAT,U,3),$P(SDAT,U,1))) Q | 
|---|
| 46 | . S ^TMP($J,"MAGGTSR",$P(SDAT,U,3),$P(SDAT,U,1))=$$FMTE^XLFDT($P(SDAT,U,3),"5MZ")_U_$P(SDAT,U,2)_U_$P(SDAT,U,1)_U_$$IMGCT($P(SDAT,U,1))_U_"|"_$P(SDAT,U,1)_U_$P(SDAT,U,3)_U | 
|---|
| 47 | . Q | 
|---|
| 48 | ; | 
|---|
| 49 | ; Now Returned the Merged List of the results of Old Call, with Results of New Call. | 
|---|
| 50 | E1 ; | 
|---|
| 51 | I '$D(^TMP($J,"MAGGTSR")) S MAGRY(0)="0^No Cases for "_$G(NAME) Q | 
|---|
| 52 | S I=1,DTX=0,SRFDA=0 | 
|---|
| 53 | F  S DTX=$O(^TMP($J,"MAGGTSR",DTX)) Q:'DTX  D | 
|---|
| 54 | . S SRFDA="" F  S SRFDA=$O(^TMP($J,"MAGGTSR",DTX,SRFDA),-1) Q:'SRFDA  D | 
|---|
| 55 | . . S I=I+1,MAGRY(I)=I-1_"^"_^TMP($J,"MAGGTSR",DTX,SRFDA) | 
|---|
| 56 | . . Q | 
|---|
| 57 | . Q | 
|---|
| 58 | S $P(MAGRY(0),"^",1)=I-1 | 
|---|
| 59 | Q | 
|---|
| 60 | IMGCT(SRFIEN) ; | 
|---|
| 61 | ;  Count of images for this Surgery Case | 
|---|
| 62 | ;  If more than one group (or image) | 
|---|
| 63 | ;  then return "Group count : total images"  i.e.   "3:134" | 
|---|
| 64 | ;  else return count of Images i.e. "4" | 
|---|
| 65 | ; | 
|---|
| 66 | N CT,GCT,ICT,J | 
|---|
| 67 | S J=0,CT=0,GCT=0 | 
|---|
| 68 | F  S J=$O(^SRF(SRFIEN,2005,"B",J)) Q:'J  D | 
|---|
| 69 | . S ICT=+$P($G(^MAG(2005,J,1,0)),U,4) | 
|---|
| 70 | . S ICT=$S(ICT:ICT,1:1) ;If no group images, set count =1 (single image) | 
|---|
| 71 | . S GCT=GCT+1 | 
|---|
| 72 | . S CT=CT+ICT | 
|---|
| 73 | I (GCT>1) Q GCT_":"_CT | 
|---|
| 74 | Q CT | 
|---|
| 75 | ; | 
|---|
| 76 | IMAGE(MAGRY,DATA) ; | 
|---|
| 77 | ;  Called with the IEN of the Surgery package ^SRF(170,x | 
|---|
| 78 | ;  We'll return a list of images. | 
|---|
| 79 | N SRFIEN,MAGIEN | 
|---|
| 80 | S SRFIEN=+DATA | 
|---|
| 81 | I '$D(^SRF(SRFIEN)) S MAGRY(0)="0^INVALID Surgery File entry" Q | 
|---|
| 82 | I '$O(^SRF(SRFIEN,2005,0)) S MAGRY(0)="0^No Images for this Operation." Q | 
|---|
| 83 | D GETLIST | 
|---|
| 84 | Q | 
|---|
| 85 | GETLIST ; called from other points in this routine, when SRFIEN is defined | 
|---|
| 86 | ; and returns a list in MAGRY(1..n) | 
|---|
| 87 | ; We'll make a tmp list of just the image IEN's | 
|---|
| 88 | ;  splitting groups into individual image entries. | 
|---|
| 89 | K ^TMP($J,"MAGGX") | 
|---|
| 90 | S I=0,CT=1 F  S I=$O(^SRF(SRFIEN,2005,I)) Q:'I  D | 
|---|
| 91 | . S MAGIEN=$P(^SRF(SRFIEN,2005,I,0),U,1) | 
|---|
| 92 | . Q:'$D(^MAG(2005,MAGIEN,0)) | 
|---|
| 93 | . I '$O(^MAG(2005,MAGIEN,1,0)) S ^TMP($J,"MAGGX",MAGIEN)="" | 
|---|
| 94 | . E  S Z=0 F  S Z=$O(^MAG(2005,MAGIEN,1,Z)) Q:Z=""  S ^TMP($J,"MAGGX",$P(^MAG(2005,MAGIEN,1,Z,0),U,1))="" | 
|---|
| 95 | I '$D(^TMP($J,"MAGGX")) S MAGRY(0)="0^Surgery File Entry "_SRFIEN_": has INVALID Image Pointers" Q | 
|---|
| 96 | S Z="",CT=0 | 
|---|
| 97 | S MAGQUIET=1 | 
|---|
| 98 | F  S Z=$O(^TMP($J,"MAGGX",Z)) Q:Z=""  D | 
|---|
| 99 | . S CT=CT+1,MAGXX=Z D INFO^MAGGTII | 
|---|
| 100 | . S MAGRY(CT)="B2^"_MAGFILE | 
|---|
| 101 | K MAGQUIET | 
|---|
| 102 | S MAGRY(0)=CT_"^Images for the selected Surgery File entry" | 
|---|
| 103 | K ^TMP("MAGGX") | 
|---|
| 104 | Q | 
|---|