| 1 | MAGGTRP1 ;WOIFO/GEK - Display Associated Report ; [ 11/08/2001 17:18 ]
 | 
|---|
| 2 |  ;;3.0;IMAGING;**8**;Sep 15, 2004
 | 
|---|
| 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 |  Q
 | 
|---|
| 19 | RAD(MAGRPTY,RARPT) ;RPC [MAGGRADREPORT] Call to retrun a Radiology report
 | 
|---|
| 20 |  ; MAGRPTY is the return array
 | 
|---|
| 21 |  ; RARPT is the Radiology Report IEN i.e. ^RARPT(RARPT
 | 
|---|
| 22 |  N ERRRES,RPTRES
 | 
|---|
| 23 |  S ERRRES=""
 | 
|---|
| 24 |  D OPENDEV Q:POP
 | 
|---|
| 25 |  D BUILD(RARPT)
 | 
|---|
| 26 |  S RPTRES=$G(@MAGRPTY@(0))
 | 
|---|
| 27 |  I 'RPTRES S ERRRES=RPTRES
 | 
|---|
| 28 |  I +RPTRES=-2 S ERRRES=RPTRES
 | 
|---|
| 29 |  D:IO'=IO(0) ^%ZISC
 | 
|---|
| 30 |  I $L(ERRRES) K @MAGRPTY S @MAGRPTY@(0)=ERRRES
 | 
|---|
| 31 |  ; Mod Patch5 block Questionable reports 
 | 
|---|
| 32 |  ; stop incorrectly report success on a failed report attempt.  this line is 
 | 
|---|
| 33 |  ; moved inside BUILD tag
 | 
|---|
| 34 |  ;S @MAGRPTY@(0)="1^OK"
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 | BUILD(RARPT) ;Call to generate the Radiology Report
 | 
|---|
| 37 |  ; This call is called be various Imaging routines to get the Rad Report
 | 
|---|
| 38 |  ; This call assumes the device is already open.
 | 
|---|
| 39 |  ; New the variables that'll be defined in the call to RASET^RAUTL2
 | 
|---|
| 40 |  N RACN,RACNI,RADATE,RADFN,RADTE,RADTI
 | 
|---|
| 41 |  ; We'll use these
 | 
|---|
| 42 |  ; RADTI = Inverse date/time for rad order
 | 
|---|
| 43 |  ; RACNI = rad case number
 | 
|---|
| 44 |  ; RADFN = Patient DFN
 | 
|---|
| 45 |  N I,Y,X,MAGPRC,XINF
 | 
|---|
| 46 |  IF $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTRP1"
 | 
|---|
| 47 |  E  S X="ERRA^MAGGTPR1",@^%ZOSF("TRAP")
 | 
|---|
| 48 |  I RARPT["PMRAD" S @MAGRPTY@(0)="-2^Patient Mismatch. Radiology Files" Q
 | 
|---|
| 49 |  I '$G(RARPT) S @MAGRPTY@(0)="0^NO Radiology Report number." Q
 | 
|---|
| 50 |  ; 
 | 
|---|
| 51 |  I '$$FIND1^DIC(74,"","A",+RARPT) S @MAGRPTY@(0)="0^Radiology report entry "_RARPT_" is not on file.  Contact IRM." Q
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 |  S Y=RARPT
 | 
|---|
| 54 |  ; This call will define the needed variables RADTI,RACNI and RADFN
 | 
|---|
| 55 |  D RASET^RAUTL2
 | 
|---|
| 56 |  ;D RPT2DPT(RARPT,.XINF)
 | 
|---|
| 57 |  ;S ^TMP("MAGQIRP1",$J,"XINF")=XINF
 | 
|---|
| 58 |  ;I +XINF'=RADFN S @MAGRPTY@(0)="0^Patient Mismatch. Radiology Files"  Q
 | 
|---|
| 59 |  S ^TMP("MAGQIRP1",$J)="RADFN "_RADFN_" RADTI "_RADTI_" RACNI "_RACNI
 | 
|---|
| 60 |  S ^TMP("MAGQIRP1",$J,1)="RARPT "_RARPT_" ,0)="_$G(^RARPT(RARPT,0))
 | 
|---|
| 61 |  D EN3^RAO7PC3(RADFN_"^"_RADTI_"^"_RACNI)
 | 
|---|
| 62 |  I '$D(^TMP($J,"RAE3")) D  Q
 | 
|---|
| 63 |  . S @MAGRPTY@(0)="0^Radiology report not on file.  Contact IRM." Q
 | 
|---|
| 64 |  S MAGPRC=$O(^TMP($J,"RAE3",RADFN,RACNI,""))
 | 
|---|
| 65 |  S I=0 F  S I=$O(^TMP($J,"RAE3",RADFN,RACNI,MAGPRC,I)) Q:'I  D
 | 
|---|
| 66 |  . W !,$G(^TMP($J,"RAE3",RADFN,RACNI,MAGPRC,I))
 | 
|---|
| 67 |  ; 2.5P5  This line was moved from above.  So this BUILD function
 | 
|---|
| 68 |  ;        should now correctly return success or failure.
 | 
|---|
| 69 |  S @MAGRPTY@(0)="1^OK"
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 | OPENDEV ;
 | 
|---|
| 72 |  S MAGRPTY=$NA(^TMP($J,"WSDAT"))
 | 
|---|
| 73 |  K @MAGRPTY ; clean it up first.
 | 
|---|
| 74 |  S IOP="IMAGING WORKSTATION",%ZIS=0 D ^%ZIS
 | 
|---|
| 75 |  I POP S @MAGRPTY@(0)="0^Can't open device IMAGING WORKSTATION" Q
 | 
|---|
| 76 |  U IO
 | 
|---|
| 77 |  Q
 | 
|---|
| 78 | ERRA ;
 | 
|---|
| 79 |  S @MAGRPTY@(0)="0^ERROR "_$$EC^%ZOSV
 | 
|---|
| 80 |  D @^%ZOSF("ERRTN")
 | 
|---|
| 81 |  Q
 | 
|---|
| 82 | GRPDESC(MAGIEN) ; PRINT LONG DESC OF IMAGE GROUP and ALL children in Group
 | 
|---|
| 83 |  ;DEVICE HAS ALREADY BEEN OPENED
 | 
|---|
| 84 |  N MAGCIEN,MAGJ,MAGDASH
 | 
|---|
| 85 |  S $P(MAGDASH,"_",79)="_"
 | 
|---|
| 86 |  K ^UTILITY($J,"W")
 | 
|---|
| 87 |  D GETDESC(MAGIEN)
 | 
|---|
| 88 |  S MAGCIEN=0
 | 
|---|
| 89 |  F  S MAGCIEN=$O(^MAG(2005,MAGIEN,1,MAGCIEN)) Q:'MAGCIEN  D
 | 
|---|
| 90 |  . S MAGJ=^MAG(2005,MAGIEN,1,MAGCIEN,0)
 | 
|---|
| 91 |  . I '$D(^MAG(2005,+MAGJ,3)) Q
 | 
|---|
| 92 |  . D GETDESC(MAGJ)
 | 
|---|
| 93 |  W MAGDASH
 | 
|---|
| 94 |  Q
 | 
|---|
| 95 | GETDESC(MAGIEN) ;
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 |  N X,MAGI,DIWR,DIWL,DIWF,MAGHD
 | 
|---|
| 98 |  I $O(^MAG(2005,MAGIEN,1,0)) S MAGHD="Group"
 | 
|---|
| 99 |  E  S MAGHD="Image"
 | 
|---|
| 100 |  W MAGHD_" ID# "_MAGIEN,!
 | 
|---|
| 101 |  I $O(^MAG(2005,MAGIEN,3,0)) D
 | 
|---|
| 102 |  . S DIWR=80,DIWL=1,DIWF="N"
 | 
|---|
| 103 |  . W MAGHD_" : "_$P(^MAG(2005,MAGIEN,2),U,4),!
 | 
|---|
| 104 |  . W MAGHD_" Long Description:  ",!
 | 
|---|
| 105 |  . S MAGI=0
 | 
|---|
| 106 |  . F  S MAGI=$O(^MAG(2005,MAGIEN,3,MAGI)) Q:+MAGI<1  D
 | 
|---|
| 107 |  . . S X=^MAG(2005,MAGIEN,3,MAGI,0) D ^DIWP
 | 
|---|
| 108 |  . D ^DIWW
 | 
|---|
| 109 |  . W !
 | 
|---|
| 110 |  Q
 | 
|---|
| 111 | RPT2DPT(RARPT,RET) ; For input RARPT, return string RET containing case
 | 
|---|
| 112 |  ;                 subscript values for accessing ^RADPT
 | 
|---|
| 113 |  ; Stole this code from john, don't tell him.
 | 
|---|
| 114 |  ; * This subroutine may be called by other routines of the Radiology
 | 
|---|
| 115 |  ;   Imaging Workstation programs
 | 
|---|
| 116 |  ;
 | 
|---|
| 117 |  N DFN,DTI,CNI S (DFN,DTI,CNI)=""
 | 
|---|
| 118 |  I RARPT?1N.N,$D(^RARPT(RARPT)) S X=$G(^(RARPT,0)) I X]"" D
 | 
|---|
| 119 |  . S X=$P(X,U)
 | 
|---|
| 120 |  . S X=$O(^RADPT("ADC",X,0)) I X S DFN=X,DTI=$O(^(X,0)),CNI=$O(^(DTI,0))
 | 
|---|
| 121 |  . S RET=DFN_U_DTI_U_CNI
 | 
|---|
| 122 |  E  S RET=""
 | 
|---|
| 123 |  Q
 | 
|---|