| 1 | MAGGSTI ;WOIFO/GEK - Imaging interface to TIU RPC Calls etc. ; 01 Nov 2001 12:32 PM 
 | 
|---|
| 2 |  ;;3.0;IMAGING;**7**;Jul 12, 2002
 | 
|---|
| 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 | LISTC(ATMP,PROC,MAGDFN,BDT,EDT,NUM,DETAILS) ;Get Short list of TIU notes 
 | 
|---|
| 20 |  ; given a CLASS in PROC parameter
 | 
|---|
| 21 |  ; The compressed listing, 4 columns  "Date^Spec^Desc^Img Count^procedure info"
 | 
|---|
| 22 |  N MAGX,I,ACT,NODE,TMP
 | 
|---|
| 23 |  D CONTEXT^TIUSRVLO(.MAGX,PROC,1,MAGDFN)
 | 
|---|
| 24 |  I '$D(@MAGX) Q
 | 
|---|
| 25 |  S ACT=+$O(@ATMP@(""),-1)
 | 
|---|
| 26 |  S I="" F  S I=$O(@MAGX@(I)) Q:I=""  D
 | 
|---|
| 27 |  . ;
 | 
|---|
| 28 |  . S X=$S(DETAILS:$$DETINF(@MAGX@(I)),1:$$CMPINF(@MAGX@(I)))
 | 
|---|
| 29 |  . S ACT=ACT+1
 | 
|---|
| 30 |  . S @ATMP@(ACT)=X
 | 
|---|
| 31 |  I DETAILS S @ATMP@(1)="Date^Title^Images^Author^Status^Visit" ;^|TIUDA^
 | 
|---|
| 32 |  Q
 | 
|---|
| 33 | CMPINF(NODE) ;
 | 
|---|
| 34 |  N RY
 | 
|---|
| 35 |  S RY=$$EXTDT^MAGGSU1($P(NODE,U,3))_U_"TIU"_U_$P(NODE,U,2)_U
 | 
|---|
| 36 |  S RY=RY_$$IMGCT($P(NODE,U))_U_$P($P(NODE,U,5),";",2)_U
 | 
|---|
| 37 |  S RY=RY_"|TIU^"_$P(NODE,U)
 | 
|---|
| 38 |  Q RY
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | DETINF(NODE) ;
 | 
|---|
| 41 |  ; The node info from TIUSRVLO is
 | 
|---|
| 42 |  ;   TIUDA    Desc        date          patient              duz;author          status
 | 
|---|
| 43 |  ;  x)=2452^General Note^2910528.1533^HOOD, ROBIN  (H2591)^10;MELANIE BUECHLER
 | 
|---|
| 44 |  ;     service      status   visit info       ?      ? ?
 | 
|---|
| 45 |  ;    ^CARDIOLOGY^completed^Visit: 05/28/91^        ^^0^
 | 
|---|
| 46 |  N RY
 | 
|---|
| 47 |  ;  DATE^DESC^IMGCT^AUTHOR^STATUS^VISIT^|"TIU^"TIUDA^
 | 
|---|
| 48 |  S RY=$$EXTDT^MAGGSU1($P(NODE,U,3))_U_$P(NODE,U,2)_U_$$IMGCT($P(NODE,U))_U
 | 
|---|
| 49 |  S RY=RY_$P($P(NODE,U,5),";",2)_U_$P(NODE,U,7)_U_$P(NODE,U,8)
 | 
|---|
| 50 |  S RY=RY_U_"|TIU"_U_$P(NODE,U)_U
 | 
|---|
| 51 |  Q RY
 | 
|---|
| 52 | IMGCT(TIUDA) ;  Get count of images for this TIU Document
 | 
|---|
| 53 |  ;  If more than one group (or image) is pointing to this Document
 | 
|---|
| 54 |  ;    then return "Group count : total images"  i.e.   "3:134"
 | 
|---|
| 55 |  ; 
 | 
|---|
| 56 |  N MAGARR,MAGIEN,CT,GCT,ICT,I
 | 
|---|
| 57 |  S I="",CT=0,GCT=0
 | 
|---|
| 58 |  D GETILST^TIUSRVPL(.MAGARR,TIUDA)
 | 
|---|
| 59 |  F  S I=$O(MAGARR(I)) Q:'I  D
 | 
|---|
| 60 |  . S ICT=+$P($G(^MAG(2005,MAGARR(I),1,0)),U,4)
 | 
|---|
| 61 |  . S ICT=$S(ICT:ICT,1:1) ;If no group images, set count =1 (single image)
 | 
|---|
| 62 |  . S GCT=GCT+1
 | 
|---|
| 63 |  . S CT=CT+ICT
 | 
|---|
| 64 |  I (GCT>1) Q GCT_":"_CT
 | 
|---|
| 65 |  Q CT
 | 
|---|
| 66 | FILE(MAGRY,MAGDA,TIUDA) ; RPC Call to file TIU and Imaging Pointers
 | 
|---|
| 67 |  ; TIU API to add image to TIU
 | 
|---|
| 68 |  ; TODO; have to validate that the Imaging patient matches the TIU patient.
 | 
|---|
| 69 |  D PUTIMAGE^TIUSRVPL(.MAGRY,TIUDA,MAGDA) ;
 | 
|---|
| 70 |  I 'MAGRY Q
 | 
|---|
| 71 |  ; Now SET the Parent fields in the Image File
 | 
|---|
| 72 |  S $P(^MAG(2005,MAGDA,2),U,6,8)=8925_U_TIUDA_U_+MAGRY
 | 
|---|
| 73 |  ; DONE.
 | 
|---|
| 74 |  S MAGRY="1^Image pointer filed successfully"
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 | DATA(MAGRY,TIUDA) ;RPC Call to get TIU data from the TIUDA
 | 
|---|
| 77 |  ; Return =     TIUDA^Document Type ^Document Date^DFN
 | 
|---|
| 78 |  ; returning DFN is new, We'll need IA for it ;TODO
 | 
|---|
| 79 |  ;
 | 
|---|
| 80 |  S MAGRY=TIUDA_U_$$GET1^DIQ(8925,TIUDA,".01","E")_U_$$GET1^DIQ(8925,TIUDA,"1201","I")_U_$$GET1^DIQ(8925,TIUDA,".02","I")
 | 
|---|
| 81 |  ;
 | 
|---|
| 82 |  Q
 | 
|---|
| 83 | IMAGES(MAGRY,TIUDA) ;RPC Call to get all images for a given TIU DA
 | 
|---|
| 84 |  ; We first get all Image IEN's breaking groups into seperate images
 | 
|---|
| 85 |  ; Then get Image Info for each one.
 | 
|---|
| 86 |  ; MAGRY    -     Return array of Image Data entries
 | 
|---|
| 87 |  ; MAGRY(0)    is   1 ^ message  if successful
 | 
|---|
| 88 |  ;                  0 ^ Error message if error;
 | 
|---|
| 89 |  ; TIUDA  is IEN in ^TIU(8925
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 |  ; Call TIU API to get list of Image IEN's
 | 
|---|
| 92 |  N MAGARR,CT K ^TMP("MAGGX",$J)
 | 
|---|
| 93 |  N MAGZZ
 | 
|---|
| 94 |  D GETILST^TIUSRVPL(.MAGARR,TIUDA)
 | 
|---|
| 95 |  S CT=0
 | 
|---|
| 96 |  K ^TMP("MAGGX",$J)
 | 
|---|
| 97 |  ; Now get all images for all groups and single images.
 | 
|---|
| 98 |  S I="" F  S I=$O(MAGARR(I)) Q:'I  S DA=MAGARR(I) D
 | 
|---|
| 99 |  . I $O(^MAG(2005,DA,1,0)) D  Q
 | 
|---|
| 100 |  . . S J=0 F  S J=$O(^MAG(2005,DA,1,J)) Q:'J  S CT=CT+1,^TMP("MAGGX",$J,CT)=^(J,0)
 | 
|---|
| 101 |  . S CT=CT+1
 | 
|---|
| 102 |  . S ^TMP("MAGGX",$J,CT)=DA
 | 
|---|
| 103 |  ; Now get image info for each image
 | 
|---|
| 104 |  ;
 | 
|---|
| 105 |  S CT=0,Z=""
 | 
|---|
| 106 |  S MAGQUIET=1
 | 
|---|
| 107 |  F  S Z=$O(^TMP("MAGGX",$J,Z)) Q:Z=""  D
 | 
|---|
| 108 |  . S CT=CT+1,MAGXX=^TMP("MAGGX",$J,Z)
 | 
|---|
| 109 |  . ;GEK 8/24/00 Stoping the Invalid Image IEN's and Deleted Images
 | 
|---|
| 110 |  . I '$D(^MAG(2005,MAGXX)) D  Q
 | 
|---|
| 111 |  . . D INVALID^MAGGTIG(MAGXX,.MSGX) S MAGRY(CT)=MSGX
 | 
|---|
| 112 |  . D BOTH^MAGFILEB
 | 
|---|
| 113 |  . S MAGRY(CT)="B2^"_MAGFILE
 | 
|---|
| 114 |  K MAGQUIET
 | 
|---|
| 115 |  S MAGRY(0)=CT_"^"_CT_" Images for the selected TIU NOTE"
 | 
|---|
| 116 |  ; PUT THE Image IEN of the last image into the group ien field.
 | 
|---|
| 117 |  Q:'CT
 | 
|---|
| 118 |  S $P(MAGRY(0),U,3)=TIUDA
 | 
|---|
| 119 |  D DATA(.MAGZZ,TIUDA)
 | 
|---|
| 120 |  S $P(MAGRY(0),U,4)=$$GET1^DIQ(8925,TIUDA,".02","E")_"  "_$P(MAGZZ,U,2)_"  "_$$FMTE^XLFDT($P(MAGZZ,U,3),"8")
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 |  S $P(MAGRY(0),U,5)=$S($P($G(MAGFILE),U):$P(MAGFILE,U),1:MAGXX)
 | 
|---|
| 123 |  Q
 | 
|---|
| 124 |  ;
 | 
|---|