KIDS Distribution saved on Aug 02, 2012@08:06:41 VistA Imaging V3.0 - Patch 122 - 08/02/2012 08:06AM **KIDS**:MAG*3.0*122^ **INSTALL NAME** MAG*3.0*122 "BLD",3463,0) MAG*3.0*122^IMAGING^0^3120802^y "BLD",3463,1,0) ^^23^23^3120802^ "BLD",3463,1,1,0) Version 3.0 Patch 122 - Annotations "BLD",3463,1,2,0) "BLD",3463,1,3,0) "BLD",3463,1,4,0) Routines: "BLD",3463,1,5,0) MAGDRPC1 new value = 48033690 "BLD",3463,1,6,0) MAGGA03Q new value = 82673839 "BLD",3463,1,7,0) MAGGAII new value = 177433198 "BLD",3463,1,8,0) MAGGI12 new value = 97013744 "BLD",3463,1,9,0) MAGGI13 new value = 65233516 "BLD",3463,1,10,0) MAGGNTI new value = 77235042 "BLD",3463,1,11,0) MAGGTPT1 new value = 51976467 "BLD",3463,1,12,0) MAGGTRPT new value = 43148529 "BLD",3463,1,13,0) MAGGTU4C new value = 5095269 "BLD",3463,1,14,0) MAGGTU4D new value = 5101074 "BLD",3463,1,15,0) MAGGTU4L new value = 5095350 "BLD",3463,1,16,0) MAGGTU4T new value = 5095422 "BLD",3463,1,17,0) MAGGTUP new value = 26333617 "BLD",3463,1,18,0) MAGIP122 new value = 8703636 "BLD",3463,1,19,0) MAGSANNO new value = 90488683 "BLD",3463,1,20,0) MAGSPID new value = 3911091 "BLD",3463,1,21,0) "BLD",3463,1,22,0) Please note that routine MAGIP122 is deleted after the KIDS Build is "BLD",3463,1,23,0) installed. "BLD",3463,4,0) ^9.64PA^2006.18^2 "BLD",3463,6.3) V3.0p122Build92_T15 "BLD",3463,4,2005.002,0) 2005.002 "BLD",3463,4,2005.002,222) y^y^f^^^^n "BLD",3463,4,2006.18,0) 2006.18 "BLD",3463,4,2006.18,2,0) ^9.641^2006.18^1 "BLD",3463,4,2006.18,2,2006.18,0) IMAGING USER PREFERENCE (File-top level) "BLD",3463,4,2006.18,2,2006.18,1,0) ^9.6411^281^23 "BLD",3463,4,2006.18,2,2006.18,1,250,0) ANNOTATION CAPTURE FONT NAME "BLD",3463,4,2006.18,2,2006.18,1,251,0) ANNOTATION CAPTURE FONT STYLE "BLD",3463,4,2006.18,2,2006.18,1,252,0) ANNOTATION CAPTURE FONT SIZE "BLD",3463,4,2006.18,2,2006.18,1,253,0) ANNOTATION CAPTURE LINE WIDTH "BLD",3463,4,2006.18,2,2006.18,1,254,0) ANNOTATION CAPTURE COLOR "BLD",3463,4,2006.18,2,2006.18,1,255,0) ANNOTATION CAPTURE OPACITY "BLD",3463,4,2006.18,2,2006.18,1,256,0) ANNOTATION CAPTURE ARROW STYLE "BLD",3463,4,2006.18,2,2006.18,1,257,0) ANNOTATION CAPTURE ARROWLENGTH "BLD",3463,4,2006.18,2,2006.18,1,258,0) ANNOTATION CAPTURE ARROW ANGLE "BLD",3463,4,2006.18,2,2006.18,1,259,0) ANNOTATION CAPTURE G WIN LEFT "BLD",3463,4,2006.18,2,2006.18,1,260,0) ANNOTATION CAPTURE G WIN TOP "BLD",3463,4,2006.18,2,2006.18,1,270,0) ANNOTATION DISPLAY FONT NAME "BLD",3463,4,2006.18,2,2006.18,1,271,0) ANNOTATION DISPLAY FONT STYLE "BLD",3463,4,2006.18,2,2006.18,1,272,0) ANNOTATION DISPLAY FONT SIZE "BLD",3463,4,2006.18,2,2006.18,1,273,0) ANNOTATION DISPLAY LINE WIDTH "BLD",3463,4,2006.18,2,2006.18,1,274,0) ANNOTATION DISPLAY COLOR "BLD",3463,4,2006.18,2,2006.18,1,275,0) ANNOTATION DISPLAY OPACITY "BLD",3463,4,2006.18,2,2006.18,1,276,0) ANNOTATION DISPLAY ARROW STYLE "BLD",3463,4,2006.18,2,2006.18,1,277,0) ANNOTATION DISPLAY ARROWLENGTH "BLD",3463,4,2006.18,2,2006.18,1,278,0) ANNOTATION DISPLAY ARROW ANGLE "BLD",3463,4,2006.18,2,2006.18,1,279,0) ANNOTATION DISPLAY G WIN LEFT "BLD",3463,4,2006.18,2,2006.18,1,280,0) ANNOTATION DISPLAY G WIN TOP "BLD",3463,4,2006.18,2,2006.18,1,281,0) ANNOTATION DISPLAY AUTO SHOW "BLD",3463,4,2006.18,222) y^n^p^^^^n^^n "BLD",3463,4,2006.18,224) "BLD",3463,4,"APDD",2006.18,2006.18) "BLD",3463,4,"APDD",2006.18,2006.18) "BLD",3463,4,"APDD",2006.18,2006.18,250) "BLD",3463,4,"APDD",2006.18,2006.18,251) "BLD",3463,4,"APDD",2006.18,2006.18,252) "BLD",3463,4,"APDD",2006.18,2006.18,253) "BLD",3463,4,"APDD",2006.18,2006.18,254) "BLD",3463,4,"APDD",2006.18,2006.18,255) "BLD",3463,4,"APDD",2006.18,2006.18,256) "BLD",3463,4,"APDD",2006.18,2006.18,257) "BLD",3463,4,"APDD",2006.18,2006.18,258) "BLD",3463,4,"APDD",2006.18,2006.18,259) "BLD",3463,4,"APDD",2006.18,2006.18,260) "BLD",3463,4,"APDD",2006.18,2006.18,270) "BLD",3463,4,"APDD",2006.18,2006.18,271) "BLD",3463,4,"APDD",2006.18,2006.18,272) "BLD",3463,4,"APDD",2006.18,2006.18,273) "BLD",3463,4,"APDD",2006.18,2006.18,274) "BLD",3463,4,"APDD",2006.18,2006.18,275) "BLD",3463,4,"APDD",2006.18,2006.18,276) "BLD",3463,4,"APDD",2006.18,2006.18,277) "BLD",3463,4,"APDD",2006.18,2006.18,278) "BLD",3463,4,"APDD",2006.18,2006.18,279) "BLD",3463,4,"APDD",2006.18,2006.18,280) "BLD",3463,4,"APDD",2006.18,2006.18,281) "BLD",3463,4,"B",2005.002,2005.002) "BLD",3463,4,"B",2006.18,2006.18) "BLD",3463,"ABNS",0) ^9.66A^^ "BLD",3463,"ABPKG") n^n^G.IMAGING DEVELOPMENT TEAM@DOMAIN.EXT "BLD",3463,"INID") n^y^n "BLD",3463,"INIT") POST^MAGIP122 "BLD",3463,"KRN",0) ^9.67PA^8994^19 "BLD",3463,"KRN",.4,0) .4 "BLD",3463,"KRN",.4,"NM",0) ^9.68A^^ "BLD",3463,"KRN",.401,0) .401 "BLD",3463,"KRN",.401,"NM",0) ^9.68A^^ "BLD",3463,"KRN",.402,0) .402 "BLD",3463,"KRN",.402,"NM",0) ^9.68A^^ "BLD",3463,"KRN",.403,0) .403 "BLD",3463,"KRN",.5,0) .5 "BLD",3463,"KRN",.84,0) .84 "BLD",3463,"KRN",.84,"NM",0) ^9.68A^^ "BLD",3463,"KRN",3.6,0) 3.6 "BLD",3463,"KRN",3.8,0) 3.8 "BLD",3463,"KRN",9.2,0) 9.2 "BLD",3463,"KRN",9.8,0) 9.8 "BLD",3463,"KRN",9.8,"NM",0) ^9.68A^15^15 "BLD",3463,"KRN",9.8,"NM",1,0) MAGDRPC1^^0^B48033690 "BLD",3463,"KRN",9.8,"NM",2,0) MAGGA03Q^^0^B82673839 "BLD",3463,"KRN",9.8,"NM",3,0) MAGGAII^^0^B177433198 "BLD",3463,"KRN",9.8,"NM",4,0) MAGGI12^^0^B97013744 "BLD",3463,"KRN",9.8,"NM",5,0) MAGGI13^^0^B65233516 "BLD",3463,"KRN",9.8,"NM",6,0) MAGGNTI^^0^B77235042 "BLD",3463,"KRN",9.8,"NM",7,0) MAGGTPT1^^0^B51976467 "BLD",3463,"KRN",9.8,"NM",8,0) MAGGTRPT^^0^B43148529 "BLD",3463,"KRN",9.8,"NM",9,0) MAGGTU4C^^0^B5095269 "BLD",3463,"KRN",9.8,"NM",10,0) MAGGTU4D^^0^B5101074 "BLD",3463,"KRN",9.8,"NM",11,0) MAGGTU4L^^0^B5095350 "BLD",3463,"KRN",9.8,"NM",12,0) MAGGTU4T^^0^B5095422 "BLD",3463,"KRN",9.8,"NM",13,0) MAGGTUP^^0^B26333617 "BLD",3463,"KRN",9.8,"NM",14,0) MAGSANNO^^0^B90488683 "BLD",3463,"KRN",9.8,"NM",15,0) MAGSPID^^0^B3911091 "BLD",3463,"KRN",9.8,"NM","B","MAGDRPC1",1) "BLD",3463,"KRN",9.8,"NM","B","MAGGA03Q",2) "BLD",3463,"KRN",9.8,"NM","B","MAGGAII",3) "BLD",3463,"KRN",9.8,"NM","B","MAGGI12",4) "BLD",3463,"KRN",9.8,"NM","B","MAGGI13",5) "BLD",3463,"KRN",9.8,"NM","B","MAGGNTI",6) "BLD",3463,"KRN",9.8,"NM","B","MAGGTPT1",7) "BLD",3463,"KRN",9.8,"NM","B","MAGGTRPT",8) "BLD",3463,"KRN",9.8,"NM","B","MAGGTU4C",9) "BLD",3463,"KRN",9.8,"NM","B","MAGGTU4D",10) "BLD",3463,"KRN",9.8,"NM","B","MAGGTU4L",11) "BLD",3463,"KRN",9.8,"NM","B","MAGGTU4T",12) "BLD",3463,"KRN",9.8,"NM","B","MAGGTUP",13) "BLD",3463,"KRN",9.8,"NM","B","MAGSANNO",14) "BLD",3463,"KRN",9.8,"NM","B","MAGSPID",15) "BLD",3463,"KRN",19,0) 19 "BLD",3463,"KRN",19,"NM",0) ^9.68A^^ "BLD",3463,"KRN",19.1,0) 19.1 "BLD",3463,"KRN",19.1,"NM",0) ^9.68A^1^1 "BLD",3463,"KRN",19.1,"NM",1,0) MAG ANNOTATE MGR^^0 "BLD",3463,"KRN",19.1,"NM","B","MAG ANNOTATE MGR",1) "BLD",3463,"KRN",101,0) 101 "BLD",3463,"KRN",101,"NM",0) ^9.68A^^ "BLD",3463,"KRN",409.61,0) 409.61 "BLD",3463,"KRN",771,0) 771 "BLD",3463,"KRN",771,"NM",0) ^9.68A^^ "BLD",3463,"KRN",870,0) 870 "BLD",3463,"KRN",870,"NM",0) ^9.68A^^ "BLD",3463,"KRN",8989.51,0) 8989.51 "BLD",3463,"KRN",8989.51,"NM",0) ^9.68A^1^1 "BLD",3463,"KRN",8989.51,"NM",1,0) MAG IMAGE ALLOW ANNOTATE^^0 "BLD",3463,"KRN",8989.51,"NM","B","MAG IMAGE ALLOW ANNOTATE",1) "BLD",3463,"KRN",8989.52,0) 8989.52 "BLD",3463,"KRN",8994,0) 8994 "BLD",3463,"KRN",8994,"NM",0) ^9.68A^5^5 "BLD",3463,"KRN",8994,"NM",1,0) MAG ANNOT GET IMAGE^^0 "BLD",3463,"KRN",8994,"NM",2,0) MAG ANNOT GET IMAGE DETAIL^^0 "BLD",3463,"KRN",8994,"NM",3,0) MAG ANNOT IMAGE ALLOW^^0 "BLD",3463,"KRN",8994,"NM",4,0) MAG ANNOT STORE IMAGE DETAIL^^0 "BLD",3463,"KRN",8994,"NM",5,0) MAG DICOM GET AGENCY^^0 "BLD",3463,"KRN",8994,"NM","B","MAG ANNOT GET IMAGE",1) "BLD",3463,"KRN",8994,"NM","B","MAG ANNOT GET IMAGE DETAIL",2) "BLD",3463,"KRN",8994,"NM","B","MAG ANNOT IMAGE ALLOW",3) "BLD",3463,"KRN",8994,"NM","B","MAG ANNOT STORE IMAGE DETAIL",4) "BLD",3463,"KRN",8994,"NM","B","MAG DICOM GET AGENCY",5) "BLD",3463,"KRN","B",.4,.4) "BLD",3463,"KRN","B",.401,.401) "BLD",3463,"KRN","B",.402,.402) "BLD",3463,"KRN","B",.403,.403) "BLD",3463,"KRN","B",.5,.5) "BLD",3463,"KRN","B",.84,.84) "BLD",3463,"KRN","B",3.6,3.6) "BLD",3463,"KRN","B",3.8,3.8) "BLD",3463,"KRN","B",9.2,9.2) "BLD",3463,"KRN","B",9.8,9.8) "BLD",3463,"KRN","B",19,19) "BLD",3463,"KRN","B",19.1,19.1) "BLD",3463,"KRN","B",101,101) "BLD",3463,"KRN","B",409.61,409.61) "BLD",3463,"KRN","B",771,771) "BLD",3463,"KRN","B",870,870) "BLD",3463,"KRN","B",8989.51,8989.51) "BLD",3463,"KRN","B",8989.52,8989.52) "BLD",3463,"KRN","B",8994,8994) "BLD",3463,"REQB",0) ^9.611^4^4 "BLD",3463,"REQB",1,0) MAG*3.0*104^2 "BLD",3463,"REQB",2,0) MAG*3.0*108^2 "BLD",3463,"REQB",3,0) MAG*3.0*117^2 "BLD",3463,"REQB",4,0) MAG*3.0*49^2 "BLD",3463,"REQB","B","MAG*3.0*104",1) "BLD",3463,"REQB","B","MAG*3.0*108",2) "BLD",3463,"REQB","B","MAG*3.0*117",3) "BLD",3463,"REQB","B","MAG*3.0*49",4) "FIA",2005.002) IMAGING ANNOTATION "FIA",2005.002,0) ^MAG(2005.002, "FIA",2005.002,0,0) 2005.002P "FIA",2005.002,0,1) y^y^f^^^^n "FIA",2005.002,0,10) "FIA",2005.002,0,11) "FIA",2005.002,0,"RLRO") "FIA",2005.002,2005.002) 0 "FIA",2005.002,2005.0021) 0 "FIA",2005.002,2005.0022) 0 "FIA",2006.18) IMAGING USER PREFERENCE "FIA",2006.18,0) ^MAG(2006.18, "FIA",2006.18,0,0) 2006.18 "FIA",2006.18,0,1) y^n^p^^^^n^^n "FIA",2006.18,0,10) "FIA",2006.18,0,11) "FIA",2006.18,0,"RLRO") "FIA",2006.18,2006.18) 1 "FIA",2006.18,2006.18,250) "FIA",2006.18,2006.18,251) "FIA",2006.18,2006.18,252) "FIA",2006.18,2006.18,253) "FIA",2006.18,2006.18,254) "FIA",2006.18,2006.18,255) "FIA",2006.18,2006.18,256) "FIA",2006.18,2006.18,257) "FIA",2006.18,2006.18,258) "FIA",2006.18,2006.18,259) "FIA",2006.18,2006.18,260) "FIA",2006.18,2006.18,270) "FIA",2006.18,2006.18,271) "FIA",2006.18,2006.18,272) "FIA",2006.18,2006.18,273) "FIA",2006.18,2006.18,274) "FIA",2006.18,2006.18,275) "FIA",2006.18,2006.18,276) "FIA",2006.18,2006.18,277) "FIA",2006.18,2006.18,278) "FIA",2006.18,2006.18,279) "FIA",2006.18,2006.18,280) "FIA",2006.18,2006.18,281) "INIT") POST^MAGIP122 "KRN",8989.51,123457,-1) 0^1 "KRN",8989.51,123457,0) MAG IMAGE ALLOW ANNOTATE^MAG IMAGE ALLOW ANNOTATE "KRN",8989.51,123457,1) Y^^Enter 'YES' to allow annotation of an image or 'NO' to disallow. "KRN",8989.51,123457,20,0) ^8989.512^2^2^3111012^^^^ "KRN",8989.51,123457,20,1,0) This parameter controls if a user is allowed to annotate image(s) by checking "KRN",8989.51,123457,20,2,0) USER, SERVICE, DIVISION and SYSTEM Levels. "KRN",8989.51,123457,30,0) ^8989.513I^4^4 "KRN",8989.51,123457,30,1,0) 1^200 "KRN",8989.51,123457,30,2,0) 2^49 "KRN",8989.51,123457,30,3,0) 3^4 "KRN",8989.51,123457,30,4,0) 4^4.2 "KRN",19.1,123458,-1) 0^1 "KRN",19.1,123458,0) MAG ANNOTATE MGR^IMAGING ANNOTATION MANAGER "KRN",19.1,123458,1,0) ^19.11^1^1^3120420^^^^ "KRN",19.1,123458,1,1,0) This security key allows users to modify or delete annotations created by other users. "KRN",8994,123459,-1) 0^1 "KRN",8994,123459,0) MAG ANNOT GET IMAGE^GET^MAGSANNO^2^R "KRN",8994,123459,1,0) ^8994.01^35^35^3120801^^^^ "KRN",8994,123459,1,1,0) Per VHA Directive 2004-038, this should not be modified. "KRN",8994,123459,1,2,0) +---------------------------------------------------------------+ "KRN",8994,123459,1,3,0) | Property of the US Government. | "KRN",8994,123459,1,4,0) | No permission to copy or redistribute this software is given. | "KRN",8994,123459,1,5,0) | Use of unreleased versions of this software requires the user | "KRN",8994,123459,1,6,0) | to execute a written test agreement with the VistA Imaging | "KRN",8994,123459,1,7,0) | Development Office of the Department of Veterans Affairs, | "KRN",8994,123459,1,8,0) | telephone (301) 734-0100. | "KRN",8994,123459,1,9,0) | The Food and Drug Administration classifies this software as | "KRN",8994,123459,1,10,0) | a medical device. As such, it may not be changed in any way. | "KRN",8994,123459,1,11,0) | Modifications to this software may result in an adulterated | "KRN",8994,123459,1,12,0) | medical device under 21CFR820, the use of which is considered | "KRN",8994,123459,1,13,0) | to be a violation of US Federal Statutes. | "KRN",8994,123459,1,14,0) +---------------------------------------------------------------+ "KRN",8994,123459,1,15,0) RETURNS THE LIST OF IMAGE ANNOTATIONS "KRN",8994,123459,1,16,0) .MAGOUT Reference to a local variable where the results "KRN",8994,123459,1,17,0) .MAGIEN Internal Entry Number of IMAGE file being annotated "KRN",8994,123459,1,18,0) Return Values "KRN",8994,123459,1,19,0) If MAGOUT(0) is defined and its 1st '^'-piece is 0, then an error "KRN",8994,123459,1,20,0) occurred during execution of the procedure. 0^0^ ERROR explanation "KRN",8994,123459,1,21,0) MAGOUT(0) = 1 ^ COUNTER ^ MESSAGE/1childIENOK + the counter of saved annotations "KRN",8994,123459,1,22,0) MAGOUT(n) = LAYER ID ^ ANNOTATOR ^ SAVED DATE/TIME ^ ANNOTATION VERSION "KRN",8994,123459,1,23,0) ^ SOURCE ^ DELETION ^ TIU COMPLETION "KRN",8994,123459,1,24,0) ^ SERVICE/SECTION ^ SITE# ^ DUZ "KRN",8994,123459,1,25,0) Definition of each piece of MAGOUT(n) "KRN",8994,123459,1,26,0) [1] = layer ID (unique to the image, not globally unique) "KRN",8994,123459,1,27,0) [2] = name of user who saved layer "KRN",8994,123459,1,28,0) [3] = date layer stored "KRN",8994,123459,1,29,0) [4] = annotation version "KRN",8994,123459,1,30,0) [5] = application that created layer "KRN",8994,123459,1,31,0) [6] = 0/1 to indicate if layer deleted "KRN",8994,123459,1,32,0) [7] = indicates if the layer was saved after the TIU Note COMPLETE (if there is a note) "KRN",8994,123459,1,33,0) [8] = Service Section of user who saved layer "KRN",8994,123459,1,34,0) [9] = user site name "KRN",8994,123459,1,35,0) [10] = DUZ of user who saved layer "KRN",8994,123459,2,0) ^8994.02A^1^1 "KRN",8994,123459,2,1,0) IEN^1^30^1^1 "KRN",8994,123459,2,1,1,0) ^8994.021^1^1^3111017^^^ "KRN",8994,123459,2,1,1,1,0) IMAGE file (#2005) internal entry number "KRN",8994,123459,2,"B","IEN",1) "KRN",8994,123459,2,"PARAMSEQ",1,1) "KRN",8994,123459,3,0) ^8994.03^6^6^3110719^^^ "KRN",8994,123459,3,1,0) Array of information on the annotated image (IEN) "KRN",8994,123459,3,2,0) OUTPUT[0] := 0^ ERROR MESSAGE "KRN",8994,123459,3,3,0) 1^ TOTAL NUMBER OF LINES DATA "KRN",8994,123459,3,4,0) OUTPUT[1] := 1^ NAME ^DATE/TIME ^VERSION^ SOURCE ^DELETION^ TIU RESULTED ^ ANNOATOR SERVICE ^ SITE id# ^ DUZ "KRN",8994,123459,3,5,0) OUTPUT[2] := 2^ NAME ^DATE/TIME ^VERSION^ SOURCE ^DELETION^ TIU RESULTED ^ ANNOATOR SERVICE ^ SITE id# ^ DUZ "KRN",8994,123459,3,6,0) OUTPUT[n] := n^ NAME ^DATE/TIME ^VERSION^ SOURCE ^DELETION^ TIU RESULTED ^ ANNOATOR SERVICE ^ SITE id# ^ DUZ "KRN",8994,123460,-1) 0^2 "KRN",8994,123460,0) MAG ANNOT GET IMAGE DETAIL^GETD^MAGSANNO^2^R "KRN",8994,123460,1,0) ^8994.01^27^27^3120801^^^^ "KRN",8994,123460,1,1,0) Per VHA Directive 2004-038, this should not be modified. "KRN",8994,123460,1,2,0) +---------------------------------------------------------------+ "KRN",8994,123460,1,3,0) | Property of the US Government. | "KRN",8994,123460,1,4,0) | No permission to copy or redistribute this software is given. | "KRN",8994,123460,1,5,0) | Use of unreleased versions of this software requires the user | "KRN",8994,123460,1,6,0) | to execute a written test agreement with the VistA Imaging | "KRN",8994,123460,1,7,0) | Development Office of the Department of Veterans Affairs, | "KRN",8994,123460,1,8,0) | telephone (301) 734-0100. | "KRN",8994,123460,1,9,0) | The Food and Drug Administration classifies this software as | "KRN",8994,123460,1,10,0) | a medical device. As such, it may not be changed in any way. | "KRN",8994,123460,1,11,0) | Modifications to this software may result in an adulterated | "KRN",8994,123460,1,12,0) | medical device under 21CFR820, the use of which is considered | "KRN",8994,123460,1,13,0) | to be a violation of US Federal Statutes. | "KRN",8994,123460,1,14,0) +---------------------------------------------------------------+ "KRN",8994,123460,1,15,0) RETURNS THE DETAIL OF IMAGE ANNOTATIONS "KRN",8994,123460,1,16,0) GETD(MAGOUT,MAGIEN,LAYIEN) "KRN",8994,123460,1,17,0) ; .MAGOUT Reference to a local variable where the results are returned to. "KRN",8994,123460,1,18,0) ; .MAGIEN Internal entry number of IMAGE file been annotated "KRN",8994,123460,1,19,0) ; .LAYIEN Internal entry number of ANNOTATION IMAGE LAYER in #2005.002 "KRN",8994,123460,1,20,0) Return Values "KRN",8994,123460,1,21,0) ============= "KRN",8994,123460,1,22,0) If MAGOUT(0) is defined and its 1st '^'-piece is 0, then an error "KRN",8994,123460,1,23,0) occurred during execution of the procedure. 0 ^ 0 ^ error message "KRN",8994,123460,1,24,0) MAGOUT(0) = 1 ^ total count lines counter of the returned array "KRN",8994,123460,1,25,0) MAGOUT(1) = LAYER ID ^ ANNOTATOR ^ SAVED DATE/TIME ^ ANNOTATION VERSION ^ SOURCE ^ DELETION ^ TIU COMPLETION "KRN",8994,123460,1,26,0) ^ SERVICE/SECTION ^ SITE# ^ DUZ "KRN",8994,123460,1,27,0) MAGOUT(n+1) = XML data line(s) "KRN",8994,123460,2,0) ^8994.02A^2^2 "KRN",8994,123460,2,1,0) MAGIEN^1^30^1^1 "KRN",8994,123460,2,1,1,0) ^^1^1^3110705^ "KRN",8994,123460,2,1,1,1,0) Internal entry number of IMAGE file been annotated (#2005) "KRN",8994,123460,2,2,0) LAYIEN^1^10^^2 "KRN",8994,123460,2,2,1,0) ^8994.021^1^1^3111017^^^ "KRN",8994,123460,2,2,1,1,0) Internal entry number of ANNOTATION IMAGE LAYER in #2005.002 saved layer(s) "KRN",8994,123460,2,"B","LAYIEN",2) "KRN",8994,123460,2,"B","MAGIEN",1) "KRN",8994,123460,2,"PARAMSEQ",1,1) "KRN",8994,123460,2,"PARAMSEQ",2,2) "KRN",8994,123460,3,0) ^8994.03^6^6^3111017^^^ "KRN",8994,123460,3,1,0) If returned MAGOUT(0) is defined and its 1st '^'-piece is 0, then an error "KRN",8994,123460,3,2,0) has occurred during execution of the procedure. "KRN",8994,123460,3,3,0) MAGOUT(0) = 1 ^ CNT ; lines counter of the returned array "KRN",8994,123460,3,4,0) 0 ^ ERROR ; error message "KRN",8994,123460,3,5,0) MAGOUT(1) = LAYER ID ^ ANNOTATOR ^ SAVED DATE/TIME ^ ANNOTATION VERSION ^ SOURCE ^ DELETION ^ TIU RESULTED ^ ANNOATOR SERVICE ^ SITE id# ^ DUZ "KRN",8994,123460,3,6,0) MAGOUT(n+1) = XML data line(s) "KRN",8994,123461,-1) 0^3 "KRN",8994,123461,0) MAG ANNOT IMAGE ALLOW^ANOALLOW^MAGSANNO^1^R "KRN",8994,123461,1,0) ^8994.01^19^19^3120801^^^ "KRN",8994,123461,1,1,0) Per VHA Directive 2004-038, this should not be modified. "KRN",8994,123461,1,2,0) +---------------------------------------------------------------+ "KRN",8994,123461,1,3,0) | Property of the US Government. | "KRN",8994,123461,1,4,0) | No permission to copy or redistribute this software is given. | "KRN",8994,123461,1,5,0) | Use of unreleased versions of this software requires the user | "KRN",8994,123461,1,6,0) | to execute a written test agreement with the VistA Imaging | "KRN",8994,123461,1,7,0) | Development Office of the Department of Veterans Affairs, | "KRN",8994,123461,1,8,0) | telephone (301) 734-0100. | "KRN",8994,123461,1,9,0) | The Food and Drug Administration classifies this software as | "KRN",8994,123461,1,10,0) | a medical device. As such, it may not be changed in any way. | "KRN",8994,123461,1,11,0) | Modifications to this software may result in an adulterated | "KRN",8994,123461,1,12,0) | medical device under 21CFR820, the use of which is considered | "KRN",8994,123461,1,13,0) | to be a violation of US Federal Statutes. | "KRN",8994,123461,1,14,0) +---------------------------------------------------------------+ "KRN",8994,123461,1,15,0) Check for ANNOTATION feature is allowed "KRN",8994,123461,1,16,0) RPC: MAG ANNOT IMAGE ALLOW "KRN",8994,123461,1,17,0) Return Values "KRN",8994,123461,1,18,0) if error MAGRY = first "^" piece is zero when error occurs "KRN",8994,123461,1,19,0) if success MAGRY = "1^0" or "1^1" 2nd piece 0 - not allowed; 1 - allowed ; 1@ - super user "KRN",8994,123461,3,0) ^8994.03^2^2^3111017^^ "KRN",8994,123461,3,1,0) MAGRY returns a value : first "^" piece is zero when error occurs "KRN",8994,123461,3,2,0) if success MAGRY = "1^0" or "1^1" 2nd piece 0 - not allowed; 1 - allowed ; 1@ - super user "KRN",8994,123461,3,3,0) 1 ^ 0 (No) "KRN",8994,123462,-1) 0^4 "KRN",8994,123462,0) MAG ANNOT STORE IMAGE DETAIL^STORE^MAGSANNO^2^R "KRN",8994,123462,1,0) ^8994.01^27^27^3120801^^^^ "KRN",8994,123462,1,1,0) Per VHA Directive 2004-038, this should not be modified. "KRN",8994,123462,1,2,0) +---------------------------------------------------------------+ "KRN",8994,123462,1,3,0) | Property of the US Government. | "KRN",8994,123462,1,4,0) | No permission to copy or redistribute this software is given. | "KRN",8994,123462,1,5,0) | Use of unreleased versions of this software requires the user | "KRN",8994,123462,1,6,0) | to execute a written test agreement with the VistA Imaging | "KRN",8994,123462,1,7,0) | Development Office of the Department of Veterans Affairs, | "KRN",8994,123462,1,8,0) | telephone (301) 734-0100. | "KRN",8994,123462,1,9,0) | The Food and Drug Administration classifies this software as | "KRN",8994,123462,1,10,0) | a medical device. As such, it may not be changed in any way. | "KRN",8994,123462,1,11,0) | Modifications to this software may result in an adulterated | "KRN",8994,123462,1,12,0) | medical device under 21CFR820, the use of which is considered | "KRN",8994,123462,1,13,0) | to be a violation of US Federal Statutes. | "KRN",8994,123462,1,14,0) +---------------------------------------------------------------+ "KRN",8994,123462,1,15,0) Store the annotation detail/XML into the IMAGING ANOTATION file (#2005.002) "KRN",8994,123462,1,16,0) .MAGOUT Reference to a local variable where the results are returned to "KRN",8994,123462,1,17,0) .MAGIEN Internal Entry Number(IEN) of IMAGE file been annotated "KRN",8994,123462,1,18,0) .SOURCE Reference to the application XML been created by ('CLINIC' or 'VISTARAD'...etc) "KRN",8994,123462,1,19,0) .VER Reference to the annotation tool version (e.g.: IG16.2) "KRN",8994,123462,1,20,0) .XML[] Annotation raw data array "KRN",8994,123462,1,21,0) Return Values "KRN",8994,123462,1,22,0) MAGOUT(0) is defined and its 1st '^'-piece is 0, then an error "KRN",8994,123462,1,23,0) occurred during execution of the procedure. "KRN",8994,123462,1,24,0) MAGOUT(0) = 1 - success ^ total data lines ^ child IEN(optional) "KRN",8994,123462,1,25,0) 0 - error "KRN",8994,123462,1,26,0) MAGOUT(1) = Saved layer info:::LAYER ID ^ANNOTATOR ^ SAVED DATE/TIME ^ ANNOTATION VERSION ^ SOURCE ^ DELETION ^ TIU COMPLETION "KRN",8994,123462,1,27,0) ^ SERVICE/SECTION ^ SITE# ^ DUZ "KRN",8994,123462,2,0) ^8994.02A^5^5 "KRN",8994,123462,2,1,0) IEN^1^30^1^1 "KRN",8994,123462,2,1,1,0) ^8994.021^1^1^3110620^^ "KRN",8994,123462,2,1,1,1,0) IEN is the IMAGE file (#2005) internal entry number, be used to save the annotation data. "KRN",8994,123462,2,2,0) XML^3^256^1^4 "KRN",8994,123462,2,2,1,0) ^8994.021^1^1^3110719^^^^ "KRN",8994,123462,2,2,1,1,0) Annotation data in XML format "KRN",8994,123462,2,3,0) SOURCE^1^30^0^2 "KRN",8994,123462,2,3,1,0) ^^1^1^3110620^ "KRN",8994,123462,2,3,1,1,0) Source of annotation, e.g.: Clinic display/capture or VistARad "KRN",8994,123462,2,4,0) DELETION^1^3^^5 "KRN",8994,123462,2,4,1,0) ^8994.021^1^1^3110719^^^ "KRN",8994,123462,2,4,1,1,0) Annotation was deleted by super user. "KRN",8994,123462,2,5,0) VERSION^1^30^0^3 "KRN",8994,123462,2,5,1,0) ^8994.021^1^1^3111017^^ "KRN",8994,123462,2,5,1,1,0) IMAGE GEAR VERSION (TOOLS), e.g.: 'IG16.3' "KRN",8994,123462,2,"B","DELETION",4) "KRN",8994,123462,2,"B","IEN",1) "KRN",8994,123462,2,"B","SOURCE",3) "KRN",8994,123462,2,"B","VERSION",5) "KRN",8994,123462,2,"B","XML",2) "KRN",8994,123462,2,"PARAMSEQ",1,1) "KRN",8994,123462,2,"PARAMSEQ",2,2) "KRN",8994,123462,2,"PARAMSEQ",2,3) "KRN",8994,123462,2,"PARAMSEQ",3,5) "KRN",8994,123462,2,"PARAMSEQ",4,2) "KRN",8994,123462,2,"PARAMSEQ",5,4) "KRN",8994,123462,3,0) ^8994.03^2^2^3111017^^^^ "KRN",8994,123462,3,1,0) OUTPUT[0] := 1 Success or 0 - Error (w/ ^ message) "KRN",8994,123462,3,2,0) OUTPUT[1] := LAYER ID ^NAME ^DATE/TIME ^VERSION^ SOURCE ^DELETION^ TIU RESULTED ^ ANNOATOR SERVICE ^ SITE id# ^ DUZ "KRN",8994,123463,-1) 0^5 "KRN",8994,123463,0) MAG DICOM GET AGENCY^AGENCY^MAGDRPC1^1^R^0^^^3 "KRN",8994,123463,1,0) ^8994.01^16^16^3100903^^^ "KRN",8994,123463,1,1,0) Per VHA Directive 2004-038, this routine should not be modified. "KRN",8994,123463,1,2,0) +---------------------------------------------------------------+ "KRN",8994,123463,1,3,0) | Property of the US Government. | "KRN",8994,123463,1,4,0) | No permission to copy or redistribute this software is given. | "KRN",8994,123463,1,5,0) | Use of unreleased versions of this software requires the user | "KRN",8994,123463,1,6,0) | to execute a written test agreement with the VistA Imaging | "KRN",8994,123463,1,7,0) | Development Office of the Department of Veterans Affairs, | "KRN",8994,123463,1,8,0) | telephone (301) 734-0100. | "KRN",8994,123463,1,9,0) | The Food and Drug Administration classifies this software as | "KRN",8994,123463,1,10,0) | a medical device. As such, it may not be changed in any way. | "KRN",8994,123463,1,11,0) | Modifications to this software may result in an adulterated | "KRN",8994,123463,1,12,0) | medical device under 21CFR820, the use of which is considered | "KRN",8994,123463,1,13,0) | to be a violation of US Federal Statutes. | "KRN",8994,123463,1,14,0) +---------------------------------------------------------------+ "KRN",8994,123463,1,15,0) "KRN",8994,123463,1,16,0) This RPC retrieves the agency code of the VistA user. "KRN",8994,123463,3,0) ^8994.03^1^1^3100903^^^ "KRN",8994,123463,3,1,0) Get Agency code - V=VA, I=IHS "MBREQ") 0 "ORD",3,19.1) 19.1;3;1;;KEY^XPDTA1;;;KEYF2^XPDIA1;;KEYDEL^XPDIA1 "ORD",3,19.1,0) SECURITY KEY "ORD",16,8994) 8994;16;1;;;;;;;RPCDEL^XPDIA1 "ORD",16,8994,0) REMOTE PROCEDURE "ORD",20,8989.51) 8989.51;20;;;PAR1E1^XPDTA2;PAR1F1^XPDIA3;PAR1E1^XPDIA3;PAR1F2^XPDIA3;;PAR1DEL^XPDIA3(%) "ORD",20,8989.51,0) PARAMETER DEFINITION "PKG",454,-1) 1^1 "PKG",454,0) IMAGING^MAG^Imaging Release History "PKG",454,22,0) ^9.49I^1^1 "PKG",454,22,1,0) 3.0^3020328^3020328^.5 "PKG",454,22,1,"PAH",1,0) 122^3120802^.5 "PKG",454,22,1,"PAH",1,1,0) ^9.49011^22^22^3120802 "PKG",454,22,1,"PAH",1,1,1,0) Routines for Patch 122, Test Build 15. "PKG",454,22,1,"PAH",1,1,2,0) "PKG",454,22,1,"PAH",1,1,3,0) Routines: "PKG",454,22,1,"PAH",1,1,4,0) MAGDRPC1 value = 9975466 "PKG",454,22,1,"PAH",1,1,5,0) MAGGA03Q value = 11636461 "PKG",454,22,1,"PAH",1,1,6,0) MAGGAII value = 20413618 "PKG",454,22,1,"PAH",1,1,7,0) MAGGI12 value = 11845551 "PKG",454,22,1,"PAH",1,1,8,0) MAGGI13 value = 10164161 "PKG",454,22,1,"PAH",1,1,9,0) MAGGNTI value = 16354280 "PKG",454,22,1,"PAH",1,1,10,0) MAGGTPT1 value = 12237253 "PKG",454,22,1,"PAH",1,1,11,0) MAGGTRPT value = 11915258 "PKG",454,22,1,"PAH",1,1,12,0) MAGGTU4C value = 3512766 "PKG",454,22,1,"PAH",1,1,13,0) MAGGTU4D value = 3512774 "PKG",454,22,1,"PAH",1,1,14,0) MAGGTU4L value = 3512838 "PKG",454,22,1,"PAH",1,1,15,0) MAGGTU4T value = 3512902 "PKG",454,22,1,"PAH",1,1,16,0) MAGGTUP value = 8435949 "PKG",454,22,1,"PAH",1,1,17,0) MAGIP122 value = 4915830 "PKG",454,22,1,"PAH",1,1,18,0) MAGSANNO value = 18481118 "PKG",454,22,1,"PAH",1,1,19,0) MAGSPID value = 2819774 "PKG",454,22,1,"PAH",1,1,20,0) "PKG",454,22,1,"PAH",1,1,21,0) Please note that routine MAGIP122 is deleted after the KIDS Build is "PKG",454,22,1,"PAH",1,1,22,0) installed. "QUES","XPF1",0) Y "QUES","XPF1","??") ^D REP^XPDH "QUES","XPF1","A") Shall I write over your |FLAG| File "QUES","XPF1","B") YES "QUES","XPF1","M") D XPF1^XPDIQ "QUES","XPF2",0) Y "QUES","XPF2","??") ^D DTA^XPDH "QUES","XPF2","A") Want my data |FLAG| yours "QUES","XPF2","B") YES "QUES","XPF2","M") D XPF2^XPDIQ "QUES","XPI1",0) YO "QUES","XPI1","??") ^D INHIBIT^XPDH "QUES","XPI1","A") Want KIDS to INHIBIT LOGONs during the install "QUES","XPI1","B") NO "QUES","XPI1","M") D XPI1^XPDIQ "QUES","XPM1",0) PO^VA(200,:EM "QUES","XPM1","??") ^D MG^XPDH "QUES","XPM1","A") Enter the Coordinator for Mail Group '|FLAG|' "QUES","XPM1","B") "QUES","XPM1","M") D XPM1^XPDIQ "QUES","XPO1",0) Y "QUES","XPO1","??") ^D MENU^XPDH "QUES","XPO1","A") Want KIDS to Rebuild Menu Trees Upon Completion of Install "QUES","XPO1","B") NO "QUES","XPO1","M") D XPO1^XPDIQ "QUES","XPZ1",0) Y "QUES","XPZ1","??") ^D OPT^XPDH "QUES","XPZ1","A") Want to DISABLE Scheduled Options, Menu Options, and Protocols "QUES","XPZ1","B") NO "QUES","XPZ1","M") D XPZ1^XPDIQ "QUES","XPZ2",0) Y "QUES","XPZ2","??") ^D RTN^XPDH "QUES","XPZ2","A") Want to MOVE routines to other CPUs "QUES","XPZ2","B") NO "QUES","XPZ2","M") D XPZ2^XPDIQ "RTN") 16 "RTN","MAGDRPC1") 0^1^B48086720 "RTN","MAGDRPC1",1,0) MAGDRPC1 ;WOIFO/EdM,JSL - Imaging RPCs ; 27 Jul 2010 6:50 AM "RTN","MAGDRPC1",2,0) ;;3.0;IMAGING;**11,30,51,50,54,49,122**;Mar 19, 2002;Build 92;Aug 02, 2012 "RTN","MAGDRPC1",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGDRPC1",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGDRPC1",5,0) ;; | Property of the US Government. | "RTN","MAGDRPC1",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGDRPC1",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGDRPC1",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGDRPC1",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGDRPC1",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGDRPC1",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGDRPC1",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGDRPC1",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGDRPC1",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGDRPC1",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGDRPC1",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGDRPC1",17,0) ;; "RTN","MAGDRPC1",18,0) Q "RTN","MAGDRPC1",19,0) ; "RTN","MAGDRPC1",20,0) GETID(OUT,HOSTNAME) ; RPC = MAG DICOM GET MACHINE ID "RTN","MAGDRPC1",21,0) N D0,I,LO,N,UP,X "RTN","MAGDRPC1",22,0) S HOSTNAME=$TR($G(HOSTNAME),"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ") "RTN","MAGDRPC1",23,0) I HOSTNAME="" S OUT="-1,No Hostname Specified" Q "RTN","MAGDRPC1",24,0) S OUT=$O(^MAGDICOM(2006.5641,"C",HOSTNAME,"")) "RTN","MAGDRPC1",25,0) Q:OUT>0 "RTN","MAGDRPC1",26,0) L +^MAGDICOM(2006.5641,0):1E9 ; Background process MUST wait "RTN","MAGDRPC1",27,0) S D0=$O(^MAGDICOM(2006.5641," "),-1)+1 "RTN","MAGDRPC1",28,0) S ^MAGDICOM(2006.5641,D0,0)=D0_"^"_HOSTNAME_"^"_$H "RTN","MAGDRPC1",29,0) S ^MAGDICOM(2006.5641,"B",D0,D0)="" "RTN","MAGDRPC1",30,0) S ^MAGDICOM(2006.5641,"C",HOSTNAME,D0)="" "RTN","MAGDRPC1",31,0) S (N,I,D0)=0 F S D0=$O(^MAGDICOM(2006.5641,D0)) Q:'D0 S N=N+1,I=D0 "RTN","MAGDRPC1",32,0) S ^MAGDICOM(2006.5641,0)="DICOM GATEWAY MACHINE ID^2006.5641^"_I_"^"_N "RTN","MAGDRPC1",33,0) L -^MAGDICOM(2006.5641,0) "RTN","MAGDRPC1",34,0) S OUT=D0 "RTN","MAGDRPC1",35,0) Q "RTN","MAGDRPC1",36,0) ; "RTN","MAGDRPC1",37,0) DOMAIN(OUT) ; RPC = MAG DICOM GET DOMAIN "RTN","MAGDRPC1",38,0) N X "RTN","MAGDRPC1",39,0) I $T(WHERE^XUPARAM)'="" S OUT=$$KSP^XUPARAM("WHERE") Q "RTN","MAGDRPC1",40,0) ; The coding standards frown upon the line below, "RTN","MAGDRPC1",41,0) ; but it is the best we can do when the line above cannot be used. "RTN","MAGDRPC1",42,0) S X=^DD("SITE") S:X'[".DOMAIN.EXT" X=X_".DOMAIN.EXT" "RTN","MAGDRPC1",43,0) S OUT=X "RTN","MAGDRPC1",44,0) Q "RTN","MAGDRPC1",45,0) ; "RTN","MAGDRPC1",46,0) AGENCY(OUT) ; RPC = MAG DICOM GET AGENCY "RTN","MAGDRPC1",47,0) S OUT=$G(DUZ("AG")) ;P123 "RTN","MAGDRPC1",48,0) Q "RTN","MAGDRPC1",49,0) ; "RTN","MAGDRPC1",50,0) INFO(OUT,LOCATION) ; RPC = MAG DICOM ET PHONE HOME "RTN","MAGDRPC1",51,0) N FST,N,X "RTN","MAGDRPC1",52,0) K OUT "RTN","MAGDRPC1",53,0) S FST=$$FMADD^XLFDT(DT,-25) "RTN","MAGDRPC1",54,0) S N=2 "RTN","MAGDRPC1",55,0) ; "RTN","MAGDRPC1",56,0) ; Site-ID "RTN","MAGDRPC1",57,0) D DOMAIN(.X) "RTN","MAGDRPC1",58,0) S OUT(N)=X "RTN","MAGDRPC1",59,0) ; "RTN","MAGDRPC1",60,0) D ROUTEDAY^MAGDRPC2 ; Get routing statistics "RTN","MAGDRPC1",61,0) ; "RTN","MAGDRPC1",62,0) D ; Text Gateway Statistics "RTN","MAGDRPC1",63,0) . N A,C,D0,D2,M,X "RTN","MAGDRPC1",64,0) . S A=0,D0=FST F S D0=$O(^MAGDAUDT(2006.5761,D0)) Q:'D0 D "RTN","MAGDRPC1",65,0) . . S D2=0 F S D2=$O(^MAGDAUDT(2006.5761,D0,1,LOCATION,1,D2)) Q:'D2 D "RTN","MAGDRPC1",66,0) . . . S X=$G(^MAGDAUDT(2006.5761,D0,1,LOCATION,1,D2,0)) "RTN","MAGDRPC1",67,0) . . . S M=$P(X,"^",2) Q:'M "RTN","MAGDRPC1",68,0) . . . S:'A N=N+1,OUT(N)="Audit",A=1 "RTN","MAGDRPC1",69,0) . . . S N=N+1,OUT(N)="STTX="_D0_"^"_$P(X,"^",1)_"^"_M "RTN","MAGDRPC1",70,0) . . . Q "RTN","MAGDRPC1",71,0) . . Q "RTN","MAGDRPC1",72,0) . Q "RTN","MAGDRPC1",73,0) ; "RTN","MAGDRPC1",74,0) S OUT(1)=N-1 "RTN","MAGDRPC1",75,0) Q "RTN","MAGDRPC1",76,0) ; "RTN","MAGDRPC1",77,0) STATION(OUT,STATION,VERSION) ; RPC = MAG DICOM WORKSTATION VERSION "RTN","MAGDRPC1",78,0) N D0,X "RTN","MAGDRPC1",79,0) I $G(STATION)="" S OUT="-1,No Station Identifier Specified" Q "RTN","MAGDRPC1",80,0) ; "RTN","MAGDRPC1",81,0) S D0=$O(^MAG(2006.83,"B",STATION,"")) D:'D0 "RTN","MAGDRPC1",82,0) . L +^MAG(2006.83,0):1E9 ; Background process must wait for LOCK "RTN","MAGDRPC1",83,0) . S X=$G(^MAG(2006.83,0)) "RTN","MAGDRPC1",84,0) . S $P(X,"^",1,2)="DICOM WORKSTATION^2006.83" "RTN","MAGDRPC1",85,0) . S D0=$O(^MAG(2006.83," "),-1)+1 "RTN","MAGDRPC1",86,0) . S $P(X,"^",3)=D0 "RTN","MAGDRPC1",87,0) . S $P(X,"^",4)=$P(X,"^",4)+1 "RTN","MAGDRPC1",88,0) . S ^MAG(2006.83,0)=X,^MAG(2006.83,D0,0)=STATION "RTN","MAGDRPC1",89,0) . S ^MAG(2006.83,"B",STATION,D0)="" "RTN","MAGDRPC1",90,0) . L -^MAG(2006.83,0) "RTN","MAGDRPC1",91,0) . Q "RTN","MAGDRPC1",92,0) S $P(^MAG(2006.83,D0,0),"^",3)=VERSION "RTN","MAGDRPC1",93,0) S X=$P(^MAG(2006.83,D0,0),"^",2) "RTN","MAGDRPC1",94,0) S $P(^MAG(2006.83,D0,0),"^",2)=$$NOW^XLFDT() "RTN","MAGDRPC1",95,0) S OUT=D0 "RTN","MAGDRPC1",96,0) Q "RTN","MAGDRPC1",97,0) ; "RTN","MAGDRPC1",98,0) FMGET(OUT,FILE,D0,FIELD) ; RPC = MAG DICOM FILEMAN GET "RTN","MAGDRPC1",99,0) ; Get the value of a data field "RTN","MAGDRPC1",100,0) S OUT=$$GET1^DIQ(FILE,D0,FIELD) "RTN","MAGDRPC1",101,0) Q "RTN","MAGDRPC1",102,0) ; "RTN","MAGDRPC1",103,0) CUTOFF(OUT,D0) ; RPC = MAG DICOM PACS CUTOFF DATE "RTN","MAGDRPC1",104,0) ; Retention Period for PACS "RTN","MAGDRPC1",105,0) N X "RTN","MAGDRPC1",106,0) I '$$CONSOLID^MAGBAPI() D Q "RTN","MAGDRPC1",107,0) . ; Non-consolidated site "RTN","MAGDRPC1",108,0) . I '$D(^MAG(2006.1,"APACS")) S OUT="-2,No PACS Installed" Q "RTN","MAGDRPC1",109,0) . ; "RTN","MAGDRPC1",110,0) . S X=$G(^MAG(2006.1,"AIMDELPACS")) "RTN","MAGDRPC1",111,0) . I X="" S OUT="-3,PACS Retention Parameter not defined" Q "RTN","MAGDRPC1",112,0) . S OUT=X "RTN","MAGDRPC1",113,0) . Q "RTN","MAGDRPC1",114,0) ; Consolidated site: "RTN","MAGDRPC1",115,0) I '$P($G(^MAG(2006.1,D0,"PACS")),"^",1) S OUT="-2,No PACS Installed" Q "RTN","MAGDRPC1",116,0) ; "RTN","MAGDRPC1",117,0) S X=$P($G(^MAG(2006.1,D0,1)),"^",5) "RTN","MAGDRPC1",118,0) I X="" S OUT="-3,PACS Retention Parameter not defined" Q "RTN","MAGDRPC1",119,0) S OUT=X "RTN","MAGDRPC1",120,0) Q "RTN","MAGDRPC1",121,0) ; "RTN","MAGDRPC1",122,0) MINSPACE(OUT,D0) ; RPC = MAG DICOM PACS MINIMUM SPACE "RTN","MAGDRPC1",123,0) ; Minimum Percentage of Free Disk Space "RTN","MAGDRPC1",124,0) N X "RTN","MAGDRPC1",125,0) I '$$CONSOLID^MAGBAPI() D Q "RTN","MAGDRPC1",126,0) . ; Non-consolidated site "RTN","MAGDRPC1",127,0) . I '$D(^MAG(2006.1,"APACS")) S OUT="-2,No PACS Installed" Q "RTN","MAGDRPC1",128,0) . ; "RTN","MAGDRPC1",129,0) . S X=$G(^MAG(2006.1,"AIMDELPACS2")) "RTN","MAGDRPC1",130,0) . I X="" S OUT="-3,PACS Minimum Space Percentage Parameter not defined" Q "RTN","MAGDRPC1",131,0) . S OUT=X "RTN","MAGDRPC1",132,0) . Q "RTN","MAGDRPC1",133,0) ; Consolidated site: "RTN","MAGDRPC1",134,0) I '$P($G(^MAG(2006.1,D0,"PACS")),"^",1) S OUT="-2,No PACS Installed" Q "RTN","MAGDRPC1",135,0) ; "RTN","MAGDRPC1",136,0) S X=$P($G(^MAG(2006.1,D0,3)),"^",5) "RTN","MAGDRPC1",137,0) I X="" S OUT="-3,PACS Minimum Space Percentage Parameter not defined" Q "RTN","MAGDRPC1",138,0) S OUT=X "RTN","MAGDRPC1",139,0) Q "RTN","MAGDRPC1",140,0) ; "RTN","MAGDRPC1",141,0) HL7PURGE(OUT,CUTOFF) ; RPC = MAG DICOM PURGE HL7 "RTN","MAGDRPC1",142,0) ; Purge HL7 transactions "RTN","MAGDRPC1",143,0) N D,D0,P,T,X "RTN","MAGDRPC1",144,0) S OUT=0 "RTN","MAGDRPC1",145,0) S D="" F S D=$O(^MAGDHL7(2006.5,"B",D)) Q:'D Q:D'0 "RTN","MAGDRPC1",179,0) . S D0=$O(^MAG(2005.2,"D",PLACE,NAME,"")) "RTN","MAGDRPC1",180,0) . S:$P($G(^MAG(2005.2,D0,0)),"^",9) OUT=D0 "RTN","MAGDRPC1",181,0) . Q "RTN","MAGDRPC1",182,0) Q "RTN","MAGDRPC1",183,0) ; "RTN","MAGDRPC1",184,0) PAT(OUT,DFN) ; RPC = MAG DICOM GET PATIENT "RTN","MAGDRPC1",185,0) N DIQUIET,I,N,VADM,VAIN,VAPA,VASD "RTN","MAGDRPC1",186,0) K OUT "RTN","MAGDRPC1",187,0) I '$G(DFN) S OUT(1)="-1,No Patient Identified" Q "RTN","MAGDRPC1",188,0) S N=1,DIQUIET=1 "RTN","MAGDRPC1",189,0) D DEM^VADPT,VA("DEM","VADM","") D VA("ID","VA","") "RTN","MAGDRPC1",190,0) D ADD^VADPT,VA("ADD","VAPA","") "RTN","MAGDRPC1",191,0) D INP^VADPT,VA("INP","VAIN","") "RTN","MAGDRPC1",192,0) D SDA^VADPT,VA("SDA","VASD","") "RTN","MAGDRPC1",193,0) I $T(GETICN^MPIF001)'="" S X=$$GETICN^MPIF001(DFN) S:X'<0 N=N+1,OUT(N)="ICN^1^"_X "RTN","MAGDRPC1",194,0) S N=N+1,OUT(N)="Site-DFN^1^"_$P($$SITE^VASITE(),"^",3)_"-"_DFN "RTN","MAGDRPC1",195,0) ;S N=N+1,OUT(N)="Site-DFN^1^"_$E($P($$NS^XUAF4($$KSP^XUPARAM("INST")),U,2),1,3)_"-"_DFN "RTN","MAGDRPC1",196,0) S OUT(1)=N-1 "RTN","MAGDRPC1",197,0) Q "RTN","MAGDRPC1",198,0) ; "RTN","MAGDRPC1",199,0) VA(PRE,ARR,SUB) N A,I,X "RTN","MAGDRPC1",200,0) S I="" F S I=$O(@ARR@(I)) Q:I="" D "RTN","MAGDRPC1",201,0) . S A=$NAME(@ARR@(I)) "RTN","MAGDRPC1",202,0) . S X=$G(@A) S:X'="" N=N+1,OUT(N)=PRE_"^"_SUB_I_"^"_X "RTN","MAGDRPC1",203,0) . D:$D(@A)>9 VA(PRE,A,SUB_I_",") "RTN","MAGDRPC1",204,0) . Q "RTN","MAGDRPC1",205,0) Q "RTN","MAGDRPC1",206,0) ; "RTN","MAGDRPC1",207,0) RARPTO(OUT,TYPE,D0,F,D1) ; RPC = MAG DICOM GET RAD RPT INFO "RTN","MAGDRPC1",208,0) S TYPE=$G(TYPE),D0=$G(D0),F=$G(F,1),D1=+$G(D1) "RTN","MAGDRPC1",209,0) I TYPE="O1" S OUT=+$O(^RARPT(D0),F) Q "RTN","MAGDRPC1",210,0) I TYPE="O2" S OUT=+$O(^RARPT(D0,F,D1)) Q "RTN","MAGDRPC1",211,0) I TYPE="G1" S OUT=$G(^RARPT(D0,0)) Q "RTN","MAGDRPC1",212,0) I TYPE="G2" S OUT=$G(^RARPT(D0,F,D1,0)) Q "RTN","MAGDRPC1",213,0) S OUT="-1,Invalid request type ("""_TYPE_""")" "RTN","MAGDRPC1",214,0) Q "RTN","MAGDRPC1",215,0) ; "RTN","MAGDRPC1",216,0) LISTORIG(OUT) ; RPC = MAG GET DICOM XMIT ORIGIN "RTN","MAGDRPC1",217,0) N FROM,MSG,N,PRI,RTN "RTN","MAGDRPC1",218,0) S N=1,OUT(1)="No entries in transmission queue" "RTN","MAGDRPC1",219,0) S FROM="" F S FROM=$O(^MAGDOUTP(2006.574,"STS",FROM)) Q:FROM="" D "RTN","MAGDRPC1",220,0) . D GETS^DIQ(4,FROM,.01,"","RTN","MSG") "RTN","MAGDRPC1",221,0) . S N=N+1,OUT(N)=FROM_"^"_$G(RTN(4,FROM_",",.01)) "RTN","MAGDRPC1",222,0) . Q "RTN","MAGDRPC1",223,0) S:N>1 OUT(1)=N "RTN","MAGDRPC1",224,0) Q "RTN","MAGDRPC1",225,0) ; "RTN","MAGGA03Q") 0^2^B82673839 "RTN","MAGGA03Q",1,0) MAGGA03Q ;WOIFO/GEK/BNT/NST/JSL - TASK IMAGE STATISTICS ; 07 Oct 2010 9:48 PM "RTN","MAGGA03Q",2,0) ;;3.0;IMAGING;**117,122**;Mar 19, 2002;Build 92;Aug 02, 2012 "RTN","MAGGA03Q",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGGA03Q",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGGA03Q",5,0) ;; | Property of the US Government. | "RTN","MAGGA03Q",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGGA03Q",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGGA03Q",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGGA03Q",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGGA03Q",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGGA03Q",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGGA03Q",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGGA03Q",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGGA03Q",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGGA03Q",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGGA03Q",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGGA03Q",17,0) ;; "RTN","MAGGA03Q",18,0) ;P122 gek Fix the issue of not being able to Re-Run a report that "RTN","MAGGA03Q",19,0) ; was previously canceled while it was still running. "RTN","MAGGA03Q",20,0) Q "RTN","MAGGA03Q",21,0) ; "RTN","MAGGA03Q",22,0) ;***** RETURNS VARIOUS IMAGE STATISTICS DATA "RTN","MAGGA03Q",23,0) ; RPC: MAGG IMAGE STATISTICS QUE "RTN","MAGGA03Q",24,0) ; "RTN","MAGGA03Q",25,0) ; .MAGRY Reference to a local variable where the results "RTN","MAGGA03Q",26,0) ; are returned to. "RTN","MAGGA03Q",27,0) ; "RTN","MAGGA03Q",28,0) ; FLAGS Flags that control the execution (can be combined): "RTN","MAGGA03Q",29,0) ; "RTN","MAGGA03Q",30,0) ; C Capture date range. If this flag is provided, "RTN","MAGGA03Q",31,0) ; then the remote procedure uses values of the "RTN","MAGGA03Q",32,0) ; FROMDATE and TODATE parameters to select images "RTN","MAGGA03Q",33,0) ; that were captured in this date range. "RTN","MAGGA03Q",34,0) ; "RTN","MAGGA03Q",35,0) ; Otherwise, values of those parameters are "RTN","MAGGA03Q",36,0) ; treated as the date range when procedures were "RTN","MAGGA03Q",37,0) ; performed. "RTN","MAGGA03Q",38,0) ; "RTN","MAGGA03Q",39,0) ; D Include only deleted images (file #2005.1) "RTN","MAGGA03Q",40,0) ; E Include only existing images (file #2005) "RTN","MAGGA03Q",41,0) ; "RTN","MAGGA03Q",42,0) ; S Return image counts grouped by status "RTN","MAGGA03Q",43,0) ; U Return image counts grouped by users and status "RTN","MAGGA03Q",44,0) ; "RTN","MAGGA03Q",45,0) ; If neither 'E' nor 'D' flag is provided, then an "RTN","MAGGA03Q",46,0) ; error (-6) is returned. "RTN","MAGGA03Q",47,0) ; "RTN","MAGGA03Q",48,0) ; If neither 'S' nor 'U' flag is provided, then an "RTN","MAGGA03Q",49,0) ; error (-6) is returned. "RTN","MAGGA03Q",50,0) ; "RTN","MAGGA03Q",51,0) ; [FROMDATE] Date range for image selection. Dates can be in "RTN","MAGGA03Q",52,0) ; [TODATE] internal or external FileMan format. If a date "RTN","MAGGA03Q",53,0) ; parameter is not defined or empty, then the date "RTN","MAGGA03Q",54,0) ; range remains open on the corresponding side. "RTN","MAGGA03Q",55,0) ; "RTN","MAGGA03Q",56,0) ; Time parts of parameter values are ignored and both "RTN","MAGGA03Q",57,0) ; ends of the date range are included in the search. "RTN","MAGGA03Q",58,0) ; For example, in order to search images for May 21, "RTN","MAGGA03Q",59,0) ; 2008, the inernal value of both parameters should "RTN","MAGGA03Q",60,0) ; be 3080521. "RTN","MAGGA03Q",61,0) ; "RTN","MAGGA03Q",62,0) ; If the FROMDATE is after the TODATE, then values of "RTN","MAGGA03Q",63,0) ; the parameters are swapped. "RTN","MAGGA03Q",64,0) ; "RTN","MAGGA03Q",65,0) ; [MQUE] Flags for tasking reports and action on previously "RTN","MAGGA03Q",66,0) ; tasked reports. "RTN","MAGGA03Q",67,0) ; Q (Default) Queue a new report task or return the status of "RTN","MAGGA03Q",68,0) ; In Progress for a running report. If previously "RTN","MAGGA03Q",69,0) ; ran task is complete, then return report data. "RTN","MAGGA03Q",70,0) ; R Stop and Requeue a running report with the "RTN","MAGGA03Q",71,0) ; same parameters. Existing data collected is removed "RTN","MAGGA03Q",72,0) ; from temporary storage. "RTN","MAGGA03Q",73,0) ; D Stop a running or completed report and delete the data. "RTN","MAGGA03Q",74,0) ; "RTN","MAGGA03Q",75,0) ; Return Values "RTN","MAGGA03Q",76,0) ; ============= "RTN","MAGGA03Q",77,0) ; "RTN","MAGGA03Q",78,0) ; Zero value of the 1st '^'-piece of the @MAGRESULTS@(0) indicates an "RTN","MAGGA03Q",79,0) ; error during execution of the procedure. In this case, the array "RTN","MAGGA03Q",80,0) ; is formatted as described in the comments to the RPCERRS^MAGUERR1. "RTN","MAGGA03Q",81,0) ; "RTN","MAGGA03Q",82,0) ; Otherwise, the array contains the requested data. See description "RTN","MAGGA03Q",83,0) ; of the MAGG QUE IMAGE STATISTICS remote procedure for details. "RTN","MAGGA03Q",84,0) ; "RTN","MAGGA03Q",85,0) ; Notes "RTN","MAGGA03Q",86,0) ; ===== "RTN","MAGGA03Q",87,0) ; "RTN","MAGGA03Q",88,0) ; Temporary global nodes ^TMP("MAGGA03Q",$J) and ^XTMP("MAGGA03Q,DUZ") "RTN","MAGGA03Q",89,0) ; are used by this procedure. "RTN","MAGGA03Q",90,0) ; "RTN","MAGGA03Q",91,0) STATS(MAGRY,FLAGS,FROMDATE,TODATE,MQUE) ; RPC [MAGG IMAGE STATISTICS QUE] "RTN","MAGGA03Q",92,0) N MOTH,MERR,MAGXTN,MAGRES,MTDESC,X,Y,RC "RTN","MAGGA03Q",93,0) S MAGRY=$NA(^TMP("MAGGA03Q",$J)) "RTN","MAGGA03Q",94,0) K @MAGRY "RTN","MAGGA03Q",95,0) S (RC,MERR)=0 "RTN","MAGGA03Q",96,0) D CLEAR^MAGUERR(1) "RTN","MAGGA03Q",97,0) ; "RTN","MAGGA03Q",98,0) ;--- Validate FLAGS Parameters "RTN","MAGGA03Q",99,0) S FLAGS=$G(FLAGS) I $TR(FLAGS,"CDESU")'="" D IPVE^MAGUERR("FLAGS") S MERR=1 "RTN","MAGGA03Q",100,0) ;--- Missing required flag(s) "RTN","MAGGA03Q",101,0) I $TR(FLAGS,"DE")=FLAGS D ERROR^MAGUERR(-6,,"D,E") S MERR=1 "RTN","MAGGA03Q",102,0) I $TR(FLAGS,"SU")=FLAGS D ERROR^MAGUERR(-6,,"S,U") S MERR=1 "RTN","MAGGA03Q",103,0) ; "RTN","MAGGA03Q",104,0) ;--- Validate Date Range "RTN","MAGGA03Q",105,0) S:$$DTRANGE^MAGUTL03(.FROMDATE,.TODATE)<0 MERR=1 "RTN","MAGGA03Q",106,0) ; "RTN","MAGGA03Q",107,0) ;--- Validate TaskMan Queing parameters "RTN","MAGGA03Q",108,0) S MQUE=$G(MQUE) I MQUE="" S MQUE="Q" "RTN","MAGGA03Q",109,0) I $TR(MQUE,"QRD")'="" D IPVE^MAGUERR("MQUE") S MERR=1 "RTN","MAGGA03Q",110,0) ; "RTN","MAGGA03Q",111,0) ;--- Check if error occurred and quit if so "RTN","MAGGA03Q",112,0) I MERR D ERROR^MAGUERR(-30) S RC=$$FIRSTERR^MAGUERR1() "RTN","MAGGA03Q",113,0) I RC<0 D RPCERRS^MAGUERR1(.MAGRY,RC) Q "RTN","MAGGA03Q",114,0) ; "RTN","MAGGA03Q",115,0) ;--- Create unique XTMP node "RTN","MAGGA03Q",116,0) S MAGXTN=$$TNODE(FLAGS,FROMDATE,TODATE) "RTN","MAGGA03Q",117,0) ; "RTN","MAGGA03Q",118,0) ;--- Resolve previously tasked report "RTN","MAGGA03Q",119,0) I $D(^XTMP(MAGXTN,0)) D RESOLVE(.RC,MAGXTN,MQUE) "RTN","MAGGA03Q",120,0) ;--- If 1 is returned then the report is in progress "RTN","MAGGA03Q",121,0) I +RC=1 M @MAGRY@(0)=RC Q "RTN","MAGGA03Q",122,0) ;--- If 2 is returned then the report is complete and is returned "RTN","MAGGA03Q",123,0) I +RC=2 M @MAGRY@(0)=^XTMP(MAGXTN,"R",0) Q "RTN","MAGGA03Q",124,0) ; "RTN","MAGGA03Q",125,0) ;--- Create the TaskMan parameters and queue the report "RTN","MAGGA03Q",126,0) S MTDESC="Imaging Statistics: "_FLAGS_" "_FROMDATE_" to "_TODATE "RTN","MAGGA03Q",127,0) S MOTH("ZTDTH")=$H "RTN","MAGGA03Q",128,0) ; p117 T5: To enable a complete list of reports to be displayed "RTN","MAGGA03Q",129,0) ; in the Client Report list. If this "I" node isn't set, the report "RTN","MAGGA03Q",130,0) ; will not show up in list until it is run. Could be minutes. "RTN","MAGGA03Q",131,0) ; Added a new status to the Delphi Window : 'Queuing'. "RTN","MAGGA03Q",132,0) ; 'Queuing' status will account for the time between the Task being "RTN","MAGGA03Q",133,0) ; created and the job being run. The Queuing below isn't used. It "RTN","MAGGA03Q",134,0) ; is replaced with the TaskMan Task number later. "RTN","MAGGA03Q",135,0) ; Delphi uses $p(3) = '' (start time) to determine 'Queuing', and not Running. "RTN","MAGGA03Q",136,0) S ^XTMP(MAGXTN,"I",0)="Queuing"_U_$G(DUZ)_U_U "RTN","MAGGA03Q",137,0) ; "RTN","MAGGA03Q",138,0) S MAGRES=$$NODEV^XUTMDEVQ("TASK^MAGGA03Q",MTDESC,"FLAGS;FROMDATE;TODATE;MAGXTN",.MOTH) "RTN","MAGGA03Q",139,0) ;--- Save thru date ^ create date ^ Task Number "RTN","MAGGA03Q",140,0) S ^XTMP(MAGXTN,0)=$$FMADD^XLFDT(DT,1)_U_DT_U_MAGRES "RTN","MAGGA03Q",141,0) ;--- Save user cross reference node for report lookup by user "RTN","MAGGA03Q",142,0) S ^XTMP("MAGGA03Q",DUZ,MAGXTN)="" "RTN","MAGGA03Q",143,0) ;--- Return successful queued report notification with Task ID "RTN","MAGGA03Q",144,0) S @MAGRY@(0)="1^Report Queued on Task ID: "_MAGRES "RTN","MAGGA03Q",145,0) Q "RTN","MAGGA03Q",146,0) ; "RTN","MAGGA03Q",147,0) TASK ; "RTN","MAGGA03Q",148,0) N MAGXTN,MAGRES "RTN","MAGGA03Q",149,0) S MAGXTN=$$TNODE(FLAGS,FROMDATE,TODATE) "RTN","MAGGA03Q",150,0) ;--- Save Internal Data as follows "RTN","MAGGA03Q",151,0) ;--- ^XTMP($$TNODE,"I",0)=Task Number^User ID^Start Date/Time^Complete Date/Time "RTN","MAGGA03Q",152,0) S ^XTMP(MAGXTN,"I",0)=$G(ZTSK)_U_$G(DUZ)_U_$$NOW^XLFDT_U "RTN","MAGGA03Q",153,0) ;--- Collect Report Data from Imaging API "RTN","MAGGA03Q",154,0) D IMGQUERY^MAGGA03(.MAGRES,FLAGS,FROMDATE,TODATE) ; GEK BOOKMARK 1 "RTN","MAGGA03Q",155,0) ;P122 gek "RTN","MAGGA03Q",156,0) ; If the variable ZSTOP = '1', then the TASK/Report was stopped, "RTN","MAGGA03Q",157,0) ; or if the Report's User Index: ^XTMP("MAGGAO3Q",DUZ,MAGXTN) "RTN","MAGGA03Q",158,0) ; does not exist, the report was stopped. "RTN","MAGGA03Q",159,0) ; We only save report Data if report was not Stopped. "RTN","MAGGA03Q",160,0) ; This Fixes the issue of not being able to Re-Run a report that "RTN","MAGGA03Q",161,0) ; was previously canceled while it was still running. "RTN","MAGGA03Q",162,0) ; "RTN","MAGGA03Q",163,0) I '$G(ZTSTOP),($D(^XTMP("MAGGA03Q",DUZ,MAGXTN))) D "RTN","MAGGA03Q",164,0) . ;--- Save Completed date/time of Report "RTN","MAGGA03Q",165,0) . S $P(^XTMP(MAGXTN,"I",0),U,4)=$$NOW^XLFDT "RTN","MAGGA03Q",166,0) . ;--- Update the Save Through date to midnight "RTN","MAGGA03Q",167,0) . S $P(^XTMP(MAGXTN,0),U,1)=$$FMADD^XLFDT($$DT^XLFDT(),1) "RTN","MAGGA03Q",168,0) . ;--- Save Report Data in temporary storage "RTN","MAGGA03Q",169,0) . M ^XTMP(MAGXTN,"R")=@MAGRES "RTN","MAGGA03Q",170,0) . Q "RTN","MAGGA03Q",171,0) Q "RTN","MAGGA03Q",172,0) ; "RTN","MAGGA03Q",173,0) ; Returns status of existing report based on MQUE flag "RTN","MAGGA03Q",174,0) RESOLVE(RY,MAGXTN,MQUE) ; "RTN","MAGGA03Q",175,0) ; if task is finished, then return the data. "RTN","MAGGA03Q",176,0) ; Q flag will return a completed report or an In Progress status if still running "RTN","MAGGA03Q",177,0) I MQUE="Q" D Q "RTN","MAGGA03Q",178,0) . S X=$P($G(^XTMP(MAGXTN,"I",0)),U,4) "RTN","MAGGA03Q",179,0) . ;/p117 T5 gek- add $G above to stop . "RTN","MAGGA03Q",180,0) . ; Occurred rarely (pre T5) when report is Re-Run. CodeCR731 "RTN","MAGGA03Q",181,0) . I X="" S RY="1^In Progress" Q "RTN","MAGGA03Q",182,0) . S RY="2^Report Complete" "RTN","MAGGA03Q",183,0) . M @MAGRY=^XTMP(MAGXTN,"R") "RTN","MAGGA03Q",184,0) . Q "RTN","MAGGA03Q",185,0) ; R flag will Stop and Requeue a running report with same parameters "RTN","MAGGA03Q",186,0) I MQUE="R" D Q "RTN","MAGGA03Q",187,0) . N MAGSTP,ZTSK "RTN","MAGGA03Q",188,0) . S ZTSK=$$GETTASK(MAGXTN) "RTN","MAGGA03Q",189,0) . ; Try to stop the task if it's currently running "RTN","MAGGA03Q",190,0) . S MAGSTP=$$ASKSTOP^%ZTLOAD(ZTSK) "RTN","MAGGA03Q",191,0) . I 'MAGSTP S RY="1^Report cannot be stopped. Try again later" Q "RTN","MAGGA03Q",192,0) . ; "RTN","MAGGA03Q",193,0) . D STAT^%ZTLOAD "RTN","MAGGA03Q",194,0) . I 'ZTSK(0) S RY="0^Task is undefined" D Q "RTN","MAGGA03Q",195,0) . . ;Kill Report Data and Report's User Index "RTN","MAGGA03Q",196,0) . . K ^XTMP(MAGXTN),^XTMP("MAGGA03Q",DUZ,MAGXTN) "RTN","MAGGA03Q",197,0) . . S RY="0^Okay to retask" "RTN","MAGGA03Q",198,0) . . Q "RTN","MAGGA03Q",199,0) . I ZTSK(1)<3 S RY="1^Task In Progress : "_ZTSK Q "RTN","MAGGA03Q",200,0) . ;I ZTSK(1) is either 4 or 5, both mean not a running task. Inactive. problem "RTN","MAGGA03Q",201,0) . ;Kill Report Data and Report's User Index "RTN","MAGGA03Q",202,0) . K ^XTMP(MAGXTN),^XTMP("MAGGA03Q",DUZ,MAGXTN) "RTN","MAGGA03Q",203,0) . S RY="0^Okay to retask" "RTN","MAGGA03Q",204,0) . Q "RTN","MAGGA03Q",205,0) ; D flag will delete a previously ran report and stop a currently running task "RTN","MAGGA03Q",206,0) I MQUE="D" D Q "RTN","MAGGA03Q",207,0) . N MAGSTP,ZTSK "RTN","MAGGA03Q",208,0) . S ZTSK=$$GETTASK(MAGXTN) "RTN","MAGGA03Q",209,0) . S MAGSTP=$$ASKSTOP^%ZTLOAD(ZTSK) "RTN","MAGGA03Q",210,0) . I 'MAGSTP S RY="1^Report cannot be stopped. Try again later" Q "RTN","MAGGA03Q",211,0) . ;Kill Report Data and Report's User Index "RTN","MAGGA03Q",212,0) . K ^XTMP(MAGXTN),^XTMP("MAGGA03Q",DUZ,MAGXTN) "RTN","MAGGA03Q",213,0) . S RY="1^Report data deleted" "RTN","MAGGA03Q",214,0) Q "RTN","MAGGA03Q",215,0) ; "RTN","MAGGA03Q",216,0) ;***** RETURNS VARIOUS IMAGE STATISTICS DATA "RTN","MAGGA03Q",217,0) ; RPC: MAGG IMAGE STATISTICS BY USER "RTN","MAGGA03Q",218,0) ; "RTN","MAGGA03Q",219,0) ; Return all statistics reports previously tasked for a user "RTN","MAGGA03Q",220,0) ; "RTN","MAGGA03Q",221,0) ; .MAGRY Reference to a local variable where the results "RTN","MAGGA03Q",222,0) ; are returned to. "RTN","MAGGA03Q",223,0) ; "RTN","MAGGA03Q",224,0) ; MAGDUZ Internal ID of a user that has previously queued an Image Statistics "RTN","MAGGA03Q",225,0) ; Report. "RTN","MAGGA03Q",226,0) ; The default value is the current user DUZ. "RTN","MAGGA03Q",227,0) ; "RTN","MAGGA03Q",228,0) ; Return Values "RTN","MAGGA03Q",229,0) ; ============= "RTN","MAGGA03Q",230,0) ; "RTN","MAGGA03Q",231,0) ; MAGRY(0) - ^01: 1 Successful execution of the remote procedure "RTN","MAGGA03Q",232,0) ; 0 An error occurred during the execution of the remote procedure "RTN","MAGGA03Q",233,0) ; "RTN","MAGGA03Q",234,0) ; ^02: The number of reports identified for the user "RTN","MAGGA03Q",235,0) ; "RTN","MAGGA03Q",236,0) ; MAGRY(1..n) ^01: report FLAGS parameter "RTN","MAGGA03Q",237,0) ; ^02: report FROMDATE parameter "RTN","MAGGA03Q",238,0) ; ^03: report TODATE parameter "RTN","MAGGA03Q",239,0) ; ^04: report REPORT START DATE/TIME parameter "RTN","MAGGA03Q",240,0) ; ^05: report REPORT COMPLETE DATE/TIEM parameter "RTN","MAGGA03Q",241,0) ; "RTN","MAGGA03Q",242,0) ; e.g. "RTN","MAGGA03Q",243,0) ; 0)=1^5 Reports found for user IMAGING,USER "RTN","MAGGA03Q",244,0) ; 1)=CDE^2900613^3100503^3100505.09053^3100505.09053 "RTN","MAGGA03Q",245,0) ; "RTN","MAGGA03Q",246,0) GETUSRPT(MAGRY,MAGDUZ) ; RPC [MAGG IMAGE STATISTICS BY USER] "RTN","MAGGA03Q",247,0) N MAGX,MAGCNT "RTN","MAGGA03Q",248,0) N MAGINF ; XTMP node information. "RTN","MAGGA03Q",249,0) I MAGDUZ="" S MAGDUZ=DUZ "RTN","MAGGA03Q",250,0) ;--- Delete yesterdays temp data in ^XTMP "RTN","MAGGA03Q",251,0) D CLEARTMP(MAGDUZ) "RTN","MAGGA03Q",252,0) ; "RTN","MAGGA03Q",253,0) S MAGRY=$NA(^TMP("MAGGUSRPT",$J)),(MAGX,MAGCNT)=0 "RTN","MAGGA03Q",254,0) K @MAGRY "RTN","MAGGA03Q",255,0) F S MAGX=$O(^XTMP("MAGGA03Q",MAGDUZ,MAGX)) Q:MAGX="" D "RTN","MAGGA03Q",256,0) . I '$D(^XTMP(MAGX,"I",0)) Q "RTN","MAGGA03Q",257,0) . S MAGCNT=MAGCNT+1 "RTN","MAGGA03Q",258,0) . S MAGINF=$G(^XTMP(MAGX,"I",0)) "RTN","MAGGA03Q",259,0) . ; Status of 'Queuing' is now set from the Delphi App, if the start time is '' (null). "RTN","MAGGA03Q",260,0) . ; Do not change next line. Any change causes list entries to not be displayed. "RTN","MAGGA03Q",261,0) . S @MAGRY@(MAGCNT)=$P(MAGX,"-",3)_U_$P(MAGX,"-",4)_U_$P(MAGX,"-",5)_U_$P(MAGINF,U,3)_U_$P(MAGINF,U,4) "RTN","MAGGA03Q",262,0) S @MAGRY@(0)="1^"_MAGCNT_$S(MAGCNT>1:" Reports ",1:" Report ")_"found for user "_$$GET1^DIQ(200,MAGDUZ_",",.01) "RTN","MAGGA03Q",263,0) Q "RTN","MAGGA03Q",264,0) ; "RTN","MAGGA03Q",265,0) ; Get unique XTMP node "RTN","MAGGA03Q",266,0) ; Namespace + User id + Flags + From Date + To Date "RTN","MAGGA03Q",267,0) TNODE(FLAG,FROMDT,TODT) ; "RTN","MAGGA03Q",268,0) ;/p117 T5 GEK THIS IS 'maggaO3q' (LETTER 'O') It should be 'magga03q' (Zero) "RTN","MAGGA03Q",269,0) ;Q "MAGGAO3Q"_"-"_DUZ_"-"_FLAG_"-"_FROMDT_"-"_TODT ; this had letter 'o' "RTN","MAGGA03Q",270,0) Q "MAGGA03Q"_"-"_DUZ_"-"_FLAG_"-"_FROMDT_"-"_TODT ; this is Zero "RTN","MAGGA03Q",271,0) ; "RTN","MAGGA03Q",272,0) ; Returns the Task Number from XTMP global "RTN","MAGGA03Q",273,0) ; TNODE = Value created in $$TNODE "RTN","MAGGA03Q",274,0) GETTASK(TNODE) ; "RTN","MAGGA03Q",275,0) Q $S('$D(^XTMP(TNODE,0)):0,1:+$P(^XTMP(TNODE,0),U,3)) "RTN","MAGGA03Q",276,0) ; "RTN","MAGGA03Q",277,0) ; Delete temp data from yesterday "RTN","MAGGA03Q",278,0) ; "RTN","MAGGA03Q",279,0) CLEARTMP(MAGDUZ) ; Delete temp data from yesterday "RTN","MAGGA03Q",280,0) N MAGDAT,MAGXTN "RTN","MAGGA03Q",281,0) S MAGXTN="" "RTN","MAGGA03Q",282,0) F S MAGXTN=$O(^XTMP("MAGGA03Q",MAGDUZ,MAGXTN)) Q:MAGXTN="" D "RTN","MAGGA03Q",283,0) . S MAGDAT=$P($G(^XTMP(MAGXTN,0)),U,2) "RTN","MAGGA03Q",284,0) . I MAGDAT
0 Image descriptor "RTN","MAGGAII",117,0) ; ^01: Image IEN "RTN","MAGGAII",118,0) ; ^02: Image full path and name "RTN","MAGGAII",119,0) ; ^03: Abstract full path and name "RTN","MAGGAII",120,0) ; ^04: SHORT DESCRIPTION field and description of "RTN","MAGGAII",121,0) ; offline JukeBox "RTN","MAGGAII",122,0) ; ^05: PROCEDURE/EXAM DATE/TIME field "RTN","MAGGAII",123,0) ; ^06: OBJECT TYPE "RTN","MAGGAII",124,0) ; ^07: PROCEDURE field "RTN","MAGGAII",125,0) ; ^08: display date "RTN","MAGGAII",126,0) ; ^09: PARENT DATA FILE image pointer "RTN","MAGGAII",127,0) ; ^10: ABSTYPE: 'M' magnetic, 'W' worm, 'O' offline "RTN","MAGGAII",128,0) ; ^11: 'A' accessible, 'O' offline "RTN","MAGGAII",129,0) ; ^12: DICOM Series Number "RTN","MAGGAII",130,0) ; ^13: DICOM Image Number "RTN","MAGGAII",131,0) ; ^14: Count of images in group; 1 if single image "RTN","MAGGAII",132,0) ; VISN15 "RTN","MAGGAII",133,0) ; ^15: Site parameter IEN "RTN","MAGGAII",134,0) ; ^16: Site parameter CODE "RTN","MAGGAII",135,0) ; ^17: Error description of Integrity Check "RTN","MAGGAII",136,0) ; ^18: Image BIGPath and name "RTN","MAGGAII",137,0) ; ^19: Patient DFN "RTN","MAGGAII",138,0) ; ^20: Patient Name "RTN","MAGGAII",139,0) ; ^21: Image Class: Clin,Admin,Clin/Admin,Admin/Clin "RTN","MAGGAII",140,0) ; ^22: Date Time Image Saved (7) "RTN","MAGGAII",141,0) ; ^23: Document Date (110) "RTN","MAGGAII",142,0) ; ^24: Group IEN "RTN","MAGGAII",143,0) ; ^25: IEN of the 1s child of the group and child's "RTN","MAGGAII",144,0) ; type separated by colon "RTN","MAGGAII",145,0) ; ^26: RPC Broker server "RTN","MAGGAII",146,0) ; ^27: RPC Broker port "RTN","MAGGAII",147,0) ; ^28: Internal value of CONTROLLED IMAGE field (112) "RTN","MAGGAII",148,0) ; converted to a number {0|1} "RTN","MAGGAII",149,0) ; ^29: Viewable Status "RTN","MAGGAII",150,0) ; ^30: Internal value of STATUS field (113) "RTN","MAGGAII",151,0) ; ^31: Image annotated flag (0 or 1) "RTN","MAGGAII",152,0) ; ^32: Image TIU note is completed (0 or 1) "RTN","MAGGAII",153,0) ; ^33: Annotation operation Status "RTN","MAGGAII",154,0) ; ^34: Annotation operation Status Description "RTN","MAGGAII",155,0) ; ^35: Package is the package: RAD,LAB,MED,SUR,NONE,PHOTOID "RTN","MAGGAII",156,0) ; "RTN","MAGGAII",157,0) INFO(MAGIEN,FLAGS,GRPCNTS) ; "RTN","MAGGAII",158,0) N GROUP ; 1 if the entry referenced by MAGIEN is a group "RTN","MAGGAII",159,0) N GRPCH1IEN ; IEN of the first image of the group "RTN","MAGGAII",160,0) N GRPCH1NODE ; Global node of the 1st image od the group "RTN","MAGGAII",161,0) N GRPCH1TYPE ; Type of the first image of the group "RTN","MAGGAII",162,0) N GRPCHCNT ; Number of images in the group "RTN","MAGGAII",163,0) N MAGNODE ; Global node of the image referenced by MAGIEN "RTN","MAGGAII",164,0) N MAGRES ; Result value (image descriptor) "RTN","MAGGAII",165,0) ; "RTN","MAGGAII",166,0) ;N MAG3P59 ;gek/ out in P94t7 "RTN","MAGGAII",167,0) N MAGMSG,MAGN0,MAGN100,MAGN2,MAGN40,MAGJBOL "RTN","MAGGAII",168,0) N MAGVST,MDFN,IEN,PLC,PLCODE,RC,TMP,X,ANNOTATED,TMPN2 "RTN","MAGGAII",169,0) ; "RTN","MAGGAII",170,0) ;=== Validate control flags "RTN","MAGGAII",171,0) S FLAGS=$G(FLAGS) "RTN","MAGGAII",172,0) ;--- Unknown/Unsupported flag(s) "RTN","MAGGAII",173,0) Q:$TR(FLAGS,"DE")'="" $$IPVE^MAGUERR("FLAGS") "RTN","MAGGAII",174,0) ;--- Missing required flag "RTN","MAGGAII",175,0) Q:$TR(FLAGS,"DE")=FLAGS $$ERROR^MAGUERR(-6,,"D,E") "RTN","MAGGAII",176,0) ; "RTN","MAGGAII",177,0) ;=== Get the global node of the record "RTN","MAGGAII",178,0) S MAGNODE=$$NODE^MAGGI11(MAGIEN) "RTN","MAGGAII",179,0) ; "RTN","MAGGAII",180,0) ;=== Initialize variables "RTN","MAGGAII",181,0) S MAGRES=MAGIEN,RC=0 "RTN","MAGGAII",182,0) ;gek/ out in P94t7 S MAG3P59=$D(MAGJOB("RPCSERVER"))&$D(MAGJOB("RPCPORT")) "RTN","MAGGAII",183,0) D:'$D(MAGJOB("NETPLC")) NETPLCS^MAGGTU6 "RTN","MAGGAII",184,0) I MAGNODE'="" D "RTN","MAGGAII",185,0) . S MAGN0=$G(@MAGNODE@(0)),MAGN2=$G(@MAGNODE@(2)) "RTN","MAGGAII",186,0) . S MAGN40=$G(@MAGNODE@(40)),MAGN100=$G(@MAGNODE@(100)) "RTN","MAGGAII",187,0) E S (MAGN0,MAGN2,MAGN40,MAGN100)="" "RTN","MAGGAII",188,0) ; "RTN","MAGGAII",189,0) ;=== Cache patient names; call $$GET 1 time not 2000 "RTN","MAGGAII",190,0) S MDFN=$P(MAGN0,U,7) ; PATIENT (5) "RTN","MAGGAII",191,0) I MDFN,'$D(MAGJOB("PTNM",MDFN)) D "RTN","MAGGAII",192,0) . S MAGJOB("PTNM",MDFN)=$$GET1^DIQ(2,MDFN_",",.01) "RTN","MAGGAII",193,0) . ;--- Cache no more than 10 records in the MAGJOB("PTNM") "RTN","MAGGAII",194,0) . S TMP=+$P($G(MAGJOB("PTNM")),U,10) "RTN","MAGGAII",195,0) . S MAGJOB("PTNM")=MDFN_U_$P($G(MAGJOB("PTNM")),U,1,9) "RTN","MAGGAII",196,0) . K:TMP>0 MAGJOB("PTNM",TMP) "RTN","MAGGAII",197,0) . Q "RTN","MAGGAII",198,0) ; "RTN","MAGGAII",199,0) ;=== Process the group header "RTN","MAGGAII",200,0) S GRPCHCNT=0,(GRPCH1IEN,GRPCH1NODE,GRPCH1TYPE)="" "RTN","MAGGAII",201,0) ;--- Count the images of the group "RTN","MAGGAII",202,0) S:$G(GRPCNTS)="" GRPCNTS=$$GRPCT^MAGGI14(MAGIEN) "RTN","MAGGAII",203,0) D:GRPCNTS'<0 "RTN","MAGGAII",204,0) . S:FLAGS["E" GRPCHCNT=GRPCHCNT+$P(GRPCNTS,U,1) ; Existing entries "RTN","MAGGAII",205,0) . S:FLAGS["D" GRPCHCNT=GRPCHCNT+$P(GRPCNTS,U,2) ; Deleted entries "RTN","MAGGAII",206,0) . Q "RTN","MAGGAII",207,0) ;--- Check the object type "RTN","MAGGAII",208,0) S GROUP=$$ISGRP^MAGGI11(MAGIEN) "RTN","MAGGAII",209,0) I GROUP D "RTN","MAGGAII",210,0) . ;--- Get the IEN of the first image of the group "RTN","MAGGAII",211,0) . S GRPCH1IEN=$$GRPCH1^MAGGI14(MAGIEN,FLAGS) "RTN","MAGGAII",212,0) . I GRPCH1IEN'>0 S GRPCH1IEN="" Q "RTN","MAGGAII",213,0) . ;--- If we cannot get the global node of the 1st image of the "RTN","MAGGAII",214,0) . ;--- group (this should never happen) clear its IEN as well. "RTN","MAGGAII",215,0) . S GRPCH1NODE=$$NODE^MAGGI11(GRPCH1IEN,.TMP) "RTN","MAGGAII",216,0) . I GRPCH1NODE="" S GRPCH1IEN="" Q "RTN","MAGGAII",217,0) . ;--- Get the type of the first image of the group "RTN","MAGGAII",218,0) . S GRPCH1TYPE=$P(@GRPCH1NODE@(0),U,6) "RTN","MAGGAII",219,0) . Q "RTN","MAGGAII",220,0) ;--- Check the annotation info "RTN","MAGGAII",221,0) S ANNOTATED=+$P($G(^MAG(2005.002,MAGIEN,1,0)),U,4) ;p122 - add IMAGE annotated flag "RTN","MAGGAII",222,0) I 'ANNOTATED I $D(^MAG(2005,MAGIEN,210,0)) S ANNOTATED=1 ;VistARad annotation #2005.001/PS data #2005.05 "RTN","MAGGAII",223,0) I 'ANNOTATED I GROUP!$D(^MAG(2005,MAGIEN,1,0)) D ;p122 - find any child w/ annotation "RTN","MAGGAII",224,0) . N NO,CH S NO=0 "RTN","MAGGAII",225,0) . F S NO=$O(^MAG(2005,MAGIEN,1,NO)) Q:'NO S CH=+$G(^(NO,0)) S:CH ANNOTATED=+$P($G(^MAG(2005.002,CH,1,0)),U,4) S:$D(^MAG(2005,CH,210,0)) ANNOTATED=1 Q:ANNOTATED "RTN","MAGGAII",226,0) . Q "RTN","MAGGAII",227,0) S:ANNOTATED ANNOTATED=1 "RTN","MAGGAII",228,0) ;=== If this is a group and it is not empty, then use "RTN","MAGGAII",229,0) ; the first image to get the names of image files. "RTN","MAGGAII",230,0) ;=== Otherwise, get them from the group header itself. "RTN","MAGGAII",231,0) S IEN=$S(GRPCH1IEN>0:GRPCH1IEN,1:MAGIEN) "RTN","MAGGAII",232,0) ;--- Get full path and file name of the Abstract. "RTN","MAGGAII",233,0) S $P(MAGRES,U,3)=$$FILENAME(IEN,"ABSTRACT",.TMP,.MAGJBOL) "RTN","MAGGAII",234,0) S $P(MAGRES,U,10)=TMP ; Abstract type ('M', 'O', or 'W') "RTN","MAGGAII",235,0) ;--- Get the full path and file name of the FULL RES image. "RTN","MAGGAII",236,0) S $P(MAGRES,U,2)=$$FILENAME(IEN,"FULL",.TMP) "RTN","MAGGAII",237,0) S $P(MAGRES,U,11)=TMP ; 'A' - accessible, 'O' - offline "RTN","MAGGAII",238,0) ;--- Get the full path and file name for the BIG image. "RTN","MAGGAII",239,0) S $P(MAGRES,U,18)=$$FILENAME(IEN,"BIG") "RTN","MAGGAII",240,0) ; "RTN","MAGGAII",241,0) ;=== Get the site parameters IEN and code "RTN","MAGGAII",242,0) S IEN=0 "RTN","MAGGAII",243,0) I 'GROUP D "RTN","MAGGAII",244,0) . ;--- If the record is a standalone image entry, then "RTN","MAGGAII",245,0) . ;--- get the location IEN from this entry. "RTN","MAGGAII",246,0) . S IEN=+$S($P(MAGN0,U,3):$P(MAGN0,U,3),1:$P(MAGN0,U,5)) "RTN","MAGGAII",247,0) . Q "RTN","MAGGAII",248,0) E I GRPCH1NODE'="" D "RTN","MAGGAII",249,0) . ;--- If the group references "child" entries of requested kind(s), "RTN","MAGGAII",250,0) . ;--- then get the network location IEN from the 1st one. "RTN","MAGGAII",251,0) . S TMP=$G(@GRPCH1NODE@(0)) "RTN","MAGGAII",252,0) . S IEN=+$S($P(TMP,U,3):$P(TMP,U,3),1:$P(TMP,U,5)) "RTN","MAGGAII",253,0) . Q "RTN","MAGGAII",254,0) E I (FLAGS'["D")!(FLAGS'["E") D "RTN","MAGGAII",255,0) . ;--- Otherwise, try to get the location IEN from the 1st "child" "RTN","MAGGAII",256,0) . ;--- image regardless of the requested kind (existing or deleted). "RTN","MAGGAII",257,0) . N CH1IEN,CH1NODE "RTN","MAGGAII",258,0) . S CH1IEN=$$GRPCH1^MAGGI14(MAGIEN,"DE") Q:CH1IEN'>0 "RTN","MAGGAII",259,0) . S CH1NODE=$$NODE^MAGGI11(CH1IEN) Q:CH1NODE="" "RTN","MAGGAII",260,0) . S TMP=$G(@CH1NODE@(0)) "RTN","MAGGAII",261,0) . S IEN=+$S($P(TMP,U,3):$P(TMP,U,3),1:$P(TMP,U,5)) "RTN","MAGGAII",262,0) . Q "RTN","MAGGAII",263,0) S PLC=$P($G(MAGJOB("NETPLC",IEN)),U,1) ; Site Parameters IEN "RTN","MAGGAII",264,0) S PLCODE=$P($G(MAGJOB("NETPLC",IEN)),U,2) ; Site Code (e.g. "WAS") "RTN","MAGGAII",265,0) ;--- Groups of 0 images need this "RTN","MAGGAII",266,0) S:PLC="" PLC=$G(MAGJOB("PLC")),PLCODE=$G(MAGJOB("PLCODE")) "RTN","MAGGAII",267,0) ; "RTN","MAGGAII",268,0) ;=== SHORT DESCRIPTION field (10) and description of offline JukeBox "RTN","MAGGAII",269,0) S $P(MAGRES,U,4)=$P(MAGN2,U,4)_$G(MAGJBOL) "RTN","MAGGAII",270,0) ; "RTN","MAGGAII",271,0) ;=== Various fields "RTN","MAGGAII",272,0) S $P(MAGRES,U,5)=$P(MAGN2,U,5) ; PROCEDURE/EXAM DATE/TIME (15) "RTN","MAGGAII",273,0) S $P(MAGRES,U,6)=$P(MAGN0,U,6) ; OBJECT TYPE (3) "RTN","MAGGAII",274,0) S $P(MAGRES,U,7)=$P(MAGN0,U,8) ; PROCEDURE (6) "RTN","MAGGAII",275,0) S $P(MAGRES,U,8)=$$DTE($P(MAGN2,U,5)) ; Ext. PROCEDURE/EXAM DATE/TIME "RTN","MAGGAII",276,0) S $P(MAGRES,U,9)=$P(MAGN2,U,8) ; PARENT DATA FILE IMAGE POINTER (18) "RTN","MAGGAII",277,0) ; "RTN","MAGGAII",278,0) ;=== 2/1/99 Dicom Series number and Dicom Image Number "RTN","MAGGAII",279,0) ; $p(12) and $p(13) "RTN","MAGGAII",280,0) ; "RTN","MAGGAII",281,0) ;=== Number of images of requested kind in the group "RTN","MAGGAII",282,0) S $P(MAGRES,U,14)=$S(GRPCHCNT>0:GRPCHCNT,1:1) "RTN","MAGGAII",283,0) ; "RTN","MAGGAII",284,0) ;=== Site IEN and code "RTN","MAGGAII",285,0) S $P(MAGRES,U,15,16)=PLC_U_PLCODE "RTN","MAGGAII",286,0) ; "RTN","MAGGAII",287,0) ;=== Data integrity checks "RTN","MAGGAII",288,0) S TMP=$S('$G(MAGNOCHK):"Q",1:"") "RTN","MAGGAII",289,0) S MAGVST=$$VIEWSTAT^MAGGI12(MAGIEN,TMP,.MAGMSG) "RTN","MAGGAII",290,0) ;;W !,"MAGVST : ",$G(MAGVST) ; TESTING, TAKE OUT THIS LINE. "RTN","MAGGAII",291,0) I MAGVST["Q" D "RTN","MAGGAII",292,0) . ;--- Remove the file name of the full resolution image "RTN","MAGGAII",293,0) . S $P(MAGRES,U,2)="-1~Questionable Data Integrity" "RTN","MAGGAII",294,0) . ;--- Replace the Abstract with the special bitmap "RTN","MAGGAII",295,0) . S $P(MAGRES,U,3)=".\bmp\imageQA.bmp" "RTN","MAGGAII",296,0) . ;--- Prevent the client from changing the Questionable "RTN","MAGGAII",297,0) . ;--- Integrity abstract bitmap to the Offline bitmap. "RTN","MAGGAII",298,0) . S:$P(MAGRES,U,6)'=11 $P(MAGRES,U,6)=99 "RTN","MAGGAII",299,0) . S $P(MAGRES,U,10)="M" "RTN","MAGGAII",300,0) . ;--- Return the error message "RTN","MAGGAII",301,0) . S $P(MAGRES,U,17)=MAGMSG("Q") "RTN","MAGGAII",302,0) . Q "RTN","MAGGAII",303,0) ; "RTN","MAGGAII",304,0) ;=== Various fields "RTN","MAGGAII",305,0) S $P(MAGRES,U,19)=MDFN ; Patient IEN (DFN) "RTN","MAGGAII",306,0) S $P(MAGRES,U,20)=$S(MDFN:MAGJOB("PTNM",MDFN),1:MDFN) "RTN","MAGGAII",307,0) S $P(MAGRES,U,22)=$$DTE($P(MAGN2,U)) ; DATE/TIME IMAGE SAVED (7) "RTN","MAGGAII",308,0) S $P(MAGRES,U,23)=$$DTE($P(MAGN100,U,6)) ; CREATION DATE (110) "RTN","MAGGAII",309,0) ; "RTN","MAGGAII",310,0) ;=== Name of the image class "RTN","MAGGAII",311,0) S IEN=+$P(MAGN40,U,3) ; TYPE INDEX (42) "RTN","MAGGAII",312,0) S:IEN>0 $P(MAGRES,U,21)=$$GET1^DIQ(2005.83,IEN_",",1,,,"MAGMSG") "RTN","MAGGAII",313,0) ; "RTN","MAGGAII",314,0) ;=== If the client is newer than patch 59, then we can set beyond "RTN","MAGGAII",315,0) ; 25 pieces. Additional "^" at the end of the result prevents "RTN","MAGGAII",316,0) ;=== problems on the client side. "RTN","MAGGAII",317,0) D ;gek/ out in P94t7 I MAG3P59 D "RTN","MAGGAII",318,0) . S $P(MAGRES,U,24)=$P(MAGN0,U,10) ; GROUP PARENT (14) "RTN","MAGGAII",319,0) . S:GRPCHCNT>1 $P(MAGRES,U,25)=GRPCH1IEN_":"_GRPCH1TYPE "RTN","MAGGAII",320,0) . S $P(MAGRES,U,26)=$G(MAGJOB("RPCSERVER")) ; GEK P94 put in $G "RTN","MAGGAII",321,0) . S $P(MAGRES,U,27)=$G(MAGJOB("RPCPORT")) ; GEK P94 put in $G "RTN","MAGGAII",322,0) . S TMP=+$P(MAGN100,U,7) ; CONTROLLED IMAGE (112) "RTN","MAGGAII",323,0) . S $P(MAGRES,U,28)=TMP "RTN","MAGGAII",324,0) . S:TMP $P(MAGRES,U,3)=".\bmp\magsensitive.bmp" "RTN","MAGGAII",325,0) . S TMP=+$P(MAGN100,U,8) ; STATUS (113) "RTN","MAGGAII",326,0) . S $P(MAGRES,U,29)=$$VSTCODE(MAGVST,TMP) "RTN","MAGGAII",327,0) . S $P(MAGRES,U,30)=TMP "RTN","MAGGAII",328,0) . ; patch 122 new data pieces (31-35) for annotation. "RTN","MAGGAII",329,0) . S $P(MAGRES,U,31)=$G(ANNOTATED) ;IMAGE annotated "RTN","MAGGAII",330,0) . S TMP="" "RTN","MAGGAII",331,0) . ; if it is a child of a Group, the Parent data is in the Group. "RTN","MAGGAII",332,0) . S TMPN2=MAGN2 I $P(MAGN0,U,10) S TMPN2=$G(^MAG(2005,$P(MAGN0,U,10),2)) "RTN","MAGGAII",333,0) . I $P(TMPN2,U,6)=8925 D DATA^MAGGNTI(.TMP,$P(TMPN2,U,7)) S TMP=$P(TMP,U,6) "RTN","MAGGAII",334,0) . S $P(MAGRES,U,32)=$S(TMP="":"",TMP="COMPLETED":1,1:0) ; if TIU check Note status "RTN","MAGGAII",335,0) . S TMP="" ; use TMP to return Description. "RTN","MAGGAII",336,0) . S $P(MAGRES,U,33)=$$ANNSTAT^MAGGI12(MAGIEN,$P(MAGRES,U,29),.TMP) ;Annotation Status "RTN","MAGGAII",337,0) . S $P(MAGRES,U,34)=TMP ; This is Desc of Annotation Status "RTN","MAGGAII",338,0) . S $P(MAGRES,U,35)=$P(MAGN40,U,1) ;the package RAD,LAB,MED,SUR...etc "RTN","MAGGAII",339,0) . S $P(MAGRES,U,36)="" ; This forces "^" to be last character in string. "RTN","MAGGAII",340,0) . Q:GRPCH1NODE="" "RTN","MAGGAII",341,0) . ;--- If the group header is not marked as controlled but the 1st "RTN","MAGGAII",342,0) . ; image is, override the sensitivity flag so that the image "RTN","MAGGAII",343,0) . ;--- abstract is not shown in the image list. "RTN","MAGGAII",344,0) . I '$P(MAGRES,U,28) D:$P($G(@GRPCH1NODE@(100)),U,7) "RTN","MAGGAII",345,0) . . S $P(MAGRES,U,28)=1,$P(MAGRES,U,3)=".\bmp\magsensitive.bmp" "RTN","MAGGAII",346,0) . . Q "RTN","MAGGAII",347,0) . Q "RTN","MAGGAII",348,0) ;gek/ out in P94t7 E S $P(MAGRES,U,25)="" "RTN","MAGGAII",349,0) ; "RTN","MAGGAII",350,0) ;=== Stop displaying a group of 1 as a group "RTN","MAGGAII",351,0) I GROUP,GRPCHCNT=1 D "RTN","MAGGAII",352,0) . N CH1N100,CH1VST "RTN","MAGGAII",353,0) . S $P(MAGRES,U,1)=GRPCH1IEN ; IEN of the 1st image of the group "RTN","MAGGAII",354,0) . S $P(MAGRES,U,6)=GRPCH1TYPE ; OBJECT TYPE (3) of the 1st image "RTN","MAGGAII",355,0) . ;gek/ out in P94t7 Q:'MAG3P59 "RTN","MAGGAII",356,0) . ;--- Get the viewable status of the 1st "child" "RTN","MAGGAII",357,0) . S TMP=$S('$G(MAGNOCHK):"Q",1:"") "RTN","MAGGAII",358,0) . S CH1VST=$$VIEWSTAT^MAGGI12(GRPCH1IEN,TMP) "RTN","MAGGAII",359,0) . ;--- Get the image status of the 1st "child" "RTN","MAGGAII",360,0) . S CH1N100=$S(GRPCH1NODE'="":$G(@GRPCH1NODE@(100)),1:"") "RTN","MAGGAII",361,0) . S TMP=+$P(CH1N100,U,8) ; STATUS (113) "RTN","MAGGAII",362,0) . ;--- Override the group's values with those of Child 1 "RTN","MAGGAII",363,0) . S $P(MAGRES,U,29)=$$VSTCODE(CH1VST,TMP) ; numeric code of 'View Status' "RTN","MAGGAII",364,0) . S $P(MAGRES,U,30)=TMP ; Status "RTN","MAGGAII",365,0) . ; ANNOTATED due to only child was annotated "RTN","MAGGAII",366,0) . S $P(MAGRES,U,31)=$G(ANNOTATED,0) ; IMAGE been annotated "RTN","MAGGAII",367,0) . ; Don't change to Child for Report Parent info. "RTN","MAGGAII",368,0) . ; Parent Data values are stored in '2' node of the Group. "RTN","MAGGAII",369,0) . S TMP="" "RTN","MAGGAII",370,0) . I $P(MAGN2,U,6)=8925 D DATA^MAGGNTI(.TMP,$P(MAGN2,U,7)) S TMP=$P(TMP,U,6) "RTN","MAGGAII",371,0) . S $P(MAGRES,U,32)=$S(TMP="COMPLETED":1,1:0) "RTN","MAGGAII",372,0) . ; Now need to change the Annotation Status, cause change in 'View Status' "RTN","MAGGAII",373,0) . S TMP="" ; use TMP to return Description. "RTN","MAGGAII",374,0) . S $P(MAGRES,U,33)=$$ANNSTAT^MAGGI12(GRPCH1IEN,$P(MAGRES,U,29),.TMP) ;Annotation Status "RTN","MAGGAII",375,0) . S $P(MAGRES,U,34)=TMP ; Annotation Status Description. "RTN","MAGGAII",376,0) . ; $P(35) is package RAD,LAB,SUR,MED,NOTE etc defined in Group and Child. "RTN","MAGGAII",377,0) . Q "RTN","MAGGAII",378,0) ; "RTN","MAGGAII",379,0) ;=== "RTN","MAGGAII",380,0) Q MAGRES "RTN","MAGGAII",381,0) ; "RTN","MAGGAII",382,0) ;+++++ CONVERTS THE VIEWABLE STATUS TO THE NUMERIC CODE "RTN","MAGGAII",383,0) VSTCODE(VST,STATUS) ; "RTN","MAGGAII",384,0) Q $S(VST["D":12,VST["Q":21,VST["T":22,VST["R":23,1:+STATUS) "RTN","MAGGI12") 0^4^B97013744 "RTN","MAGGI12",1,0) MAGGI12 ;WOIFO/GEK/SG/JSL - IMAGE FILE API (PROPERTIES) ; 1/13/09 11:20am "RTN","MAGGI12",2,0) ;;3.0;IMAGING;**93,94,122**;Mar 19, 2002;Build 92;Aug 02, 2012 "RTN","MAGGI12",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGGI12",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGGI12",5,0) ;; | Property of the US Government. | "RTN","MAGGI12",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGGI12",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGGI12",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGGI12",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGGI12",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGGI12",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGGI12",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGGI12",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGGI12",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGGI12",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGGI12",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGGI12",17,0) ;; "RTN","MAGGI12",18,0) Q "RTN","MAGGI12",19,0) ; "RTN","MAGGI12",20,0) ;##### RETURNS IEN OF THE GROUP PARENT FOR THE IMAGE "RTN","MAGGI12",21,0) ; "RTN","MAGGI12",22,0) ; IEN Internal Entry Number of the image record "RTN","MAGGI12",23,0) ; "RTN","MAGGI12",24,0) ; Return Values "RTN","MAGGI12",25,0) ; ============= "RTN","MAGGI12",26,0) ; <0 Error descriptor (see the $$ERROR^MAGUERR) "RTN","MAGGI12",27,0) ; 0 Image is not a member of a group "RTN","MAGGI12",28,0) ; >0 IEN of the group parent "RTN","MAGGI12",29,0) ; "RTN","MAGGI12",30,0) ; Notes "RTN","MAGGI12",31,0) ; ===== "RTN","MAGGI12",32,0) ; "RTN","MAGGI12",33,0) ; For a deleted image, the function returns the IEN of the group "RTN","MAGGI12",34,0) ; that the image belonged to before it was marked as deleted. "RTN","MAGGI12",35,0) ; "RTN","MAGGI12",36,0) GRPIEN(IEN) ; Returns IEN of the Group parent for the Image. "RTN","MAGGI12",37,0) N ERR,NODE "RTN","MAGGI12",38,0) S NODE=$$NODE^MAGGI11(IEN,.ERR) "RTN","MAGGI12",39,0) I NODE="" D STORE^MAGUERR(ERR) Q ERR "RTN","MAGGI12",40,0) Q +$P($G(@NODE@(0)),U,10) ; GROUP PARENT (14) "RTN","MAGGI12",41,0) ; "RTN","MAGGI12",42,0) ;##### ALLOCATES A NEW RECORD IN THE IMAGE FILE (#2005) AND LOCKS IT "RTN","MAGGI12",43,0) ; "RTN","MAGGI12",44,0) ; Return Values "RTN","MAGGI12",45,0) ; ============= "RTN","MAGGI12",46,0) ; >0 IEN for the new record in the IMAGE file (#2005) "RTN","MAGGI12",47,0) ; "RTN","MAGGI12",48,0) ; Notes "RTN","MAGGI12",49,0) ; ===== "RTN","MAGGI12",50,0) ; "RTN","MAGGI12",51,0) ; The placeholder for the new record (^MAG(2005,IEN) node) is LOCKed "RTN","MAGGI12",52,0) ; by this function. It is responsibility of the caller to unlock the "RTN","MAGGI12",53,0) ; record after it is created or the record creation is canceled. "RTN","MAGGI12",54,0) ; "RTN","MAGGI12",55,0) NEWIEN() ; "RTN","MAGGI12",56,0) N DIEN,IEN,NEWIEN,NODE "RTN","MAGGI12",57,0) S NEWIEN=0 "RTN","MAGGI12",58,0) ;--- "RTN","MAGGI12",59,0) F D Q:NEWIEN "RTN","MAGGI12",60,0) . S IEN=$O(^MAG(2005," "),-1)+1 "RTN","MAGGI12",61,0) . ;--- Check the IMAGE AUDIT file for a deleted image "RTN","MAGGI12",62,0) . S DIEN=$O(^MAG(2005.1," "),-1)+1 "RTN","MAGGI12",63,0) . S:DIEN>IEN IEN=DIEN "RTN","MAGGI12",64,0) . ;--- If the record already exists, skip it "RTN","MAGGI12",65,0) . S NODE=$NA(^MAG(2005,IEN)) Q:$D(@NODE) "RTN","MAGGI12",66,0) . ;--- Lock the placeholder in order to make sure that nobody "RTN","MAGGI12",67,0) . ;--- else is trying to allocate it at the same time. "RTN","MAGGI12",68,0) . D LOCK^DILF(NODE) E Q "RTN","MAGGI12",69,0) . ;--- Double check that the record has not been created after the "RTN","MAGGI12",70,0) . ;--- previous $D() check and the LOCK command (a race condition) "RTN","MAGGI12",71,0) . I $D(@NODE) L -@NODE Q "RTN","MAGGI12",72,0) . ;--- Success "RTN","MAGGI12",73,0) . S NEWIEN=IEN "RTN","MAGGI12",74,0) . Q "RTN","MAGGI12",75,0) ;--- "RTN","MAGGI12",76,0) Q NEWIEN "RTN","MAGGI12",77,0) ; "RTN","MAGGI12",78,0) ;##### RETURNS THE PARENT DATA (SUB)FILE REFERENCE "RTN","MAGGI12",79,0) ; "RTN","MAGGI12",80,0) ; IEN Internal Entry Number of the image record "RTN","MAGGI12",81,0) ; "RTN","MAGGI12",82,0) ; Return Values "RTN","MAGGI12",83,0) ; ============= "RTN","MAGGI12",84,0) ; <0 Error descriptor (see the $$ERROR^MAGUERR) "RTN","MAGGI12",85,0) ; 0 Image does not have a parent file reference "RTN","MAGGI12",86,0) ; >0 Parent data file reference (file/subfile number and "RTN","MAGGI12",87,0) ; IEN in the PARENT DATA FILE file (#2005.03) at the "RTN","MAGGI12",88,0) ; same time). "RTN","MAGGI12",89,0) ; "RTN","MAGGI12",90,0) PARFILE(IEN) ; "RTN","MAGGI12",91,0) N ERR,NODE,PARENTFILE,PFN0 "RTN","MAGGI12",92,0) S NODE=$$NODE^MAGGI11(IEN,.ERR) "RTN","MAGGI12",93,0) I NODE="" D STORE^MAGUERR(ERR) Q ERR "RTN","MAGGI12",94,0) ;--- Check if the image record has a parent data file reference "RTN","MAGGI12",95,0) S PARENTFILE=$P($G(@NODE@(2)),U,6) ; PARENT DATA FILE# (16) "RTN","MAGGI12",96,0) Q:PARENTFILE="" 0 "RTN","MAGGI12",97,0) ;--- Check if the pointer to the PARENT DATA FILE "RTN","MAGGI12",98,0) ;--- file (#2005.03) is valid "RTN","MAGGI12",99,0) S PFN0=$G(^MAG(2005.03,PARENTFILE,0)) "RTN","MAGGI12",100,0) Q:PFN0="" $$ERROR^MAGUERR(-34,,IEN,PARENTFILE) "RTN","MAGGI12",101,0) ;--- Check if file descriptor has a value in FILE POINTER field (.04) "RTN","MAGGI12",102,0) Q:$P(PFN0,U,4)="" $$ERROR^MAGUERR(-35,,PARENTFILE) "RTN","MAGGI12",103,0) ;--- Return the reference "RTN","MAGGI12",104,0) Q PARENTFILE "RTN","MAGGI12",105,0) ; "RTN","MAGGI12",106,0) ;##### RETURNS STATUS OF THE IMAGE "RTN","MAGGI12",107,0) ; "RTN","MAGGI12",108,0) ; IEN Internal Entry Number of the image record "RTN","MAGGI12",109,0) ; "RTN","MAGGI12",110,0) ; Return Values "RTN","MAGGI12",111,0) ; ============= "RTN","MAGGI12",112,0) ; <0 Error descriptor (see the $$ERROR^MAGUERR) "RTN","MAGGI12",113,0) ; "" Status is not defined "RTN","MAGGI12",114,0) ; >0 Image status "RTN","MAGGI12",115,0) ; ^01: Status code (internal value) "RTN","MAGGI12",116,0) ; ^02: Description (external value) "RTN","MAGGI12",117,0) ; "RTN","MAGGI12",118,0) STATUS(IEN) ; "RTN","MAGGI12",119,0) N ERR,STATUS "RTN","MAGGI12",120,0) S STATUS=$$IMGST^MAGGI11(IEN,.ERR) "RTN","MAGGI12",121,0) D:ERR<0 STORE^MAGUERR(ERR) "RTN","MAGGI12",122,0) Q $S(STATUS>0:STATUS,ERR<0:ERR,1:"") "RTN","MAGGI12",123,0) ; "RTN","MAGGI12",124,0) ;##### RETURNS THE VIEWABLE STATUS OF THE IMAGE "RTN","MAGGI12",125,0) ; "RTN","MAGGI12",126,0) ; IEN IEN of the image record in the file #2005 "RTN","MAGGI12",127,0) ; "RTN","MAGGI12",128,0) ; [FLAGS] Flags that control execution (can be combined): "RTN","MAGGI12",129,0) ; "RTN","MAGGI12",130,0) ; Q Perform the integrity checks "RTN","MAGGI12",131,0) ; "RTN","MAGGI12",132,0) ; [.MESSAGES] Reference to a local array for messages returned "RTN","MAGGI12",133,0) ; by the image data checks. A node in this array is "RTN","MAGGI12",134,0) ; defined only if the result value contains the "RTN","MAGGI12",135,0) ; corresponding subscript value (e.g. the "Q" node is "RTN","MAGGI12",136,0) ; defined only if integrity checks fail and the result "RTN","MAGGI12",137,0) ; contains "Q"). "RTN","MAGGI12",138,0) ; "RTN","MAGGI12",139,0) ; MESSAGES( "RTN","MAGGI12",140,0) ; "RTN","MAGGI12",141,0) ; "Q") Message returned by the integrity checks. "RTN","MAGGI12",142,0) ; "RTN","MAGGI12",143,0) ; "R") Message returned by the Radiology report checks "RTN","MAGGI12",144,0) ; (reserved but not implemented) "RTN","MAGGI12",145,0) ; "RTN","MAGGI12",146,0) ; "S") Message regarding the image status. "RTN","MAGGI12",147,0) ; "RTN","MAGGI12",148,0) ; "T") Message returned by the TIU note checks. "RTN","MAGGI12",149,0) ; "RTN","MAGGI12",150,0) ; Return Values "RTN","MAGGI12",151,0) ; ============= "RTN","MAGGI12",152,0) ; "" Image can be viewed "RTN","MAGGI12",153,0) ; ... One or more characters that indicate why "RTN","MAGGI12",154,0) ; the image cannot be viewed "as usual": "RTN","MAGGI12",155,0) ; "RTN","MAGGI12",156,0) ; D Deleted image "RTN","MAGGI12",157,0) ; Q Questionable integrity "RTN","MAGGI12",158,0) ; R Problem with the Radiology report "RTN","MAGGI12",159,0) ; (reserved but not implemented) "RTN","MAGGI12",160,0) ; S Check the value of the STATUS field "RTN","MAGGI12",161,0) ; T Can't view the TIU note "RTN","MAGGI12",162,0) ; "RTN","MAGGI12",163,0) VIEWSTAT(IEN,FLAGS,MESSAGES) ; "RTN","MAGGI12",164,0) N MAGCF,MAGVS "RTN","MAGGI12",165,0) K MESSAGES S MAGVS="",MAGCF=$G(FLAGS) "RTN","MAGGI12",166,0) D "RTN","MAGGI12",167,0) . N BUF,ERR,GRPIEN,NODE,STATUS "RTN","MAGGI12",168,0) . ;--- Validate IEN and get the image status "RTN","MAGGI12",169,0) . S STATUS=$$IMGST^MAGGI11(IEN,.ERR) "RTN","MAGGI12",170,0) . S NODE=$$NODE^MAGGI11(IEN) "RTN","MAGGI12",171,0) . ;--- Force the integrity check in case of error(s) "RTN","MAGGI12",172,0) . I (ERR<0)!(NODE="") S MAGCF=MAGCF_"Q" Q "RTN","MAGGI12",173,0) . ; gek/ P94t7 if IEN is in a group, we also mark child as "T" if Grp is "T" "RTN","MAGGI12",174,0) . S GRPIEN=+$P($G(@NODE@(0)),U,10) "RTN","MAGGI12",175,0) . I GRPIEN D "RTN","MAGGI12",176,0) . . N GBUF,GNODE "RTN","MAGGI12",177,0) . . S GNODE=$$NODE^MAGGI11(GRPIEN) "RTN","MAGGI12",178,0) . . S GBUF=$G(@GNODE@(2)) "RTN","MAGGI12",179,0) . . D:+$P(GBUF,U,6)=8925 "RTN","MAGGI12",180,0) . . . N IEN,TMP "RTN","MAGGI12",181,0) . . . S IEN=+$P(GBUF,U,7) Q:'IEN "RTN","MAGGI12",182,0) . . . S TMP=$$CANDO^TIULP(IEN,"VIEW") "RTN","MAGGI12",183,0) . . . S:'TMP MAGVS=MAGVS_"T",MESSAGES("T")=$P(TMP,U,2) "RTN","MAGGI12",184,0) . . . Q "RTN","MAGGI12",185,0) . . Q "RTN","MAGGI12",186,0) . I MAGVS["T" Q "RTN","MAGGI12",187,0) . ; gek/ p94t7 __ Done changes "RTN","MAGGI12",188,0) . ;--- Check the image status "RTN","MAGGI12",189,0) . D:STATUS'<10 "RTN","MAGGI12",190,0) . . I +STATUS=12 S MAGVS=MAGVS_"D" Q "RTN","MAGGI12",191,0) . . S MAGVS=MAGVS_"S" "RTN","MAGGI12",192,0) . . S MESSAGES("S")=$$MSG^MAGUERR(-33,,$P(STATUS,U,2)) "RTN","MAGGI12",193,0) . . Q "RTN","MAGGI12",194,0) . ;--- Check if the TIU note can be viewed "RTN","MAGGI12",195,0) . S BUF=$G(@NODE@(2)) "RTN","MAGGI12",196,0) . D:+$P(BUF,U,6)=8925 "RTN","MAGGI12",197,0) . . N IEN,TMP S IEN=+$P(BUF,U,7) Q:'IEN "RTN","MAGGI12",198,0) . . S TMP=$$CANDO^TIULP(IEN,"VIEW") "RTN","MAGGI12",199,0) . . S:'TMP MAGVS=MAGVS_"T",MESSAGES("T")=$P(TMP,U,2) "RTN","MAGGI12",200,0) . . Q "RTN","MAGGI12",201,0) . ;--- Check the status of the group if necessary "RTN","MAGGI12",202,0) . I MAGVS'["D",MAGVS'["S" D "RTN","MAGGI12",203,0) . . S GRPIEN=$P($G(@NODE@(0)),U,10) Q:GRPIEN'>0 ; GROUP PARENT "RTN","MAGGI12",204,0) . . S STATUS=$$IMGST^MAGGI11(GRPIEN) Q:STATUS<10 "RTN","MAGGI12",205,0) . . ;--- Force the integrity check if the existing "RTN","MAGGI12",206,0) . . ;--- image entry belongs to a deleted group. "RTN","MAGGI12",207,0) . . I +STATUS=12 S MAGCF=MAGCF_"Q" Q "RTN","MAGGI12",208,0) . . ;--- Extend the "non-viewable" group status to the image "RTN","MAGGI12",209,0) . . S MAGVS=MAGVS_"S" "RTN","MAGGI12",210,0) . . S MESSAGES("S")=$$MSG^MAGUERR(-33,,$P(STATUS,U,2)) "RTN","MAGGI12",211,0) . . Q "RTN","MAGGI12",212,0) . Q "RTN","MAGGI12",213,0) ; "RTN","MAGGI12",214,0) ;--- Radiology report "RTN","MAGGI12",215,0) ; Reserved but not implemented "RTN","MAGGI12",216,0) ; "RTN","MAGGI12",217,0) ;--- Questionable integrity "RTN","MAGGI12",218,0) D:MAGCF["Q" "RTN","MAGGI12",219,0) . N MAGQI "RTN","MAGGI12",220,0) . D CHK^MAGGSQI(.MAGQI,IEN) "RTN","MAGGI12",221,0) . S:'$G(MAGQI(0)) MAGVS=MAGVS_"Q",MESSAGES("Q")=$P(MAGQI(0),U,2) "RTN","MAGGI12",222,0) . Q "RTN","MAGGI12",223,0) ; "RTN","MAGGI12",224,0) ;--- "RTN","MAGGI12",225,0) Q MAGVS "RTN","MAGGI12",226,0) ;+++++ ANNSTAT ******* "RTN","MAGGI12",227,0) ; Determine if this image can be annotated. "RTN","MAGGI12",228,0) ; *** INPUT Parameters "RTN","MAGGI12",229,0) ; "RTN","MAGGI12",230,0) ; VSTCODE : The Image 'View Status' numeric code. "RTN","MAGGI12",231,0) ; if this isn't sent as a parameter, it is computed. "RTN","MAGGI12",232,0) ; "RTN","MAGGI12",233,0) ; MAGIEN : Image IEN (^MAG(2005)) "RTN","MAGGI12",234,0) ; "RTN","MAGGI12",235,0) ; *** OUTPUT Parameters (optional) "RTN","MAGGI12",236,0) ; DESC : Text Reason for the result; "RTN","MAGGI12",237,0) ; "RTN","MAGGI12",238,0) ; Result Values "RTN","MAGGI12",239,0) ; -------------------------- "RTN","MAGGI12",240,0) ; RESULT of this call is a numeric value "RTN","MAGGI12",241,0) ; 0 : success, image can be annotated. "RTN","MAGGI12",242,0) ; "RTN","MAGGI12",243,0) ; Values of STATUS field (113) that are okay. "RTN","MAGGI12",244,0) ; 1 : Viewable (RESULT will be changed to 0) "RTN","MAGGI12",245,0) ; 2 : QA Reviewed (RESULT will be changed to 0) "RTN","MAGGI12",246,0) ; "RTN","MAGGI12",247,0) ; "RTN","MAGGI12",248,0) ; Values of STATUS field (113) "RTN","MAGGI12",249,0) ; that will block Annotation. "RTN","MAGGI12",250,0) ; 10 : Image capture is in progress, (Future for groups.) "RTN","MAGGI12",251,0) ; 11 : Image Needs Review "RTN","MAGGI12",252,0) ; 12 : Image is Deleted. "RTN","MAGGI12",253,0) ; "RTN","MAGGI12",254,0) ; Values of Image "View Status" that will block Annotation "RTN","MAGGI12",255,0) ; ("View Status" is a computed value, not an IMAGE Field) "RTN","MAGGI12",256,0) ; 21 : Image has Questionable Integrity issues. "RTN","MAGGI12",257,0) ; 22 : User cannot "VIEW" the associated TIU Note. "RTN","MAGGI12",258,0) ; due to TIU Business Rules "RTN","MAGGI12",259,0) ; 23 : Image is not Viewable by Radiology Rule (Future ) "RTN","MAGGI12",260,0) ; "RTN","MAGGI12",261,0) ; Values of other codes specific for blocked Annotation "RTN","MAGGI12",262,0) ; 30 : User Cannot "MAKE ADDENDUM" to the associated TIU Note. "RTN","MAGGI12",263,0) ; due to TIU Business Rules "RTN","MAGGI12",264,0) ; 31 : Image in Rescinded. "RTN","MAGGI12",265,0) ; "RTN","MAGGI12",266,0) ; "RTN","MAGGI12",267,0) ANNSTAT(MAGIEN,VSTCODE,DESC) ;Annotation Status "RTN","MAGGI12",268,0) N ANCODE,FLG,STI,VSTCD,TIUIEN,AMND,MSG,X,X2,GRPIEN "RTN","MAGGI12",269,0) ; "RTN","MAGGI12",270,0) S ANCODE=$G(VSTCODE) "RTN","MAGGI12",271,0) S DESC="" "RTN","MAGGI12",272,0) I ANCODE="" D "RTN","MAGGI12",273,0) . ; compute View Status Code if not sent. "RTN","MAGGI12",274,0) . ; QI Check already done in MAGAII ;S FLG="Q" "RTN","MAGGI12",275,0) . S FLG="" "RTN","MAGGI12",276,0) . S VSTCD=$$VIEWSTAT(MAGIEN,FLG,.MSG) "RTN","MAGGI12",277,0) . ; example of Result from $$VIEWSTAT "RTN","MAGGI12",278,0) . ; "" : success , viewable "RTN","MAGGI12",279,0) . ; "QT" : a Text String if not viewable "RTN","MAGGI12",280,0) . ; "RTN","MAGGI12",281,0) . ; -MSG- : is an array of reasons for failure, each letter "RTN","MAGGI12",282,0) . ; of Result is node of array i.e. MSG("Q")="..." "RTN","MAGGI12",283,0) . ; MSG("T")="..." "RTN","MAGGI12",284,0) . ; for this call ANNSTAT, we will just get first entry "RTN","MAGGI12",285,0) . ; "RTN","MAGGI12",286,0) . ;if the View Status Code (VSTCD) is not "", return it's text in MSG "RTN","MAGGI12",287,0) . I VSTCD]"" S X=$O(MSG("")) S DESC=$G(MSG(X)) "RTN","MAGGI12",288,0) . S STI=+$P($G(^MAG(2005,MAGIEN,100)),"^",8) ; STATUS (113) "RTN","MAGGI12",289,0) . ;--- Now get View Status Numeric value "RTN","MAGGI12",290,0) . S ANCODE=$$VSTCODE^MAGGAII(VSTCD,STI) "RTN","MAGGI12",291,0) . Q "RTN","MAGGI12",292,0) ; "RTN","MAGGI12",293,0) ; if the View Status Code > 9 then user cannot view the image, so "RTN","MAGGI12",294,0) ; we won't let user annotate the image. "RTN","MAGGI12",295,0) ; and will get a generic description of the code, if DESC is still "" "RTN","MAGGI12",296,0) I (ANCODE>9) S DESC=$S(DESC="":$$VSTTEXT(ANCODE),1:DESC) Q ANCODE "RTN","MAGGI12",297,0) ; if Image is attached to TIU Note, we check TIU Business Rules. "RTN","MAGGI12",298,0) S GRPIEN=$P($G(^MAG(2005,MAGIEN,0)),U,10),GRPIEN=$S(+GRPIEN:GRPIEN,1:MAGIEN) "RTN","MAGGI12",299,0) S X2=$G(^MAG(2005,GRPIEN,2)) "RTN","MAGGI12",300,0) I $P(X2,"^",6)=8925 D "RTN","MAGGI12",301,0) . S TIUIEN=$P(X2,"^",7) "RTN","MAGGI12",302,0) . ; If we don't have a pointer to 8925, that is DB corruption "RTN","MAGGI12",303,0) . ; This would probably already be caught, "RTN","MAGGI12",304,0) . ; but check in case. VIEWSTAT wasn't run prior to this call. "RTN","MAGGI12",305,0) . I 'TIUIEN S ANCODE=21,DESC="Invalid pointer to TIU Package ("_TIUIEN_")" Q "RTN","MAGGI12",306,0) . S AMND=$$CANDO^TIULP(TIUIEN,"MAKE ADDENDUM") ;IA#? "RTN","MAGGI12",307,0) . ; Example of result from TIULP "RTN","MAGGI12",308,0) . ; 0^ You may not ADDEND this UNSIGNED PRIMARY CARE. "RTN","MAGGI12",309,0) . ; 1 "RTN","MAGGI12",310,0) . I 'AMND S ANCODE=30,DESC=$P(AMND,"^",2) "RTN","MAGGI12",311,0) . Q "RTN","MAGGI12",312,0) ; if ANCODE > 9 then TIU Business rule says no Annotation. "RTN","MAGGI12",313,0) I (ANCODE>9) S DESC=$S(DESC="":$$VSTTEXT(ANCODE),1:DESC) Q ANCODE "RTN","MAGGI12",314,0) ; "RTN","MAGGI12",315,0) I $P($G(^MAG(2005,MAGIEN,100)),"^",12)=1 D "RTN","MAGGI12",316,0) . ; Image is Rescinded "RTN","MAGGI12",317,0) . S ANCODE=31 "RTN","MAGGI12",318,0) . Q "RTN","MAGGI12",319,0) ; if ANCODE > 9 then Image is rescinded and stop Annotation. "RTN","MAGGI12",320,0) I (ANCODE>9) S DESC=$$VSTTEXT(ANCODE) Q ANCODE "RTN","MAGGI12",321,0) ; If we get here, Image can be annotated. "RTN","MAGGI12",322,0) ; - not changing to 0. Status here is 1 or 2 for viewable. "RTN","MAGGI12",323,0) ;S DESC="Image can be annotated." "RTN","MAGGI12",324,0) ; Send exact numeric code. Delphi understands < 10 is viewable "RTN","MAGGI12",325,0) ; and can be annotated. "RTN","MAGGI12",326,0) S DESC=$$VSTTEXT(ANCODE) "RTN","MAGGI12",327,0) Q ANCODE "RTN","MAGGI12",328,0) ; "RTN","MAGGI12",329,0) ; ##### VSTTEXT returns a Description of the Status Code. "RTN","MAGGI12",330,0) ; "RTN","MAGGI12",331,0) ; CODE is the numeric code for the Annotation Status. "RTN","MAGGI12",332,0) ; This is based on Status, Viewable Status, and "RTN","MAGGI12",333,0) ; two new return values for Annotation Status. "RTN","MAGGI12",334,0) ; "RTN","MAGGI12",335,0) VSTTEXT(CODE) ;Description for Annotation Status "RTN","MAGGI12",336,0) N I,DONE,STR "RTN","MAGGI12",337,0) S (I,DONE)=0 "RTN","MAGGI12",338,0) F D Q:DONE "RTN","MAGGI12",339,0) . S I=I+1 "RTN","MAGGI12",340,0) . S STR=$T(DATA+I) "RTN","MAGGI12",341,0) . I $P(STR,";",3)=CODE S DESC=$P(STR,";",4),DONE=1 "RTN","MAGGI12",342,0) . I $P(STR,";",3)="END" S DESC=$P(STR,";",4)_CODE,DONE=1 "RTN","MAGGI12",343,0) . Q "RTN","MAGGI12",344,0) Q DESC "RTN","MAGGI12",345,0) ; ##### DATA Table for Image Status, View Status, Annotation Status. "RTN","MAGGI12",346,0) ; "RTN","MAGGI12",347,0) ; the Code is in Piece 3, and the Description is in Piece 4. "RTN","MAGGI12",348,0) ; "RTN","MAGGI12",349,0) ; Image STATUS field (113) "RTN","MAGGI12",350,0) ; Codes 0..12 are the Status Codes from field 113 "RTN","MAGGI12",351,0) ; "RTN","MAGGI12",352,0) ; Viewable Status and Annotation Status are computed values, "RTN","MAGGI12",353,0) ; based on, but not equal to STATUS (113) "RTN","MAGGI12",354,0) ; they depend on TIU Business Rules, QI Of image, User Keys. "RTN","MAGGI12",355,0) ; The Codes are computed in other functions. Description of the "RTN","MAGGI12",356,0) ; code is returned from this table. "RTN","MAGGI12",357,0) ; "RTN","MAGGI12",358,0) ; Codes 21..23 are the Viewable Status Codes. (computed value) "RTN","MAGGI12",359,0) ; Codes 30..31 are Annotation Status Codes. "RTN","MAGGI12",360,0) DATA ; "RTN","MAGGI12",361,0) ;;0;Image is Viewable; "RTN","MAGGI12",362,0) ;;1;Image is Viewable.; "RTN","MAGGI12",363,0) ;;2;Image is QA Reviewed.; "RTN","MAGGI12",364,0) ; "RTN","MAGGI12",365,0) ;;10;Image capture is in progress.; (Future for groups.) "RTN","MAGGI12",366,0) ;;11;Image needs review.; "RTN","MAGGI12",367,0) ;;12;Image is deleted.; "RTN","MAGGI12",368,0) ; "RTN","MAGGI12",369,0) ;;21;Image has Questionable Integrity issues.; "RTN","MAGGI12",370,0) ;;22;User cannot 'View' the associated TIU note. TIU Business Rule.; "RTN","MAGGI12",371,0) ;;23;Image is not Viewable by Radiology Rule.; (future) "RTN","MAGGI12",372,0) ; "RTN","MAGGI12",373,0) ;;30;User cannot 'Make Addendum' to the associated TIU Note. TIU Business Rule.; "RTN","MAGGI12",374,0) ;;31;Image is Rescinded.; "RTN","MAGGI12",375,0) ;;END;User cannot Annotate the Image. Unknown CODE: ; "RTN","MAGGI12",376,0) Q "RTN","MAGGI13") 0^5^B65233516 "RTN","MAGGI13",1,0) MAGGI13 ;WOIFO/SG/BNT/NST/GEK/JSL - IMAGE FILE API (QUERY) ; 21 Jul 2010 11:05 AM "RTN","MAGGI13",2,0) ;;3.0;IMAGING;**93,117,122**;Mar 19, 2002;Build 92;Aug 02, 2012 "RTN","MAGGI13",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGGI13",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGGI13",5,0) ;; | Property of the US Government. | "RTN","MAGGI13",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGGI13",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGGI13",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGGI13",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGGI13",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGGI13",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGGI13",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGGI13",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGGI13",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGGI13",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGGI13",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGGI13",17,0) ;; "RTN","MAGGI13",18,0) ;P122 : Stop Timeout error from QA Review window. "RTN","MAGGI13",19,0) ; Modified tag : QUERY, to now use ADTDUZ Cross reference "RTN","MAGGI13",20,0) ; when searching for images captured by a User. "RTN","MAGGI13",21,0) ; Remedy _ "RTN","MAGGI13",22,0) Q "RTN","MAGGI13",23,0) ; "RTN","MAGGI13",24,0) ;+++++ RETURNS INVERTED/REVERSED DATE/TIME (FILEMAN) "RTN","MAGGI13",25,0) INVDT(DATETIME) ; "RTN","MAGGI13",26,0) Q 9999999.9999-DATETIME "RTN","MAGGI13",27,0) ; "RTN","MAGGI13",28,0) ;##### $ORDER BOTH #2005 AND #2005.1 FILES AT THE SAME TIME "RTN","MAGGI13",29,0) ; "RTN","MAGGI13",30,0) ; NODE Name of a node in file #2005 or #2005.1 (it does "RTN","MAGGI13",31,0) ; not matter in which one if the BOTH parameter is "RTN","MAGGI13",32,0) ; not zero). The last subscript can be empty string. "RTN","MAGGI13",33,0) ; "RTN","MAGGI13",34,0) ; [DIR] Browsing direction: "RTN","MAGGI13",35,0) ; $G(DIR)'<0 forward "RTN","MAGGI13",36,0) ; DIR<0 backward "RTN","MAGGI13",37,0) ; "RTN","MAGGI13",38,0) ; [BOTH] If this parameter is defined and not zero, then "RTN","MAGGI13",39,0) ; the MAGORD browses subscripts of IMAGE (#2005) and "RTN","MAGGI13",40,0) ; IMAGE AUDIT (2005.1) files at the same time (as if "RTN","MAGGI13",41,0) ; the nodes were merged into a single array). "RTN","MAGGI13",42,0) ; Otherwise, it works as the $ORDER function. "RTN","MAGGI13",43,0) ; "RTN","MAGGI13",44,0) ; Return Values "RTN","MAGGI13",45,0) ; ============= "RTN","MAGGI13",46,0) ; "" No more records "RTN","MAGGI13",47,0) ; Next/previous subscript (in #2005, #2005.1, or both) "RTN","MAGGI13",48,0) ; "RTN","MAGGI13",49,0) ; Notes "RTN","MAGGI13",50,0) ; ===== "RTN","MAGGI13",51,0) ; "RTN","MAGGI13",52,0) ; This function relies on the fact that there are no records with "RTN","MAGGI13",53,0) ; the same IENs in the files #2005 and #2005.1. "RTN","MAGGI13",54,0) ; "RTN","MAGGI13",55,0) MAGORD(NODE,DIR,BOTH) ; "RTN","MAGGI13",56,0) Q:NODE'?1"^MAG(2005".1".1"1","1.E1")" "" "RTN","MAGGI13",57,0) N FILE,LST,PI,SUBS,TRAIL "RTN","MAGGI13",58,0) S DIR=$S($G(DIR)<0:-1,1:1) "RTN","MAGGI13",59,0) Q:'$G(BOTH) $O(@NODE,DIR) "RTN","MAGGI13",60,0) ;--- Find subscripts in both files that follow the @NODE "RTN","MAGGI13",61,0) S TRAIL=","_$P(NODE,",",2,999) "RTN","MAGGI13",62,0) F FILE=2005,2005.1 D "RTN","MAGGI13",63,0) . S PI="^MAG("_FILE_TRAIL,SUBS=$O(@PI,DIR) "RTN","MAGGI13",64,0) . S:SUBS'="" LST(SUBS,FILE)="" "RTN","MAGGI13",65,0) . Q "RTN","MAGGI13",66,0) ;--- Return one of the subscripts according to the direction "RTN","MAGGI13",67,0) Q $O(LST(""),DIR) "RTN","MAGGI13",68,0) ; "RTN","MAGGI13",69,0) ;+++++ CHECKS THE PATIENT REFERENCE "RTN","MAGGI13",70,0) ; "RTN","MAGGI13",71,0) ; IMGIEN Internal entry number of the image entry "RTN","MAGGI13",72,0) ; "RTN","MAGGI13",73,0) ; DFN Patient IEN (DFN) "RTN","MAGGI13",74,0) ; "RTN","MAGGI13",75,0) ; Return Values "RTN","MAGGI13",76,0) ; ============= "RTN","MAGGI13",77,0) ; 0 Skip the image entry (different patient or error) "RTN","MAGGI13",78,0) ; 1 Process the image entry "RTN","MAGGI13",79,0) ; "RTN","MAGGI13",80,0) PTCHK(IMGIEN,DFN) ; "RTN","MAGGI13",81,0) N NODE S NODE=$$NODE^MAGGI11(IMGIEN) "RTN","MAGGI13",82,0) Q $S(NODE'="":$P($G(@NODE@(0)),U,7)=DFN,1:0) "RTN","MAGGI13",83,0) ; "RTN","MAGGI13",84,0) ;##### BROWSES IMAGES AND CALLS THE CALLBACK FUNCTION "RTN","MAGGI13",85,0) ; "RTN","MAGGI13",86,0) ; CALLBACK Full name of the callback function ($$TAG^ROUTINE) "RTN","MAGGI13",87,0) ; that is called for each preselected image. "RTN","MAGGI13",88,0) ; "RTN","MAGGI13",89,0) ; SINCE ENTRIES THAT ARE NOT MARKED AS DELETED CAN "RTN","MAGGI13",90,0) ; REFERENCE DELETED "CHILDREN", SUCH ENTRIES ARE PASSED "RTN","MAGGI13",91,0) ; TO THE CALLBACK FUNCTION EVEN IF ONLY DELETED IMAGES "RTN","MAGGI13",92,0) ; ARE REQUESTED! THEREFORE, THE FUNCTION MUST PERFORM "RTN","MAGGI13",93,0) ; ADDITIONAL SCREENING BY CHECKING THE "CHILD" ENTRIES. "RTN","MAGGI13",94,0) ; "RTN","MAGGI13",95,0) ; The function should accept 3 parameters: "RTN","MAGGI13",96,0) ; "RTN","MAGGI13",97,0) ; IMGIEN IEN of the image record "RTN","MAGGI13",98,0) ; (file #2005 or #2005.1) "RTN","MAGGI13",99,0) ; "RTN","MAGGI13",100,0) ; FLAGS Value of the FLAGS parameter of the "RTN","MAGGI13",101,0) ; $$QUERY function (see below). "RTN","MAGGI13",102,0) ; "RTN","MAGGI13",103,0) ; .DATA Reference to the local array passed via "RTN","MAGGI13",104,0) ; the MAG8DATA parameter of the $$QUERY "RTN","MAGGI13",105,0) ; function (see below). "RTN","MAGGI13",106,0) ; "RTN","MAGGI13",107,0) ; Non-zero result values of the callback function "RTN","MAGGI13",108,0) ; terminate the query: "RTN","MAGGI13",109,0) ; "RTN","MAGGI13",110,0) ; <0 Error descriptor (see the $$ERROR^MAGUERR) "RTN","MAGGI13",111,0) ; 0 Continue "RTN","MAGGI13",112,0) ; >0 Terminate the query (e.g. if maximum number of "RTN","MAGGI13",113,0) ; returned records has been reached) "RTN","MAGGI13",114,0) ; "RTN","MAGGI13",115,0) ; See the source code of the IMGQUERY^MAGGA03 and "RTN","MAGGI13",116,0) ; $$QRYCBK^MAGGA03 for an example. "RTN","MAGGI13",117,0) ; "RTN","MAGGI13",118,0) ; FLAGS Flags that control the execution (can be combined): "RTN","MAGGI13",119,0) ; "RTN","MAGGI13",120,0) ; C Capture date range. If this flag is provided, "RTN","MAGGI13",121,0) ; then the remote procedure uses values of the "RTN","MAGGI13",122,0) ; MAG8FROM and MAG8TO parameters to select images "RTN","MAGGI13",123,0) ; that were captured in this date range (see the "RTN","MAGGI13",124,0) ; DATE/TIME IMAGE SAVED field (7) and the "AD" "RTN","MAGGI13",125,0) ; cross-reference). "RTN","MAGGI13",126,0) ; "RTN","MAGGI13",127,0) ; Otherwise, values of those parameters are "RTN","MAGGI13",128,0) ; treated as the date range when procedures were "RTN","MAGGI13",129,0) ; performed (see the PROCEDURE/EXAM DATE/TIME "RTN","MAGGI13",130,0) ; field (15) and cross-references "APDTPX" and "RTN","MAGGI13",131,0) ; "APDT"). "RTN","MAGGI13",132,0) ; "RTN","MAGGI13",133,0) ; G Include Group Images in the list of images returned. "RTN","MAGGI13",134,0) ; If any image in a group has an image that matches the "RTN","MAGGI13",135,0) ; status provided in the search criteria then "RTN","MAGGI13",136,0) ; the group will be returned. "RTN","MAGGI13",137,0) ; "RTN","MAGGI13",138,0) ; If the G flag is not set then only the status of the "RTN","MAGGI13",139,0) ; Group entry will be checked and the group will be "RTN","MAGGI13",140,0) ; returned if it passes. "RTN","MAGGI13",141,0) ; "RTN","MAGGI13",142,0) ; D Include only deleted images (file #2005.1) "RTN","MAGGI13",143,0) ; "RTN","MAGGI13",144,0) ; E Include only existing images (file #2005) "RTN","MAGGI13",145,0) ; "RTN","MAGGI13",146,0) ; If neither 'E' nor 'D' flag is provided, then an "RTN","MAGGI13",147,0) ; error code is returned. "RTN","MAGGI13",148,0) ; "RTN","MAGGI13",149,0) ; [.MAG8DATA] Reference to a local array that is passed to the "RTN","MAGGI13",150,0) ; callback function (by reference) "as is" "RTN","MAGGI13",151,0) ; "RTN","MAGGI13",152,0) ; [MAG8FROM] Date/time range for image selection. Parameter "RTN","MAGGI13",153,0) ; [MAG8TO] values should be valid date/times in internal or "RTN","MAGGI13",154,0) ; external FileMan format. If a parameter is not "RTN","MAGGI13",155,0) ; defined or empty, then the range remains open on "RTN","MAGGI13",156,0) ; the corresponding side. "RTN","MAGGI13",157,0) ; "RTN","MAGGI13",158,0) ; The beginning of the date/time range is included "RTN","MAGGI13",159,0) ; the search but the end is not! For example, if you "RTN","MAGGI13",160,0) ; need images for October 15, 2007, the internal "RTN","MAGGI13",161,0) ; parameter values should be 3071015 and 3071016. "RTN","MAGGI13",162,0) ; "RTN","MAGGI13",163,0) ; If the MAG8FROM is after the MAG8TO, then values "RTN","MAGGI13",164,0) ; of the parameters are swapped. "RTN","MAGGI13",165,0) ; "RTN","MAGGI13",166,0) ; [DFN] Patient IEN (DFN). If this parameter is defined and "RTN","MAGGI13",167,0) ; greater than 0, then only images associated with this "RTN","MAGGI13",168,0) ; patient are processed. "RTN","MAGGI13",169,0) ; "RTN","MAGGI13",170,0) ; Return Values "RTN","MAGGI13",171,0) ; ============= "RTN","MAGGI13",172,0) ; <0 Error descriptor (see the $$ERROR^MAGUERR) "RTN","MAGGI13",173,0) ; 0 All appropriate image records have been processed "RTN","MAGGI13",174,0) ; >0 Value returned by the callback function when it "RTN","MAGGI13",175,0) ; terminated the query "RTN","MAGGI13",176,0) ; "RTN","MAGGI13",177,0) ; Notes "RTN","MAGGI13",178,0) ; ===== "RTN","MAGGI13",179,0) ; "RTN","MAGGI13",180,0) ; Temporary global node ^TMP($J,"MAGGI13") is used by this function. "RTN","MAGGI13",181,0) ; "RTN","MAGGI13",182,0) QUERY(CALLBACK,FLAGS,MAG8DATA,MAG8FROM,MAG8TO,DFN) ; "RTN","MAGGI13",183,0) N MAG8BOTH,MAG8CALL,MAG8DT,MAG8IEN,MAG8RC,MAG8ROOT,MAG8XREF,TMP "RTN","MAGGI13",184,0) ;P122 "RTN","MAGGI13",185,0) N MAG8APP,MAG8DUZ,MAG8SITE,BOTHAPP "RTN","MAGGI13",186,0) ; "RTN","MAGGI13",187,0) S FLAGS=$G(FLAGS) "RTN","MAGGI13",188,0) ;=== Validate parameters "RTN","MAGGI13",189,0) Q:'(CALLBACK?2"$"1.8UN1"^MAG"1.5UN) $$IPVE^MAGUERR("CALLBACK") "RTN","MAGGI13",190,0) ;--- If a patient IEN is provided, it must be valid "RTN","MAGGI13",191,0) I $G(DFN)>0,'$$VALDFN^MAGUTL05(DFN,.TMP) D STORE^MAGUERR(TMP) Q TMP "RTN","MAGGI13",192,0) ;--- Unknown/Unsupported flag(s) "RTN","MAGGI13",193,0) Q:$TR(FLAGS,"CDEG")'="" $$IPVE^MAGUERR("FLAGS") "RTN","MAGGI13",194,0) ;--- Missing required flag "RTN","MAGGI13",195,0) Q:$TR(FLAGS,"DE")=FLAGS $$ERROR^MAGUERR(-6,,"D,E") "RTN","MAGGI13",196,0) ; "RTN","MAGGI13",197,0) ;=== The expression in the following line does not look like "RTN","MAGGI13",198,0) ; (FLAGS["E")&(FLAGS["D") because a group header that is "RTN","MAGGI13",199,0) ;=== not marked as deleted can reference deleted "children". "RTN","MAGGI13",200,0) S MAG8BOTH=(FLAGS["D") "RTN","MAGGI13",201,0) S TMP=$S(FLAGS["E":2005,1:2005.1),MAG8ROOT=$NA(^MAG(TMP)) "RTN","MAGGI13",202,0) S TMP=$$DDQ^MAGUTL05(FLAGS) "RTN","MAGGI13",203,0) S MAG8CALL="S MAG8RC="_CALLBACK_"(MAG8IEN,"_TMP_",.MAG8DATA)" "RTN","MAGGI13",204,0) S MAG8RC=0 "RTN","MAGGI13",205,0) ;P122 set a variable (MAG8DUZ) to $Order through the Cross Ref. "RTN","MAGGI13",206,0) S MAG8DUZ=+$P($G(MAG8DATA("SAVEDBY")),"^",1) "RTN","MAGGI13",207,0) ;=== Return images in the capture date range captured by a User MAG8DUZ "RTN","MAGGI13",208,0) ; This call is made by the QA Review window. Looking for a list of images "RTN","MAGGI13",209,0) ; captured by a certain user in a certain date range. "RTN","MAGGI13",210,0) I (FLAGS["C"),(MAG8DUZ) D Q MAG8RC "RTN","MAGGI13",211,0) . ;--- Modify the callback to check for patient "RTN","MAGGI13",212,0) . S:$G(DFN)>0 $E(MAG8CALL,1)="S:$$PTCHK(MAG8IEN,"_DFN_")" "RTN","MAGGI13",213,0) . ;--- "RTN","MAGGI13",214,0) . ; ATDUZ may be used by more than QA Review, can't Force MAG8BOTH "RTN","MAGGI13",215,0) . ; to '0', Deleted Images may be wanted by other functions. "RTN","MAGGI13",216,0) . ;- S MAG8BOTH=0 "RTN","MAGGI13",217,0) . ; Loop through both Capture Application nodes of ADTDUZ "RTN","MAGGI13",218,0) . F MAG8APP="C","I" D "RTN","MAGGI13",219,0) . . S MAG8XREF=$NA(@MAG8ROOT@("ADTDUZ",MAG8APP)) "RTN","MAGGI13",220,0) . . S MAG8DT=MAG8TO "RTN","MAGGI13",221,0) . . F S MAG8DT=$$MAGORD($NA(@MAG8XREF@(MAG8DT)),-1,MAG8BOTH) Q:(MAG8DT="")!(MAG8DT0 $E(MAG8CALL,1)="S:$$PTCHK(MAG8IEN,"_DFN_")" "RTN","MAGGI13",236,0) . ;--- "RTN","MAGGI13",237,0) . S MAG8XREF=$NA(@MAG8ROOT@("AD")) "RTN","MAGGI13",238,0) . S MAG8DT=MAG8TO "RTN","MAGGI13",239,0) . F S MAG8DT=$$MAGORD($NA(@MAG8XREF@(MAG8DT)),-1,MAG8BOTH) Q:(MAG8DT="")!(MAG8DT0 D Q MAG8RC "RTN","MAGGI13",250,0) . N MAG8DT1,MAG8DT2,MAG8PRX,MAG8TMP "RTN","MAGGI13",251,0) . S MAG8XREF=$NA(@MAG8ROOT@("APDTPX",+DFN)) "RTN","MAGGI13",252,0) . S MAG8TMP=$NA(^TMP("MAGGI13",$J)) "RTN","MAGGI13",253,0) . ;--- "Invert" the dates "RTN","MAGGI13",254,0) . S MAG8DT1=$$INVDT(MAG8TO),MAG8DT2=$$INVDT(MAG8FROM) "RTN","MAGGI13",255,0) . ;--- "RTN","MAGGI13",256,0) . S MAG8DT=MAG8DT1 "RTN","MAGGI13",257,0) . F S MAG8DT=$$MAGORD($NA(@MAG8XREF@(MAG8DT)),1,MAG8BOTH) Q:(MAG8DT="")!(MAG8DT>MAG8DT2) D Q:MAG8RC "RTN","MAGGI13",258,0) . . K @MAG8TMP "RTN","MAGGI13",259,0) . . I $D(ZTQUEUED),$$S^%ZTLOAD S MAG8RC="1^Task asked to stop",ZTSTOP=1 Q "RTN","MAGGI13",260,0) . . ;--- Merge IEN lists from both files "RTN","MAGGI13",261,0) . . S MAG8PRX="" "RTN","MAGGI13",262,0) . . F S MAG8PRX=$$MAGORD($NA(@MAG8XREF@(MAG8DT,MAG8PRX)),1,MAG8BOTH) Q:MAG8PRX="" D "RTN","MAGGI13",263,0) . . . S MAG8IEN="" "RTN","MAGGI13",264,0) . . . F S MAG8IEN=$$MAGORD($NA(@MAG8XREF@(MAG8DT,MAG8PRX,MAG8IEN)),1,MAG8BOTH) Q:MAG8IEN="" D "RTN","MAGGI13",265,0) . . . . S @MAG8TMP@(MAG8IEN)="" "RTN","MAGGI13",266,0) . . . . Q "RTN","MAGGI13",267,0) . . ;--- Browse the list and select the images "RTN","MAGGI13",268,0) . . S MAG8IEN="" "RTN","MAGGI13",269,0) . . F D Q:(MAG8IEN'>0)!MAG8RC X MAG8CALL Q:MAG8RC "RTN","MAGGI13",270,0) . . . S MAG8IEN=$O(@MAG8TMP@(MAG8IEN),-1) "RTN","MAGGI13",271,0) . . . I $D(ZTQUEUED),$$S^%ZTLOAD S MAG8RC="1^Task asked to stop",ZTSTOP=1 "RTN","MAGGI13",272,0) . . . Q "RTN","MAGGI13",273,0) . . Q "RTN","MAGGI13",274,0) . ;--- "RTN","MAGGI13",275,0) . K @MAG8TMP "RTN","MAGGI13",276,0) . Q "RTN","MAGGI13",277,0) ; "RTN","MAGGI13",278,0) ;=== Browse images in the procedure date range; all patients "RTN","MAGGI13",279,0) S MAG8XREF=$NA(@MAG8ROOT@("APDT")) "RTN","MAGGI13",280,0) S MAG8DT=MAG8TO "RTN","MAGGI13",281,0) F S MAG8DT=$$MAGORD($NA(@MAG8XREF@(MAG8DT)),-1,MAG8BOTH) Q:(MAG8DT="")!(MAG8DT0 S VAL="`"_$P(Y,"^") "RTN","MAGGTPT1",55,0) . Q "RTN","MAGGTPT1",56,0) ; "RTN","MAGGTPT1",57,0) ; If specific fields aren't requested, "RTN","MAGGTPT1",58,0) ; Get Identifiers, and ward as FLDS "RTN","MAGGTPT1",59,0) ;I '$L(FLDS) S FLDS=FLDS_";.1;.03;.09;.301;391" "RTN","MAGGTPT1",60,0) I '$L(FLDS) S FLDS=FLDS_";.1;.02;.301;391" "RTN","MAGGTPT1",61,0) ; we'll add ACN to the index to search, for ward "RTN","MAGGTPT1",62,0) ; for speed we'll decide which xref to use "RTN","MAGGTPT1",63,0) S INDEX=$S(VAL?9N:"SSN^ACN",VAL?1U1.N:"BS5^ACN",1:"B^ACN") "RTN","MAGGTPT1",64,0) ; "RTN","MAGGTPT1",65,0) K ^TMP("DILIST",$J) "RTN","MAGGTPT1",66,0) K ^TMP("DIERR",$J) "RTN","MAGGTPT1",67,0) ; VAL is the initial value to search for. i.e. the user input. "RTN","MAGGTPT1",68,0) ; Next line is to stop the FM Infinite Error Trap problem. "RTN","MAGGTPT1",69,0) I $L(VAL)>30 S MAGRY(0)="0^Invalid: Input '"_$E(VAL,1,40)_"...' is too long. "_$L(VAL)_" characters." Q "RTN","MAGGTPT1",70,0) D FIND^DIC(FILE,IENS,FLDS,FLAGS,VAL,NUM,INDEX,SCR,IDENT,TROOT) "RTN","MAGGTPT1",71,0) ; "RTN","MAGGTPT1",72,0) ; if no Match or ERROR we return 0 as 1st '^' piece. "RTN","MAGGTPT1",73,0) ; "RTN","MAGGTPT1",74,0) I '$D(^TMP("DILIST",$J,1)) S I=1 D Q "RTN","MAGGTPT1",75,0) . I $D(^TMP("DIERR",$J)) D FINDERR(I) Q "RTN","MAGGTPT1",76,0) . S MAGRY(I)="NO MATCH for lookup on """_$P(ZY,"^",2)_"""" "RTN","MAGGTPT1",77,0) ; "RTN","MAGGTPT1",78,0) ; so we have some matches, (BUT we could still have an error) "RTN","MAGGTPT1",79,0) ; so first list all matches, then the Errors, if any. "RTN","MAGGTPT1",80,0) S I="" F S I=$O(^TMP("DILIST",$J,1,I)) Q:I="" D "RTN","MAGGTPT1",81,0) . S PNAME=^TMP("DILIST",$J,1,I) ; Name "RTN","MAGGTPT1",82,0) . S MAGDFN=+^TMP("DILIST",$J,2,I) ; DFN "RTN","MAGGTPT1",83,0) . S SEX=^TMP("DILIST",$J,"ID",I,.02) "RTN","MAGGTPT1",84,0) . S WARD=^TMP("DILIST",$J,"ID",I,.1) "RTN","MAGGTPT1",85,0) . K ^TMP("DILIST",$J,"ID",I,.1) "RTN","MAGGTPT1",86,0) . S ICN=$S($T(GETICN^MPIF001)="":"-1^NO MPI",1:$$GETICN^MPIF001(MAGDFN)) ;P122 - site not use ICN "RTN","MAGGTPT1",87,0) . S ICN=$S(ICN'<0:ICN,1:"") "RTN","MAGGTPT1",88,0) . I RTYPE=2 D "RTN","MAGGTPT1",89,0) . . S MAGRY(I+1)=PNAME_U_$$DOB^DPTLK1(MAGDFN)_U_SEX_U_WARD_"|"_MAGDFN_U_ICN "RTN","MAGGTPT1",90,0) . I RTYPE'=2 D "RTN","MAGGTPT1",91,0) . . S X=PNAME "RTN","MAGGTPT1",92,0) . . I $E(WARD,1,$L(VAL))=VAL S X=WARD_" "_PNAME "RTN","MAGGTPT1",93,0) . . N DFN,VA S DFN=MAGDFN D PID^VADPT6 S X=X_" "_$$DOB^DPTLK1(MAGDFN)_" "_VA("PID") ;P122 - Patient ID (VA SSN/IHS HRN) "RTN","MAGGTPT1",94,0) . . S Z=0 "RTN","MAGGTPT1",95,0) . . ; We are displaying other identifiers with each patient. "RTN","MAGGTPT1",96,0) . . F S Z=$O(^TMP("DILIST",$J,"ID",I,Z)) Q:Z="" S X=X_" "_^(Z) "RTN","MAGGTPT1",97,0) . . S MAGRY(I)=X_"^"_(+MAGDFN)_"^"_ICN ;SG "RTN","MAGGTPT1",98,0) I RTYPE=2 S MAGRY(1)="Patient Name^DOB~S1^Sex^Ward" "RTN","MAGGTPT1",99,0) ; "RTN","MAGGTPT1",100,0) I $D(^TMP("DIERR",$J)) D FINDERR() Q "RTN","MAGGTPT1",101,0) I '$D(^TMP("DILIST",$J,0)) Q "RTN","MAGGTPT1",102,0) S X=^TMP("DILIST",$J,0) "RTN","MAGGTPT1",103,0) S I=$O(MAGRY(""),-1)+1 "RTN","MAGGTPT1",104,0) S MAGRY(0)="Found "_$P(X,"^")_" entr"_$S((+X=1):"y",1:"ies")_" matching """_$P(ZY,"^",3)_"""" "RTN","MAGGTPT1",105,0) I $P(X,"^",3)>0 S MAGRY(0)=MAGRY(0)_" there are more" "RTN","MAGGTPT1",106,0) Q "RTN","MAGGTPT1",107,0) FINDERR(XI) ; "RTN","MAGGTPT1",108,0) I '+$G(XI) S XI=$O(MAGRY(""),-1)+1 "RTN","MAGGTPT1",109,0) S MAGRY(XI)="ERROR^"_^TMP("DIERR",$J,1,"TEXT",1) "RTN","MAGGTPT1",110,0) Q "RTN","MAGGTPT1",111,0) INFO(MAGRY,DATA) ;RPC [MAGG PAT INFO] Call to Return patient info. "RTN","MAGGTPT1",112,0) ; Input parameters "RTN","MAGGTPT1",113,0) ; DATA: MAGDFN ^ NOLOG ^ ISICN "RTN","MAGGTPT1",114,0) ; MAGDFN -- Patient DFN "RTN","MAGGTPT1",115,0) ; NOLOG -- 0/1; if 1, then do NOT update the Session log "RTN","MAGGTPT1",116,0) ; ISICN -- 0/1 if 1, then this is an ICN, if 0 (default) this is a DFN ; Patch 41 "RTN","MAGGTPT1",117,0) ; FLAGS -- "D" Include Deleted images "RTN","MAGGTPT1",118,0) ; YYFORMAT - 0/1; if 1, return DOB as MM/DD/YYYY not MM/DD/YY (MAG*3.0*118). "RTN","MAGGTPT1",119,0) ; MAGRY is a string, we return the following : "RTN","MAGGTPT1",120,0) ; //$P 1 2 3 4 5 6 7 8 9 10 "RTN","MAGGTPT1",121,0) ; // status ^ DFN ^ name ^ sex ^ DOB ^ SSN ^ S/C ^ TYPE ^ Veteran(y/n) ^ Patient Image Count "RTN","MAGGTPT1",122,0) ; //$P 11 12 13 "RTN","MAGGTPT1",123,0) ; ICN SITE Number ^ Production Account 1/0 "RTN","MAGGTPT1",124,0) ; VADM(1)=Patient's name "RTN","MAGGTPT1",125,0) ; VADM(5)=Patient's sex (M^MALE) "RTN","MAGGTPT1",126,0) ; VADM(3)=Patient's DOB (internal^external) "RTN","MAGGTPT1",127,0) ; VADM(2)=Patient's SSN (internal^external) "RTN","MAGGTPT1",128,0) ; VAEL(3)=Patient's Service Connected? (#.301) (1=yes) "RTN","MAGGTPT1",129,0) ; VAEL(4)=Patient's Veteran Y/N (#1901) (1=yes) "RTN","MAGGTPT1",130,0) ; VAEL(6)=Patient's Type (#391) (internal^external) "RTN","MAGGTPT1",131,0) ; "RTN","MAGGTPT1",132,0) N MAGDFN,DFN,X,NOLOG,VADM,VAEL,VAERR,ISICN,FLAGS,YYFORMAT "RTN","MAGGTPT1",133,0) S MAGDFN=$P(DATA,U),NOLOG=+$P(DATA,U,2),ISICN=+$P(DATA,U,3),FLAGS=$P(DATA,U,4),YYFORMAT=+$P(DATA,U,5) "RTN","MAGGTPT1",134,0) I ISICN D GETDFN^VAFCTFU1(.DFN,MAGDFN) "RTN","MAGGTPT1",135,0) E S DFN=+MAGDFN "RTN","MAGGTPT1",136,0) D DEM^VADPT,ELIG^VADPT "RTN","MAGGTPT1",137,0) I VAERR S MAGRY="0^"_"Entry not found in Patient file." Q "RTN","MAGGTPT1",138,0) ;--- Format year as ..... YYYY or YY. "RTN","MAGGTPT1",139,0) S YYFORMAT=$S(YYFORMAT=1:"5DZ",1:"2DZ") "RTN","MAGGTPT1",140,0) S X=$$FMTE^XLFDT($P(VADM(3),"^"),YYFORMAT) "RTN","MAGGTPT1",141,0) ; // status ^ DFN ^ name ^ sex ^ DOB ^ SSN ^ S/C ^ TYPE ^ Veteran(y/n) ^ Patient Image Count "RTN","MAGGTPT1",142,0) S $P(MAGRY,"^",1,2)="1^"_DFN "RTN","MAGGTPT1",143,0) ; Fields: NAME, SEX, DATE OF BIRTH, PID/SSN "RTN","MAGGTPT1",144,0) S $P(MAGRY,"^",3,6)=$G(VADM(1))_"^"_$P(VADM(5),"^",2)_"^"_X_"^"_$S($$ISIHS^MAGSPID():VA("PID"),1:$P(VADM(2),"^")) ;P122 $sel(IHS,VA) "RTN","MAGGTPT1",145,0) ; Fields: Service Connected?, Type, Veteran Y/N? "RTN","MAGGTPT1",146,0) S $P(MAGRY,"^",7,9)=$S(+VAEL(3):"YES",1:"")_"^"_$P(VAEL(6),"^",2)_"^"_$S(+VAEL(4):"YES",1:"") "RTN","MAGGTPT1",147,0) ; Fields: Patient Image Count "RTN","MAGGTPT1",148,0) S $P(MAGRY,"^",10)=$$IMGCT(DFN,FLAGS)_"^" "RTN","MAGGTPT1",149,0) ; Additions. for Patch 41 "RTN","MAGGTPT1",150,0) ; Fields : Patient ICN "RTN","MAGGTPT1",151,0) S $P(MAGRY,"^",11)=$S($T(GETICN^MPIF001)'="":$$GETICN^MPIF001(DFN),1:"") ; P122 site may not implemented MPI "RTN","MAGGTPT1",152,0) S X=$$SITE^VASITE "RTN","MAGGTPT1",153,0) ; Fields: Site Number Prod Acct "RTN","MAGGTPT1",154,0) S $P(MAGRY,"^",12)=$P($G(X),"^",3)_"^"_"1" ; We'll default to Production Account = Yes. "RTN","MAGGTPT1",155,0) ; NEED KERNEL PATCH XU*8.0*284 FOR PROD^XUPROD "RTN","MAGGTPT1",156,0) ; Fields : the Actual value for Prod Acct "RTN","MAGGTPT1",157,0) I $L($T(PROD^XUPROD)) S $P(MAGRY,"^",13)=+$$PROD^XUPROD "RTN","MAGGTPT1",158,0) S $P(MAGRY,"^",14)="^" "RTN","MAGGTPT1",159,0) ; AGE "RTN","MAGGTPT1",160,0) S $P(MAGRY,"^",15)=VADM(4)_"^" "RTN","MAGGTPT1",161,0) D KVAR^VADPT,KVA^VADPT "RTN","MAGGTPT1",162,0) I NOLOG ; Don't update session log "RTN","MAGGTPT1",163,0) ; We'll track DFN:ICN "RTN","MAGGTPT1",164,0) E D ACTION^MAGGTAU("PAT^"_DFN_$S(ISICN:"-"_MAGDFN,1:"")) "RTN","MAGGTPT1",165,0) Q "RTN","MAGGTPT1",166,0) IMGCT(DFN,FLAGS) ; RETURN TOTAL NUMBER OF IMAGES FOR A PATIENT; "RTN","MAGGTPT1",167,0) ; FLAGS D Include deleted images (file #2005.1) "RTN","MAGGTPT1",168,0) ; "RTN","MAGGTPT1",169,0) N MAG8BOTH,MAG8ROOT,MAG8XREF,CNT "RTN","MAGGTPT1",170,0) N MAG8DT,MAG8PRX,MAG8IEN "RTN","MAGGTPT1",171,0) ; "RTN","MAGGTPT1",172,0) S CNT=0 "RTN","MAGGTPT1",173,0) S MAG8BOTH=(FLAGS["D") "RTN","MAGGTPT1",174,0) S MAG8ROOT=$NA(^MAG(2005)) "RTN","MAGGTPT1",175,0) I DFN>0 D "RTN","MAGGTPT1",176,0) . S MAG8XREF=$NA(@MAG8ROOT@("APDTPX",+DFN)) "RTN","MAGGTPT1",177,0) . ;--- "RTN","MAGGTPT1",178,0) . S (MAG8DT,MAG8PRX,MAG8IEN)="" "RTN","MAGGTPT1",179,0) . F S MAG8DT=$$MAGORD^MAGGI13($NA(@MAG8XREF@(MAG8DT)),1,MAG8BOTH) Q:MAG8DT="" D "RTN","MAGGTPT1",180,0) . . F S MAG8PRX=$$MAGORD^MAGGI13($NA(@MAG8XREF@(MAG8DT,MAG8PRX)),1,MAG8BOTH) Q:MAG8PRX="" D "RTN","MAGGTPT1",181,0) . . . F S MAG8IEN=$$MAGORD^MAGGI13($NA(@MAG8XREF@(MAG8DT,MAG8PRX,MAG8IEN)),1,MAG8BOTH) Q:MAG8IEN="" D "RTN","MAGGTPT1",182,0) . . . . I $$ISDEL^MAGGI11(MAG8IEN) S:MAG8BOTH CNT=CNT+1 Q ; Include deleted images "RTN","MAGGTPT1",183,0) . . . . S CNT=CNT+1 "RTN","MAGGTPT1",184,0) . . . . Q "RTN","MAGGTPT1",185,0) . . . Q "RTN","MAGGTPT1",186,0) . . Q "RTN","MAGGTPT1",187,0) . Q "RTN","MAGGTPT1",188,0) Q CNT "RTN","MAGGTPT1",189,0) BS5CHK(MAGRY,MAGDFN) ;RPC [MAGG PAT BS5 CHECK] "RTN","MAGGTPT1",190,0) ; Call to check the BS5 cross ref "RTN","MAGGTPT1",191,0) ; and see if any similar patients exist. "RTN","MAGGTPT1",192,0) ; If yes, all matching patients will be listed and shown to the user. "RTN","MAGGTPT1",193,0) ; "RTN","MAGGTPT1",194,0) N MAGX,MAGDPT,XDFN,XPID,CT,LNTH "RTN","MAGGTPT1",195,0) S LNTH=0 "RTN","MAGGTPT1",196,0) S MAGRY(1)="-1^Error checking cross reference" "RTN","MAGGTPT1",197,0) D GUIBS5A^DPTLK6(.MAGRY,MAGDFN) "RTN","MAGGTPT1",198,0) I MAGRY(1)=0 Q "RTN","MAGGTPT1",199,0) S CT=$O(MAGRY(""),-1)+1 "RTN","MAGGTPT1",200,0) S MAGRY(CT)=MAGRY(CT-1),MAGRY(CT-1)="0^ " "RTN","MAGGTPT1",201,0) S I="" F S I=$O(MAGRY(I)) Q:'I D "RTN","MAGGTPT1",202,0) . I $P(MAGRY(I),U)=0 Q "RTN","MAGGTPT1",203,0) . I $L($P(MAGRY(I),U,3))>LNTH S LNTH=$L($P(MAGRY(I),U,3)) "RTN","MAGGTPT1",204,0) S LNTH=LNTH+1 "RTN","MAGGTPT1",205,0) S I=1 F S I=$O(MAGRY(I)) Q:'I D "RTN","MAGGTPT1",206,0) . I $P(MAGRY(I),U)="0" S MAGRY(I)=$P(MAGRY(I),U,2) Q "RTN","MAGGTPT1",207,0) . S XDFN=$P(MAGRY(I),U,2) "RTN","MAGGTPT1",208,0) . I +XDFN=+MAGDFN S MAGX=" >>>>>> " "RTN","MAGGTPT1",209,0) . E S MAGX=" " "RTN","MAGGTPT1",210,0) . N DFN,VA S DFN=XDFN D PID^VADPT6 S XPID=VA("PID") ;P122 - Patient (VA SSN/IHS HRN) "RTN","MAGGTPT1",211,0) . I XPID?9N S XPID=$E(XPID,1,3)_"-"_$E(XPID,4,5)_"-"_$E(XPID,6,9) "RTN","MAGGTPT1",212,0) . S MAGDPT=$P(MAGRY(I),U,3),$E(MAGDPT,LNTH)=" " "RTN","MAGGTPT1",213,0) . S MAGX=MAGX_MAGDPT_" "_$$DOB^DPTLK1(XDFN)_" "_XPID "RTN","MAGGTPT1",214,0) . S MAGRY(I)=MAGX "RTN","MAGGTPT1",215,0) Q "RTN","MAGGTRPT") 0^8^B43148529 "RTN","MAGGTRPT",1,0) MAGGTRPT ;WOIFO/RED/GEK/SG - Display Associated Report ; 3/9/09 12:52pm "RTN","MAGGTRPT",2,0) ;;3.0;IMAGING;**8,48,93,122**;Mar 19, 2002;Build 92;Aug 02, 2012 "RTN","MAGGTRPT",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGGTRPT",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGGTRPT",5,0) ;; | Property of the US Government. | "RTN","MAGGTRPT",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGGTRPT",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGGTRPT",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGGTRPT",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGGTRPT",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGGTRPT",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGGTRPT",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGGTRPT",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGGTRPT",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGGTRPT",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGGTRPT",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGGTRPT",17,0) ;; "RTN","MAGGTRPT",18,0) BRK(MAGRPTY,MAGGIEN,NOCHK) ;RPC [MAGGRPT] Call to return Image report "RTN","MAGGTRPT",19,0) ; MAGGIEN is internal number in Image File ^MAG(2005, "RTN","MAGGTRPT",20,0) ; NOCHK is a Flag that tell to Not run the QA check, just return "RTN","MAGGTRPT",21,0) ; the report. "RTN","MAGGTRPT",22,0) ; "RTN","MAGGTRPT",23,0) S MAGRPTY=$NA(^TMP($J,"WSDAT")) "RTN","MAGGTRPT",24,0) K @MAGRPTY ; clean it up first. "RTN","MAGGTRPT",25,0) S @MAGRPTY@(0)="0^Building the Image report..." "RTN","MAGGTRPT",26,0) N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTRPT" "RTN","MAGGTRPT",27,0) ; "RTN","MAGGTRPT",28,0) N X,Y,Z,MAGGBRK,MAGO,MAGGRPO,MAGDFN,MAGTMPR,MAGTMPRT "RTN","MAGGTRPT",29,0) N MAGNODIS,MAGTMPR2,MAGDESC,MAGISGRP,MAGQA,%ZIS,IOP "RTN","MAGGTRPT",30,0) S MAGGBRK=1,MAGISGRP=0 "RTN","MAGGTRPT",31,0) S MAGO=+$P(MAGGIEN,"^") "RTN","MAGGTRPT",32,0) S NOCHK=+$G(NOCHK) "RTN","MAGGTRPT",33,0) ; "RTN","MAGGTRPT",34,0) I 'MAGO S @MAGRPTY@(0)="INVALID Image pointer: '"_MAGGIEN_"'" Q "RTN","MAGGTRPT",35,0) I $$ISDEL^MAGGI11(MAGO) D Q "RTN","MAGGTRPT",36,0) . S X=$$NODE^MAGGI11(MAGO) S:X'="" X=$G(@X@(2)) "RTN","MAGGTRPT",37,0) . S @MAGRPTY@(0)="0^Image : """_$P(X,U,4)_""" has been deleted." "RTN","MAGGTRPT",38,0) . Q "RTN","MAGGTRPT",39,0) ; Requesting a report, have to check Image "RTN","MAGGTRPT",40,0) ; and Group, if this image is in a group. "RTN","MAGGTRPT",41,0) I 'NOCHK D Q:'MAGQA(0) "RTN","MAGGTRPT",42,0) . D CHK^MAGGSQI(.MAGQA,MAGO) "RTN","MAGGTRPT",43,0) . I 'MAGQA(0) S @MAGRPTY@(0)="-2^"_$P(MAGQA(0),U,2,99) Q "RTN","MAGGTRPT",44,0) . S MAGGRPO=+$P(^MAG(2005,MAGO,0),U,10) "RTN","MAGGTRPT",45,0) . Q:'MAGGRPO K MAGQA "RTN","MAGGTRPT",46,0) . D CHK^MAGGSQI(.MAGQA,MAGGRPO) "RTN","MAGGTRPT",47,0) . I 'MAGQA(0) S @MAGRPTY@(0)="-2^"_$P(MAGQA(0),U,2,99) Q "RTN","MAGGTRPT",48,0) ; "RTN","MAGGTRPT",49,0) S MAGDESC="",MAGDFN=$P(^MAG(2005,MAGO,0),U,7) "RTN","MAGGTRPT",50,0) ; IN check we get Desc for Report Window header, "RTN","MAGGTRPT",51,0) ; and Define Group IEN - MAGGRPO if it exists. "RTN","MAGGTRPT",52,0) ; and Define MAGISGRP = 1 if this MAGO is a group itself "RTN","MAGGTRPT",53,0) D CHECK(.MAGO,MAGDFN,.MAGDESC,.MAGGRPO,.MAGISGRP) "RTN","MAGGTRPT",54,0) ; quit if NO PARENT DATA FILE and No long description. "RTN","MAGGTRPT",55,0) ; for the Image or the Group entry "RTN","MAGGTRPT",56,0) I ($P($G(^MAG(2005,MAGO,2)),U,6)="")&('$D(^MAG(2005,MAGO,3)))&($P($G(^MAG(2005,MAGGRPO,2)),U,6)="")&('$D(^MAG(2005,MAGGRPO,3))) S @MAGRPTY@(0)="0^No Report for this Image" Q "RTN","MAGGTRPT",57,0) S IOP="IMAGING WORKSTATION",%ZIS=0 D ^%ZIS "RTN","MAGGTRPT",58,0) I POP S @MAGRPTY@(0)="0^Can't open device IMAGING WORKSTATION" K POP Q "RTN","MAGGTRPT",59,0) U IO D BUILD "RTN","MAGGTRPT",60,0) ; "RTN","MAGGTRPT",61,0) D:IO'=IO(0) ^%ZISC "RTN","MAGGTRPT",62,0) S:+$P(@MAGRPTY@(0),"^") @MAGRPTY@(0)="1^"_MAGDESC "RTN","MAGGTRPT",63,0) Q "RTN","MAGGTRPT",64,0) BUILD ; "RTN","MAGGTRPT",65,0) K DIC,DIR "RTN","MAGGTRPT",66,0) N MAGDASH,DIWR,DIWL "RTN","MAGGTRPT",67,0) S $P(MAGDASH,"_",79)="_" "RTN","MAGGTRPT",68,0) ; If Child of group get PARENT DATA FILE from group "RTN","MAGGTRPT",69,0) I MAGGRPO S MAGTMPR=$G(^MAG(2005,MAGGRPO,2)),MAGTMPRT=$P(MAGTMPR,"^",6) ; "RTN","MAGGTRPT",70,0) ; if not child of group, then get PARENT DATA FILE from original IEN "RTN","MAGGTRPT",71,0) I 'MAGGRPO S MAGTMPR=$G(^MAG(2005,MAGO,2)),MAGTMPRT=$P(MAGTMPR,"^",6) "RTN","MAGGTRPT",72,0) S DIWR=80,DIWL=1 "RTN","MAGGTRPT",73,0) ; IF This is a group call GRPDESC which will print ALL image long descriptions , not just the group long desc "RTN","MAGGTRPT",74,0) I MAGISGRP D GRPDESC^MAGGTRP1(MAGO) "RTN","MAGGTRPT",75,0) ; If not a group, then print group long desc if it exists, "RTN","MAGGTRPT",76,0) ; and/or the long desc of the Images itself "RTN","MAGGTRPT",77,0) I 'MAGISGRP D "RTN","MAGGTRPT",78,0) . I MAGGRPO D GETDESC^MAGGTRP1(MAGGRPO) "RTN","MAGGTRPT",79,0) . D GETDESC^MAGGTRP1(MAGO) "RTN","MAGGTRPT",80,0) . W MAGDASH "RTN","MAGGTRPT",81,0) I MAGTMPRT="" D ENTRY^MAGLOG("LONGDES",DUZ,MAGO,"MAGRPT-WIN",MAGDFN,0) Q "RTN","MAGGTRPT",82,0) I $P(MAGTMPR,"^",7)="" S @MAGRPTY@(0)="0^Full report not available through this windows option." Q "RTN","MAGGTRPT",83,0) ; "RTN","MAGGTRPT",84,0) ; Surgery reports "RTN","MAGGTRPT",85,0) S MAGTMPR2=$P(^MAG(2005.03,MAGTMPRT,0),"^",1) I MAGTMPR2="SURGERY" D Q "RTN","MAGGTRPT",86,0) . S SRTN=$P(MAGTMPR,"^",7) "RTN","MAGGTRPT",87,0) . D ^SROPRPT K SRTN "RTN","MAGGTRPT",88,0) . D ENTRY^MAGLOG("SURGRPT",DUZ,MAGO,"MAGRPT",MAGDFN,0) "RTN","MAGGTRPT",89,0) ; "RTN","MAGGTRPT",90,0) ; TIU documents; "RTN","MAGGTRPT",91,0) I MAGTMPRT=8925 D Q "RTN","MAGGTRPT",92,0) . N I,MAGY "RTN","MAGGTRPT",93,0) . D TGET^TIUSRVR1(.MAGY,$P(MAGTMPR,"^",7)) "RTN","MAGGTRPT",94,0) . S I="" F S I=$O(@MAGY@(I)) Q:'I W !,@MAGY@(I) "RTN","MAGGTRPT",95,0) . D ENTRY^MAGLOG("TIURPT",DUZ,MAGO,"MAGRPT",MAGDFN,0) "RTN","MAGGTRPT",96,0) ; "RTN","MAGGTRPT",97,0) ; Medicine reports "RTN","MAGGTRPT",98,0) I MAGTMPRT>689.999&(MAGTMPRT<703) D Q "RTN","MAGGTRPT",99,0) . S MAGNODIS=1 "RTN","MAGGTRPT",100,0) . D REPRT^MCMAGDSP($P(MAGTMPR,"^",7),MAGTMPRT) "RTN","MAGGTRPT",101,0) . D ENTRY^MAGLOG("MEDRPT",DUZ,MAGO,"MAGRPT-WIN",MAGDFN,0) "RTN","MAGGTRPT",102,0) ; "RTN","MAGGTRPT",103,0) ; Radiology reports "RTN","MAGGTRPT",104,0) I MAGTMPRT=74 D Q "RTN","MAGGTRPT",105,0) . D BUILD^MAGGTRP1($P(MAGTMPR,U,7)) "RTN","MAGGTRPT",106,0) . D ENTRY^MAGLOG("RADRPT",DUZ,MAGO,"MAGRPT-WIN",MAGDFN,0) "RTN","MAGGTRPT",107,0) ; "RTN","MAGGTRPT",108,0) ;Laboratory reports "RTN","MAGGTRPT",109,0) I $P(^MAG(2005.03,MAGTMPRT,0),"^",4)=63 D @$S(MAGTMPRT=63:"AU",MAGTMPRT=63.2:"AU",1:"LAB") Q "RTN","MAGGTRPT",110,0) ; "RTN","MAGGTRPT",111,0) S @MAGRPTY@(0)="0^Full report not available through this windows option." "RTN","MAGGTRPT",112,0) Q "RTN","MAGGTRPT",113,0) ; "RTN","MAGGTRPT",114,0) CHECK(MAGO,MAGDFN,MAGDESC,MAGGRPO,MAGISGRP) ; "RTN","MAGGTRPT",115,0) ; 9/28/99 Change Report long description, so this is changed to "RTN","MAGGTRPT",116,0) ; return the desc of MAGO, and define MAGGRPO if this is child of grp "RTN","MAGGTRPT",117,0) N MAGTMP "RTN","MAGGTRPT",118,0) I '$D(^MAG(2005,MAGO)) S @MAGRPTY@(0)="0^Invalid Image pointer"_MAGO Q "RTN","MAGGTRPT",119,0) S MAGDESC=$P($G(^MAG(2005,MAGO,2)),U,4) "RTN","MAGGTRPT",120,0) I $O(^MAG(2005,MAGO,1,0)) S MAGISGRP=1 "RTN","MAGGTRPT",121,0) S MAGGRPO=+$P(^MAG(2005,MAGO,0),U,10) "RTN","MAGGTRPT",122,0) ; "RTN","MAGGTRPT",123,0) S MAGTMP=$S(MAGGRPO:MAGGRPO,1:MAGO) "RTN","MAGGTRPT",124,0) Q:'$D(^MAG(2005,MAGTMP,2)) "RTN","MAGGTRPT",125,0) ; Procedure Exam Date/Time "RTN","MAGGTRPT",126,0) S Y=$P(^MAG(2005,MAGTMP,2),U,5),X=$E(Y,4,5)_"/"_$E(Y,6,7)_"/"_($E(Y,1,3)+1700) "RTN","MAGGTRPT",127,0) ; procedure short description "RTN","MAGGTRPT",128,0) S Y=X_" "_$P(^MAG(2005,MAGTMP,0),U,8)_" "_$P($G(^MAG(2005,MAGTMP,2)),U,4) "RTN","MAGGTRPT",129,0) I MAGDFN S MAGDESC=MAGDESC_"^"_$P($G(^DPT(MAGDFN,0)),U) "RTN","MAGGTRPT",130,0) Q "RTN","MAGGTRPT",131,0) LAB ; Pathology Reports "RTN","MAGGTRPT",132,0) N LINE,MAGIOPEN,MAGSTART,MAGEND,MAGSUB,TYPE,MAGXX,MAGLR "RTN","MAGGTRPT",133,0) S TYPE=$P(^MAG(2005.03,MAGTMPRT,0),"^",2) "RTN","MAGGTRPT",134,0) S MAGSTART=$P(^MAG(2005,MAGO,2),"^",10),MAGLR=$P(^MAG(2005,MAGO,2),"^",7) "RTN","MAGGTRPT",135,0) I MAGSTART,MAGLR,$D(^LR(MAGLR,TYPE,MAGSTART,0)) D "RTN","MAGGTRPT",136,0) . S (MAGSTART,MAGEND)=9999999-MAGSTART "RTN","MAGGTRPT",137,0) . Q "RTN","MAGGTRPT",138,0) ;if no pointer back to lab file use the procedure date/time. "RTN","MAGGTRPT",139,0) I 'MAGSTART D "RTN","MAGGTRPT",140,0) . S MAGSTART=$P(^MAG(2005,MAGO,2),"^",5) "RTN","MAGGTRPT",141,0) . S (MAGSTART,MAGEND)=$P(MAGSTART,".") "RTN","MAGGTRPT",142,0) . Q "RTN","MAGGTRPT",143,0) I '$L(MAGSTART) D Q "RTN","MAGGTRPT",144,0) . S @MAGRPTY@(1)="No Procedure Date/Time entered in file 2005 for this Image" "RTN","MAGGTRPT",145,0) S TYPE=$S(TYPE="SP":"SURGICAL PATHOLOGY",TYPE="CY":"CYTOPATHOLOGY",1:TYPE) "RTN","MAGGTRPT",146,0) S MAGSUB=1,MAGSUB(TYPE)="",MAGXX="" "RTN","MAGGTRPT",147,0) S MAGIOPEN=1 "RTN","MAGGTRPT",148,0) D EN^LR7OSUM(MAGXX,MAGDFN,MAGSTART,MAGEND,10,80,.MAGSUB) "RTN","MAGGTRPT",149,0) I '$D(^TMP("LRC",$J)) S @MAGRPTY@(1)="No report(s) on file." Q "RTN","MAGGTRPT",150,0) E S LINE=0 F S LINE=$O(^TMP("LRC",$J,LINE)) Q:LINE<1 W !,^TMP("LRC",$J,LINE,0) "RTN","MAGGTRPT",151,0) D ENTRY^MAGLOG("LABRPT",DUZ,MAGO,"MAGRPT-WIN",MAGDFN,0) "RTN","MAGGTRPT",152,0) K ^TMP("LRC",$J),^TMP("LRT",$J),^TMP("LRH",$J) "RTN","MAGGTRPT",153,0) Q "RTN","MAGGTRPT",154,0) AU ;Autopsy Report "RTN","MAGGTRPT",155,0) N LRDFN,MAGSUB,MAGXX,LINE "RTN","MAGGTRPT",156,0) S MAGSUB("AUTOPSY")="" "RTN","MAGGTRPT",157,0) I '$D(MAGO)!'$D(MAGDFN) W !,"Missing imaging pointers." Q "RTN","MAGGTRPT",158,0) S LRDFN=$P(^MAG(2005,MAGO,2),"^",7),LRDFN=+LRDFN "RTN","MAGGTRPT",159,0) I 'LRDFN!'$D(^LR(LRDFN,0)) W !,"Information missing, please use DHCP Lab print options." Q "RTN","MAGGTRPT",160,0) I '$D(^LR(LRDFN,"AU")) W !,"Missing autopsy information." K LRDFN Q "RTN","MAGGTRPT",161,0) D EN^LR7OSUM(.MAGXX,MAGDFN,,,,80,.MAGSUB) "RTN","MAGGTRPT",162,0) I '$D(^TMP("LRC",$J)) S @MAGRPTY@(1)="No autopsy report on file." Q "RTN","MAGGTRPT",163,0) S LINE=0 F S LINE=$O(^TMP("LRC",$J,LINE)) Q:LINE<1 W !,^TMP("LRC",$J,LINE,0) "RTN","MAGGTRPT",164,0) D ENTRY^MAGLOG("LABRPT",DUZ,MAGO,"MAGRPT-WIN",MAGDFN,0) "RTN","MAGGTRPT",165,0) K ^TMP("LRC",$J) "RTN","MAGGTRPT",166,0) Q "RTN","MAGGTRPT",167,0) ERRA ; "RTN","MAGGTRPT",168,0) S @MAGRPTY@(0)="0^ERROR "_$$EC^%ZOSV "RTN","MAGGTRPT",169,0) D @^%ZOSF("ERRTN") "RTN","MAGGTRPT",170,0) Q "RTN","MAGGTU4C") 0^9^B5095269 "RTN","MAGGTU4C",1,0) MAGGTU4C ;WOIFO/SG/NST/JSL - VERSION CONTROL (CLINICAL CAPTURE) ; 08 Mar 2011 2:52 PM "RTN","MAGGTU4C",2,0) ;;3.0;IMAGING;**93,94,106,117,122**;Mar 19, 2002;Build 92;Aug 02, 2012 "RTN","MAGGTU4C",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGGTU4C",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGGTU4C",5,0) ;; | Property of the US Government. | "RTN","MAGGTU4C",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGGTU4C",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGGTU4C",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGGTU4C",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGGTU4C",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGGTU4C",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGGTU4C",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGGTU4C",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGGTU4C",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGGTU4C",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGGTU4C",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGGTU4C",17,0) ;; "RTN","MAGGTU4C",18,0) ; This routine contains the version control code and data specific "RTN","MAGGTU4C",19,0) ; to the Clinical Capture application. DO NOT ADD ANYTHING ELSE! "RTN","MAGGTU4C",20,0) Q "RTN","MAGGTU4C",21,0) ; "RTN","MAGGTU4C",22,0) CLVERCT ;***** VERSION CONTROL TABLE FOR THE CLINICAL CAPTURE CLIENTS "RTN","MAGGTU4C",23,0) ;;================================================================== "RTN","MAGGTU4C",24,0) ;;| Version |Build|Seq #| Comment | "RTN","MAGGTU4C",25,0) ;;|---------+-----+------------------------------------------------| "RTN","MAGGTU4C",26,0) ;;| 3.0.122 | 15 | 55 | Jul 2012 | "RTN","MAGGTU4C",27,0) ;;| 3.0.117 | 8 | 45 | Jul 2011 | "RTN","MAGGTU4C",28,0) ;;| 3.0.106 | 13 | 40 | Feb 2011 | "RTN","MAGGTU4C",29,0) ;;| 3.0.94 | 12 | 35 | May 2010 | "RTN","MAGGTU4C",30,0) ;;================================================================== "RTN","MAGGTU4C",31,0) ; "RTN","MAGGTU4C",32,0) ; Each row of the version control table contains the version and "RTN","MAGGTU4C",33,0) ; build number of a supported client. Released patches must also "RTN","MAGGTU4C",34,0) ; indicate the sequential numbers. "RTN","MAGGTU4C",35,0) ; "RTN","MAGGTU4C",36,0) ; Sort order of the rows does not matter. However, the reversed "RTN","MAGGTU4C",37,0) ; order of patch sequential numbers is recommended. "RTN","MAGGTU4C",38,0) ; "RTN","MAGGTU4C",39,0) Q "RTN","MAGGTU4C",40,0) ; "RTN","MAGGTU4C",41,0) ;***** ADDS A CLIENT-SPECIFIC WARNING (IF NECESSARY) "RTN","MAGGTU4C",42,0) ; "RTN","MAGGTU4C",43,0) ; .MAGBUF Reference to a local array that the warning text "RTN","MAGGTU4C",44,0) ; is returned to. It is appended to the RPC result "RTN","MAGGTU4C",45,0) ; array by the caller (WARNING^MAGGTU41). "RTN","MAGGTU4C",46,0) ; "RTN","MAGGTU4C",47,0) ; CLVER Client application version (Major.Minor.Patch.Build) "RTN","MAGGTU4C",48,0) ; "RTN","MAGGTU4C",49,0) ; CVRC Version check code returned by the $$CHKVER1^MAGGTU41 "RTN","MAGGTU4C",50,0) ; "RTN","MAGGTU4C",51,0) ; Notes "RTN","MAGGTU4C",52,0) ; ===== "RTN","MAGGTU4C",53,0) ; "RTN","MAGGTU4C",54,0) ; If the RPC result array already contains an error message that "RTN","MAGGTU4C",55,0) ; will terminate the client, application, this procedure is not "RTN","MAGGTU4C",56,0) ; called. "RTN","MAGGTU4C",57,0) ; "RTN","MAGGTU4C",58,0) WARNING(MAGBUF,CLVER,CVRC) ; "RTN","MAGGTU4C",59,0) Q "RTN","MAGGTU4D") 0^10^B5101074 "RTN","MAGGTU4D",1,0) MAGGTU4D ;WOIFO/SG/NST/JSL - VERSION CONTROL (CLINICAL DISPLAY) ; 08 Mar 2011 2:52 PM "RTN","MAGGTU4D",2,0) ;;3.0;IMAGING;**93,94,106,117,122**;Mar 19, 2002;Build 92;Aug 02, 2012 "RTN","MAGGTU4D",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGGTU4D",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGGTU4D",5,0) ;; | Property of the US Government. | "RTN","MAGGTU4D",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGGTU4D",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGGTU4D",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGGTU4D",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGGTU4D",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGGTU4D",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGGTU4D",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGGTU4D",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGGTU4D",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGGTU4D",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGGTU4D",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGGTU4D",17,0) ;; "RTN","MAGGTU4D",18,0) ; This routine contains the version control code and data specific "RTN","MAGGTU4D",19,0) ; to the Clinical Display application. DO NOT ADD ANYTHING ELSE! "RTN","MAGGTU4D",20,0) Q "RTN","MAGGTU4D",21,0) ; "RTN","MAGGTU4D",22,0) CLVERCT ;***** VERSION CONTROL TABLE FOR THE CLINICAL DISPLAY CLIENTS "RTN","MAGGTU4D",23,0) ;;================================================================== "RTN","MAGGTU4D",24,0) ;;| Version |Build|Seq #| Comment | "RTN","MAGGTU4D",25,0) ;;|---------+-----+------------------------------------------------| "RTN","MAGGTU4D",26,0) ;;| 3.0.122 | 15 | 55 | Jul 2012 | "RTN","MAGGTU4D",27,0) ;;| 3.0.117 | 8 | 45 | Jul 2011 | "RTN","MAGGTU4D",28,0) ;;| 3.0.106 | 13 | 40 | Feb 2011 | "RTN","MAGGTU4D",29,0) ;;| 3.0.94 | 12 | 35 | May 2010 | "RTN","MAGGTU4D",30,0) ;;================================================================== "RTN","MAGGTU4D",31,0) ; "RTN","MAGGTU4D",32,0) ; Each row of the version control table contains the version and "RTN","MAGGTU4D",33,0) ; build number of a supported client. Released patches must also "RTN","MAGGTU4D",34,0) ; indicate the sequential numbers. "RTN","MAGGTU4D",35,0) ; "RTN","MAGGTU4D",36,0) ; Sort order of the rows does not matter. However, the reversed "RTN","MAGGTU4D",37,0) ; order of patch sequential numbers is recommended. "RTN","MAGGTU4D",38,0) ; "RTN","MAGGTU4D",39,0) Q "RTN","MAGGTU4D",40,0) ; "RTN","MAGGTU4D",41,0) ;***** ADDS A CLIENT-SPECIFIC WARNING (IF NECESSARY) "RTN","MAGGTU4D",42,0) ; "RTN","MAGGTU4D",43,0) ; .MAGBUF Reference to a local array that the warning text "RTN","MAGGTU4D",44,0) ; is returned to. It is appended to the RPC result "RTN","MAGGTU4D",45,0) ; array by the caller (WARNING^MAGGTU41). "RTN","MAGGTU4D",46,0) ; "RTN","MAGGTU4D",47,0) ; Text must be stored at nodes with positive numbers "RTN","MAGGTU4D",48,0) ; or at the 0-node descendent from those nodes. "RTN","MAGGTU4D",49,0) ; "RTN","MAGGTU4D",50,0) ; CLVER Client application version (Major.Minor.Patch.Build) "RTN","MAGGTU4D",51,0) ; "RTN","MAGGTU4D",52,0) ; CVRC Version check code returned by the $$CHKVER1^MAGGTU41 "RTN","MAGGTU4D",53,0) ; "RTN","MAGGTU4D",54,0) ; Notes "RTN","MAGGTU4D",55,0) ; ===== "RTN","MAGGTU4D",56,0) ; "RTN","MAGGTU4D",57,0) ; If the RPC result array already contains an error message that "RTN","MAGGTU4D",58,0) ; will terminate the client, application, this procedure is not "RTN","MAGGTU4D",59,0) ; called. "RTN","MAGGTU4D",60,0) ; "RTN","MAGGTU4D",61,0) WARNING(MAGBUF,CLVER,CVRC) ; "RTN","MAGGTU4D",62,0) Q "RTN","MAGGTU4L") 0^11^B5095350 "RTN","MAGGTU4L",1,0) MAGGTU4L ;WOIFO/SG/NST/JSL - VERSION CONTROL (CLINICAL UTILITIES) ; 08 Mar 2011 2:52 PM "RTN","MAGGTU4L",2,0) ;;3.0;IMAGING;**93,94,106,117,122**;Mar 19, 2002;Build 92;Aug 02, 2012 "RTN","MAGGTU4L",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGGTU4L",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGGTU4L",5,0) ;; | Property of the US Government. | "RTN","MAGGTU4L",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGGTU4L",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGGTU4L",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGGTU4L",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGGTU4L",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGGTU4L",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGGTU4L",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGGTU4L",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGGTU4L",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGGTU4L",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGGTU4L",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGGTU4L",17,0) ;; "RTN","MAGGTU4L",18,0) ; This routine contains the version control code and data specific "RTN","MAGGTU4L",19,0) ; to the Clinical Utilities application. DO NOT ADD ANYTHING ELSE! "RTN","MAGGTU4L",20,0) Q "RTN","MAGGTU4L",21,0) ; "RTN","MAGGTU4L",22,0) CLVERCT ;***** VERSION CONTROL TABLE FOR THE CLINICAL UTILITIES "RTN","MAGGTU4L",23,0) ;;================================================================== "RTN","MAGGTU4L",24,0) ;;| Version |Build|Seq #| Comment | "RTN","MAGGTU4L",25,0) ;;|---------+-----+------------------------------------------------| "RTN","MAGGTU4L",26,0) ;;| 3.0.122 | 15 | 55 | Jul 2012 | "RTN","MAGGTU4L",27,0) ;;| 3.0.117 | 8 | 45 | Jul 2011 | "RTN","MAGGTU4L",28,0) ;;| 3.0.106 | 13 | 40 | Feb 2011 | "RTN","MAGGTU4L",29,0) ;;| 3.0.94 | 12 | 35 | May 2010 | "RTN","MAGGTU4L",30,0) ;;================================================================== "RTN","MAGGTU4L",31,0) ; "RTN","MAGGTU4L",32,0) ; Each row of the version control table contains the version and "RTN","MAGGTU4L",33,0) ; build number of a supported client. Released patches must also "RTN","MAGGTU4L",34,0) ; indicate the sequential numbers. "RTN","MAGGTU4L",35,0) ; "RTN","MAGGTU4L",36,0) ; Sort order of the rows does not matter. However, the reversed "RTN","MAGGTU4L",37,0) ; order of patch sequential numbers is recommended. "RTN","MAGGTU4L",38,0) ; "RTN","MAGGTU4L",39,0) Q "RTN","MAGGTU4L",40,0) ; "RTN","MAGGTU4L",41,0) ;***** ADDS A CLIENT-SPECIFIC WARNING (IF NECESSARY) "RTN","MAGGTU4L",42,0) ; "RTN","MAGGTU4L",43,0) ; .MAGBUF Reference to a local array that the warning text "RTN","MAGGTU4L",44,0) ; is returned to. It is appended to the RPC result "RTN","MAGGTU4L",45,0) ; array by the caller (WARNING^MAGGTU41). "RTN","MAGGTU4L",46,0) ; "RTN","MAGGTU4L",47,0) ; CLVER Client application version (Major.Minor.Patch.Build) "RTN","MAGGTU4L",48,0) ; "RTN","MAGGTU4L",49,0) ; CVRC Version check code returned by the $$CHKVER1^MAGGTU41 "RTN","MAGGTU4L",50,0) ; "RTN","MAGGTU4L",51,0) ; Notes "RTN","MAGGTU4L",52,0) ; ===== "RTN","MAGGTU4L",53,0) ; "RTN","MAGGTU4L",54,0) ; If the RPC result array already contains an error message that "RTN","MAGGTU4L",55,0) ; will terminate the client, application, this procedure is not "RTN","MAGGTU4L",56,0) ; called. "RTN","MAGGTU4L",57,0) ; "RTN","MAGGTU4L",58,0) WARNING(MAGBUF,CLVER,CVRC) ; "RTN","MAGGTU4L",59,0) Q "RTN","MAGGTU4T") 0^12^B5095422 "RTN","MAGGTU4T",1,0) MAGGTU4T ;WOIFO/SG/NST/JSL - VERSION CONTROL (TELEREADER) ; 08 Mar 2011 2:52 PM "RTN","MAGGTU4T",2,0) ;;3.0;IMAGING;**93,94,106,117,122**;Mar 19, 2002;Build 92;Aug 02, 2012 "RTN","MAGGTU4T",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGGTU4T",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGGTU4T",5,0) ;; | Property of the US Government. | "RTN","MAGGTU4T",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGGTU4T",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGGTU4T",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGGTU4T",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGGTU4T",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGGTU4T",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGGTU4T",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGGTU4T",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGGTU4T",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGGTU4T",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGGTU4T",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGGTU4T",17,0) ;; "RTN","MAGGTU4T",18,0) ; This routine contains the version control code and data specific "RTN","MAGGTU4T",19,0) ; to the TeleReader application. DO NOT ADD ANYTHING ELSE! "RTN","MAGGTU4T",20,0) Q "RTN","MAGGTU4T",21,0) ; "RTN","MAGGTU4T",22,0) CLVERCT ;***** VERSION CONTROL TABLE FOR THE TELEREADER CLIENTS "RTN","MAGGTU4T",23,0) ;;================================================================== "RTN","MAGGTU4T",24,0) ;;| Version |Build|Seq #| Comment | "RTN","MAGGTU4T",25,0) ;;|---------+-----+------------------------------------------------| "RTN","MAGGTU4T",26,0) ;;| 3.0.122 | 15 | 55 | Jul 2012 | "RTN","MAGGTU4T",27,0) ;;| 3.0.117 | 8 | 45 | Jul 2011 | "RTN","MAGGTU4T",28,0) ;;| 3.0.106 | 13 | 40 | Feb 2011 | "RTN","MAGGTU4T",29,0) ;;| 3.0.94 | 12 | 35 | May 2010 | "RTN","MAGGTU4T",30,0) ;;================================================================== "RTN","MAGGTU4T",31,0) ; "RTN","MAGGTU4T",32,0) ; Each row of the version control table contains the version and "RTN","MAGGTU4T",33,0) ; build number of a supported client. Released patches must also "RTN","MAGGTU4T",34,0) ; indicate the sequential numbers. "RTN","MAGGTU4T",35,0) ; "RTN","MAGGTU4T",36,0) ; Sort order of the rows does not matter. However, the reversed "RTN","MAGGTU4T",37,0) ; order of patch sequential numbers is recommended. "RTN","MAGGTU4T",38,0) ; "RTN","MAGGTU4T",39,0) Q "RTN","MAGGTU4T",40,0) ; "RTN","MAGGTU4T",41,0) ;***** ADDS A CLIENT-SPECIFIC WARNING (IF NECESSARY) "RTN","MAGGTU4T",42,0) ; "RTN","MAGGTU4T",43,0) ; .MAGBUF Reference to a local array that the warning text "RTN","MAGGTU4T",44,0) ; is returned to. It is appended to the RPC result "RTN","MAGGTU4T",45,0) ; array by the caller (WARNING^MAGGTU41). "RTN","MAGGTU4T",46,0) ; "RTN","MAGGTU4T",47,0) ; CLVER Client application version (Major.Minor.Patch.Build) "RTN","MAGGTU4T",48,0) ; "RTN","MAGGTU4T",49,0) ; CVRC Version check code returned by the $$CHKVER1^MAGGTU41 "RTN","MAGGTU4T",50,0) ; "RTN","MAGGTU4T",51,0) ; Notes "RTN","MAGGTU4T",52,0) ; ===== "RTN","MAGGTU4T",53,0) ; "RTN","MAGGTU4T",54,0) ; If the RPC result array already contains an error message that "RTN","MAGGTU4T",55,0) ; will terminate the client, application, this procedure is not "RTN","MAGGTU4T",56,0) ; called. "RTN","MAGGTU4T",57,0) ; "RTN","MAGGTU4T",58,0) WARNING(MAGBUF,CLVER,CVRC) ; "RTN","MAGGTU4T",59,0) Q "RTN","MAGGTUP") 0^13^B26333617 "RTN","MAGGTUP",1,0) MAGGTUP ;WOIFO/GEK/SG/NST/JSL - Imaging System User preferences ; 07 Mar 2011 2:14 PM "RTN","MAGGTUP",2,0) ;;3.0;IMAGING;**7,8,48,45,59,93,94,117,122**;Mar 19, 2002;Build 92;Aug 02, 2012 "RTN","MAGGTUP",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGGTUP",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGGTUP",5,0) ;; | Property of the US Government. | "RTN","MAGGTUP",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGGTUP",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGGTUP",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGGTUP",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGGTUP",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGGTUP",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGGTUP",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGGTUP",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGGTUP",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGGTUP",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGGTUP",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGGTUP",17,0) ;; "RTN","MAGGTUP",18,0) Q "RTN","MAGGTUP",19,0) GET(MAGRY,CODE) ;RPC [MAGGUPREFGET] Call to Get user preferences. "RTN","MAGGTUP",20,0) ; "RTN","MAGGTUP",21,0) N Y,PRFIEN,J,X,Z,NODE,MAGPREF "RTN","MAGGTUP",22,0) N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR" "RTN","MAGGTUP",23,0) K MAGRY "RTN","MAGGTUP",24,0) S MAGRY(0)="0^Error: Attempting to access user preference" "RTN","MAGGTUP",25,0) S PRFIEN=$O(^MAG(2006.18,"AC",DUZ,"")) "RTN","MAGGTUP",26,0) ; if first time user "RTN","MAGGTUP",27,0) I 'PRFIEN S PRFIEN=$$NEWUSER(DUZ) Q:PRFIEN=-1 "RTN","MAGGTUP",28,0) ; merge default settings into User's Preferences "RTN","MAGGTUP",29,0) D MERGE(PRFIEN) "RTN","MAGGTUP",30,0) ; This returns the users default Filter, and creates filters if needed. "RTN","MAGGTUP",31,0) S $P(^MAG(2006.18,PRFIEN,"LISTWIN1"),"^",3)=$$DFTFLT^MAGGSFLT(DUZ) "RTN","MAGGTUP",32,0) S MAGRY(0)="1^User Preferences returned." "RTN","MAGGTUP",33,0) ; "RTN","MAGGTUP",34,0) ; At This point. Then entry in 2006.18 for User DUZ in complete "RTN","MAGGTUP",35,0) ; it has been merged with defaults, and has a valid Default Filter. "RTN","MAGGTUP",36,0) ; "RTN","MAGGTUP",37,0) ; if caller only wants one node, get it then quit. "RTN","MAGGTUP",38,0) I $L($G(CODE)) S MAGRY($O(MAGRY(""),-1)+1)=CODE_"^"_$G(^MAG(2006.18,PRFIEN,CODE)) Q "RTN","MAGGTUP",39,0) ; "RTN","MAGGTUP",40,0) ; loop through User Pref file, returning all nodes. "RTN","MAGGTUP",41,0) ; Next line was Un-Commented out. BUT Clients before Patch 8 need it. "RTN","MAGGTUP",42,0) S MAGRY($O(MAGRY(""),-1)+1)="SYS^"_^MAG(2006.18,PRFIEN,0) "RTN","MAGGTUP",43,0) S NODE="" "RTN","MAGGTUP",44,0) F S NODE=$O(^MAG(2006.18,PRFIEN,NODE)) Q:(NODE="") D "RTN","MAGGTUP",45,0) . S MAGRY($O(MAGRY(""),-1)+1)=NODE_"^"_^MAG(2006.18,PRFIEN,NODE) "RTN","MAGGTUP",46,0) Q "RTN","MAGGTUP",47,0) MERGE(PRFIEN) ; Merge default settings into User Prefs returned. "RTN","MAGGTUP",48,0) ; This will assure the User Prefs returned have values for New fields. "RTN","MAGGTUP",49,0) ; PRFIEN = IEN in IMAGING USER PREFERENCES File. "RTN","MAGGTUP",50,0) N NODE,DARR,MN,YN "RTN","MAGGTUP",51,0) D DFLTARR(.DARR) "RTN","MAGGTUP",52,0) S NODE="" F S NODE=$O(DARR($J,NODE)) Q:(NODE="") D "RTN","MAGGTUP",53,0) . S YN=DARR($J,NODE) "RTN","MAGGTUP",54,0) . S MN=$G(^MAG(2006.18,PRFIEN,NODE)) "RTN","MAGGTUP",55,0) . F J=1:1:$L(YN,"^") I ($P(YN,"^",J)'=""),($P(MN,"^",J)="") S $P(MN,"^",J)=$P(YN,"^",J) "RTN","MAGGTUP",56,0) . S ^MAG(2006.18,PRFIEN,NODE)=MN "RTN","MAGGTUP",57,0) ; "RTN","MAGGTUP",58,0) Q "RTN","MAGGTUP",59,0) SAVE(MAGRY,DATA) ;RPC [MAGGUPREFSAVE] Call to save User Preferences "RTN","MAGGTUP",60,0) ; "RTN","MAGGTUP",61,0) S MAGRY="0^Error: Saving user preferences." "RTN","MAGGTUP",62,0) N X,Y,NODE,PRFIEN,J "RTN","MAGGTUP",63,0) N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR" "RTN","MAGGTUP",64,0) S PRFIEN=$O(^MAG(2006.18,"AC",DUZ,"")) I 'PRFIEN S PRFIEN=$$NEWUSER(DUZ) Q:PRFIEN=-1 "RTN","MAGGTUP",65,0) S NODE="" F S NODE=$O(DATA(NODE)) Q:NODE="" D "RTN","MAGGTUP",66,0) . S X=$G(^MAG(2006.18,PRFIEN,NODE)) "RTN","MAGGTUP",67,0) . S Y=DATA(NODE) "RTN","MAGGTUP",68,0) . F J=1:1:$L(Y,"^") I $L($P(Y,"^",J)) S $P(X,"^",J)=$P(Y,"^",J) "RTN","MAGGTUP",69,0) . S ^MAG(2006.18,PRFIEN,NODE)=X "RTN","MAGGTUP",70,0) S MAGRY="1^User Preferences saved." "RTN","MAGGTUP",71,0) Q "RTN","MAGGTUP",72,0) NEWUSER(USER) ;Returns IEN of New entry in IMAGING USER PREFERENCES File. "RTN","MAGGTUP",73,0) K DD,DO "RTN","MAGGTUP",74,0) N DIC "RTN","MAGGTUP",75,0) S X=$E($$GET1^DIQ(200,USER_",",.01),1,15)_" (SETTING 1)" "RTN","MAGGTUP",76,0) S DIC="^MAG(2006.18,",DIC(0)="L" "RTN","MAGGTUP",77,0) S DIC("DR")="1////"_USER_";2////12;3////12;" D FILE^DICN "RTN","MAGGTUP",78,0) I Y=-1 Q Y "RTN","MAGGTUP",79,0) D DEFAULT(+Y) "RTN","MAGGTUP",80,0) Q +Y "RTN","MAGGTUP",81,0) DEFAULT(NEWPREF) ;Setup a new IMAGING USER PREFERENCES entry, with System defaults. "RTN","MAGGTUP",82,0) ; NEWPREF = IEN in IMAGING USER PREFERENCES File "RTN","MAGGTUP",83,0) N DFTPREF,N0,DFTSET "RTN","MAGGTUP",84,0) S DFTPREF=+$$GET1^DIQ(2006.1,$$PLACE^MAGBAPI(DUZ(2)),100,"I") ; DBI - SEB 9/20/2002 "RTN","MAGGTUP",85,0) I DFTPREF,$D(^MAG(2006.18,DFTPREF)) D DEFUSER(NEWPREF,DFTPREF) Q "RTN","MAGGTUP",86,0) ; save the User name, Setting Name "RTN","MAGGTUP",87,0) S N0=$P(^MAG(2006.18,NEWPREF,0),U,1,4) "RTN","MAGGTUP",88,0) D DFLTARR(.DFTSET) "RTN","MAGGTUP",89,0) M ^MAG(2006.18,NEWPREF)=DFTSET($J) "RTN","MAGGTUP",90,0) ; reset User name, Setting name. "RTN","MAGGTUP",91,0) S $P(^MAG(2006.18,NEWPREF,0),U,1,4)=N0 "RTN","MAGGTUP",92,0) Q "RTN","MAGGTUP",93,0) DEFUSER(NEWPREF,DFTPREF) ;Merge New User preference with the Default User as defined "RTN","MAGGTUP",94,0) ; in the Imaging Site Parameters file "RTN","MAGGTUP",95,0) ; NEWPREF = new IMAGING USER PREFERENCE (IEN) "RTN","MAGGTUP",96,0) ; DFLTPREF = DEFAULT USER PREFERENCE in the IMAGING SITE PARAMETERS File "RTN","MAGGTUP",97,0) ; "RTN","MAGGTUP",98,0) N X0 "RTN","MAGGTUP",99,0) S X0=$P(^MAG(2006.18,NEWPREF,0),"^",1,4) "RTN","MAGGTUP",100,0) M ^MAG(2006.18,NEWPREF)=^MAG(2006.18,DFTPREF) "RTN","MAGGTUP",101,0) S $P(^MAG(2006.18,NEWPREF,0),"^",1,4)=X0 "RTN","MAGGTUP",102,0) ; remove default user's default Filter from new user's preferences. "RTN","MAGGTUP",103,0) S $P(^MAG(2006.18,NEWPREF,"LISTWIN1"),"^",3)="" "RTN","MAGGTUP",104,0) Q "RTN","MAGGTUP",105,0) DFLTARR(ARR) ; Return an Array of All Default settings "RTN","MAGGTUP",106,0) K ARR($J) "RTN","MAGGTUP",107,0) S ARR($J,0)="^^^^0^1^1^" "RTN","MAGGTUP",108,0) S ARR($J,"DICOMWIN")="2^320^292^724^487" "RTN","MAGGTUP",109,0) S ARR($J,"IMAGEGRID")="2^487^2^786^426^1^35,73,67,34,110,46,69,96,76,79,25,0,0^1^" "RTN","MAGGTUP",110,0) S ARR($J,"REPORT")="2^2^333^722^437^Courier^^10" "RTN","MAGGTUP",111,0) S ARR($J,"RADLISTWIN")="2^487^10^433^172^0" "RTN","MAGGTUP",112,0) S ARR($J,"MAIN")="2^1^1^487^172^1" "RTN","MAGGTUP",113,0) S ARR($J,"ABS")="2^1^160^486^326^134^113^1^1^3^24^2^1^0" "RTN","MAGGTUP",114,0) S ARR($J,"FULL")="2^310^282^714^487^674^447^^1^1^4^1^0^1" "RTN","MAGGTUP",115,0) S ARR($J,"GROUP")="2^24^231^427^457^110^70^^1^2^24^2^1^0" "RTN","MAGGTUP",116,0) S ARR($J,"DOC")="2^298^24^729^429^0^0^3^1^2^4^2^0" "RTN","MAGGTUP",117,0) S ARR($J,"CAPCONFIG")="1^1^1^0^0^0^0^1^0^1^0^0^1^1^0^0^1^1^1^1^1^1^200^400^300^100^500^0^0^1^0^1" "RTN","MAGGTUP",118,0) ; 1 2 3 4 5 6 7 8 9 0 1 2 3 456 7 8 "RTN","MAGGTUP",119,0) S ARR($J,"CAPTIU")="261^414^455^654^66^67^280^1^1^~^1^100^-12^^^1^1^^" "RTN","MAGGTUP",120,0) S ARR($J,"RIVER")="1^0^0^0^0" "RTN","MAGGTUP",121,0) S ARR($J,"APPMSG")="0^0^" "RTN","MAGGTUP",122,0) S ARR($J,"APPPREFS")="1^7^7^10^^0^0^0^1^0" ; SET $P 9 =1 for Deleted Image Placeholder default "RTN","MAGGTUP",123,0) S ARR($J,"LISTWIN1")="0^0^^1^0" "RTN","MAGGTUP",124,0) ;--- MAG*3*93 "RTN","MAGGTUP",125,0) S ARR($J,"IEDIT")="2^445^295^710^433" "RTN","MAGGTUP",126,0) S ARR($J,"ISTYLE")="0^0^1^1^1^3^1^1^0^1^1^1^,101,460,288,2,2,288,298,259,160," "RTN","MAGGTUP",127,0) S ARR($J,"IVERIFY")="2^184^56^1201^871^1^0^1^1^44,139,0,0,0,42,0,0,0,0,0,0,0,0,0,58,0,," "RTN","MAGGTUP",128,0) ; "RTN","MAGGTUP",129,0) ; MAG*3.0*94 "RTN","MAGGTUP",130,0) S ARR($J,"EKG")="2^1^1^600^400^0" "RTN","MAGGTUP",131,0) ; MAG*3.0*122 "RTN","MAGGTUP",132,0) S ARR($J,"ANNOTCAPTURE")="Arial^0^36^5^32768^159^0^35^35^0^0" "RTN","MAGGTUP",133,0) S ARR($J,"ANNOTDISPLAY")="Arial^0^36^5^32768^159^0^35^35^0^0^1" "RTN","MAGGTUP",134,0) Q "RTN","MAGIP122") 0^^B8703636 "RTN","MAGIP122",1,0) MAGIP122 ;WOIFO/JSL - INSTALL CODE FOR MAG*3.0*122 ; 08 Nov 2010 3:17 PM "RTN","MAGIP122",2,0) ;;3.0;IMAGING;**122**;Mar 19, 2002;Build 92;Aug 02, 2012 "RTN","MAGIP122",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGIP122",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGIP122",5,0) ;; | Property of the US Government. | "RTN","MAGIP122",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGIP122",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGIP122",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGIP122",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGIP122",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGIP122",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGIP122",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGIP122",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGIP122",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGIP122",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGIP122",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGIP122",17,0) ;; "RTN","MAGIP122",18,0) Q "RTN","MAGIP122",19,0) ; "RTN","MAGIP122",20,0) ;+++++ INSTALLATION ERROR HANDLING "RTN","MAGIP122",21,0) ERROR ; "RTN","MAGIP122",22,0) S:$D(XPDNM) XPDABORT=1 "RTN","MAGIP122",23,0) ;--- Display the messages and store them to the INSTALL file "RTN","MAGIP122",24,0) D DUMP^MAGUERR1(),ABTMSG^MAGKIDS() "RTN","MAGIP122",25,0) Q "RTN","MAGIP122",26,0) ; "RTN","MAGIP122",27,0) ;***** POST-INSTALL CODE "RTN","MAGIP122",28,0) POST ; "RTN","MAGIP122",29,0) D CLEAR^MAGUERR(1),CHKFNSZ "RTN","MAGIP122",30,0) N ERROR D EN^XPAR("SYS","MAG IMAGE ALLOW ANNOTATE",,"NO",.ERROR) "RTN","MAGIP122",31,0) D BMES^XPDUTL("Turn off MAG IMAGE Annotation by default - EDIT PARAMETER VALUES(OPTION NAME)") "RTN","MAGIP122",32,0) ;--- Link new remote procedures to the Broker context option "RTN","MAGIP122",33,0) D BMES^XPDUTL("Updating MAG WINDOWS: RPCs ") "RTN","MAGIP122",34,0) D ADDRPC("MAG ANNOT GET IMAGE") "RTN","MAGIP122",35,0) D ADDRPC("MAG ANNOT GET IMAGE DETAIL") "RTN","MAGIP122",36,0) D ADDRPC("MAG ANNOT STORE IMAGE DETAIL") "RTN","MAGIP122",37,0) D ADDRPC("MAG ANNOT IMAGE ALLOW") "RTN","MAGIP122",38,0) D ADDRPC("MAG DICOM GET AGENCY") "RTN","MAGIP122",39,0) D ADDRPC("MAGJ GET TREATING LIST") "RTN","MAGIP122",40,0) D REMTASK^MAGQE4,STTASK^MAGQE4 "RTN","MAGIP122",41,0) D BMES^XPDUTL("Post Install Mail Message: "_$$FMTE^XLFDT($$NOW^XLFDT)) "RTN","MAGIP122",42,0) D INS^MAGQBUT4(XPDNM,DUZ,$$NOW^XLFDT,XPDA) "RTN","MAGIP122",43,0) Q "RTN","MAGIP122",44,0) ADDRPC(NAME) ;Adding Remote Procedure Call "RTN","MAGIP122",45,0) Q:$G(NAME)="" ;IA # 4011 "RTN","MAGIP122",46,0) I $$FIND1^DIC(8994,,"O",NAME,"B",,"MAGMSG")>0 D "RTN","MAGIP122",47,0) . N DIC,Y,X S DIC="^DIC(19,",DIC(0)="",X="MAG WINDOWS" D ^DIC Q:$P(Y,U)<0 "RTN","MAGIP122",48,0) . I '$D(^DIC(19,+Y,"RPC","B",$O(^XWB(8994,"B",NAME,"")))) D ADDRPC^MAGQBUT4(NAME,"MAG WINDOWS") W "*" "RTN","MAGIP122",49,0) Q "RTN","MAGIP122",50,0) CHKFNSZ ;Checking default annotate font size (11->36) "RTN","MAGIP122",51,0) N USR,Y "RTN","MAGIP122",52,0) S USR=0 F S USR=$O(^MAG(2006.18,USR)) Q:'USR D "RTN","MAGIP122",53,0) . S Y=$G(^MAG(2006.18,USR,"ANNOTCAPTURE")) I $P(Y,U,3)=11 S $P(^("ANNOTCAPTURE"),U,3)=36 W "|" "RTN","MAGIP122",54,0) . S Y=$G(^MAG(2006.18,USR,"ANNOTDISPLAY")) I $P(Y,U,3)=11 S $P(^("ANNOTDISPLAY"),U,3)=36 W "-" "RTN","MAGIP122",55,0) . Q "RTN","MAGIP122",56,0) Q "RTN","MAGIP122",57,0) ; "RTN","MAGSANNO") 0^14^B90488683 "RTN","MAGSANNO",1,0) MAGSANNO ;WOIFO/JSL/GEK - IMAGING ANNOTATION UTILITY RPCS ; 9 Jun 2011 11:43 AM "RTN","MAGSANNO",2,0) ;;3.0;IMAGING;**122**;Mar 19, 2002;Build 92;Aug 02, 2012 "RTN","MAGSANNO",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGSANNO",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGSANNO",5,0) ;; | Property of the US Government. | "RTN","MAGSANNO",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGSANNO",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGSANNO",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGSANNO",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGSANNO",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGSANNO",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGSANNO",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGSANNO",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGSANNO",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGSANNO",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGSANNO",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGSANNO",17,0) ;; "RTN","MAGSANNO",18,0) Q "RTN","MAGSANNO",19,0) ;------------------------------------------------------------------- "RTN","MAGSANNO",20,0) ;***** RETURNS THE LIST OF IMAGE ANNOTATIONS "RTN","MAGSANNO",21,0) ; RPC: MAG ANNOT GET IMAGE "RTN","MAGSANNO",22,0) ; "RTN","MAGSANNO",23,0) ; .MAGOUT Reference to a local variable where the results "RTN","MAGSANNO",24,0) ; are returned to. "RTN","MAGSANNO",25,0) ; .MAGIEN Internal Entry Number of IMAGE file being annotated "RTN","MAGSANNO",26,0) ; "RTN","MAGSANNO",27,0) ; Return Values "RTN","MAGSANNO",28,0) ; ============= "RTN","MAGSANNO",29,0) ; If MAGOUT(0) is defined and its 1st '^'-piece is 0, then an error "RTN","MAGSANNO",30,0) ; occurred during execution of the procedure. 0^0^ ERROR explanation "RTN","MAGSANNO",31,0) ; MAGOUT(0) = 1 ^ COUNTER ^ MESSAGE/1childIEN ;OK + the counter of saved annotations "RTN","MAGSANNO",32,0) ; MAGOUT(n) = LAYER ID ^ ANNOTATOR ^ SAVED DATE/TIME ^ ANNOTATION VERSION "RTN","MAGSANNO",33,0) ; ^ SOURCE ^ DELETION ^ TIU COMPLETION "RTN","MAGSANNO",34,0) ; ^ SERVICE/SECTION ^ SITE# ^ DUZ "RTN","MAGSANNO",35,0) ; "RTN","MAGSANNO",36,0) ; Definition of each piece of MAGOUT(n) "RTN","MAGSANNO",37,0) ;[1] = layer ID (unique to the image, not globally unique) "RTN","MAGSANNO",38,0) ;[2] = name of user who saved layer "RTN","MAGSANNO",39,0) ;[3] = date layer stored "RTN","MAGSANNO",40,0) ;[4] = annotation version "RTN","MAGSANNO",41,0) ;[5] = application that created layer "RTN","MAGSANNO",42,0) ;[6] = 0/1 to indicate if layer deleted "RTN","MAGSANNO",43,0) ;[7] = indicates if the layer was saved after the TIU Note COMPLETE (if there is a note) "RTN","MAGSANNO",44,0) ;[8] = Service Section of user who saved layer "RTN","MAGSANNO",45,0) ;[9] = user site name "RTN","MAGSANNO",46,0) ;[10] = DUZ of user who saved layer "RTN","MAGSANNO",47,0) GET(MAGOUT,MAGIEN) ;RPC [MAG ANNOT GET IMAGE] "RTN","MAGSANNO",48,0) N N,CNT,X,Y,IEN,DATA,ERR,RET "RTN","MAGSANNO",49,0) S MAGOUT(0)=0 "RTN","MAGSANNO",50,0) S IEN=MAGIEN "RTN","MAGSANNO",51,0) I '$$ISVALID^MAGGI11(IEN,.RET) S MAGOUT(0)="0^0^"_$P(RET,"^",2) Q "RTN","MAGSANNO",52,0) I $$ISDEL^MAGGI11(IEN,.RET) S MAGOUT(0)="0^0^Image IEN: "_IEN_" is Deleted." Q "RTN","MAGSANNO",53,0) ;if group, find child IEN "RTN","MAGSANNO",54,0) I $$ISGRP^MAGGI11(MAGIEN,.ERR) S IEN=$$GRPCH1^MAGGI14(MAGIEN,"E") "RTN","MAGSANNO",55,0) ; If invalid Group child. Quit. "RTN","MAGSANNO",56,0) I (IEN<1) S MAGOUT(0)="0^0^Invalid Group Image: "_MAGIEN Q "RTN","MAGSANNO",57,0) S CNT=0 "RTN","MAGSANNO",58,0) ; "RTN","MAGSANNO",59,0) ;P122 takes only one type of annotation (Clinic or VistARAD), but not both "RTN","MAGSANNO",60,0) I $D(^MAG(2005,IEN,210,0)) D "RTN","MAGSANNO",61,0) . F S CNT=$O(^MAG(2005,IEN,210,CNT)) Q:'CNT S X=$G(^(CNT,0)) I $L(X) D "RTN","MAGSANNO",62,0) . . S MAGOUT(CNT)=$$DATA210(IEN,CNT) "RTN","MAGSANNO",63,0) . Q "RTN","MAGSANNO",64,0) I $D(^MAG(2005.002,IEN,0)) D "RTN","MAGSANNO",65,0) . F S CNT=$O(^MAG(2005.002,IEN,1,CNT)) Q:'CNT S X=$G(^(CNT,0)) I $L(X) D "RTN","MAGSANNO",66,0) . . S MAGOUT(CNT)=$$DATA002(IEN,CNT) "RTN","MAGSANNO",67,0) . Q "RTN","MAGSANNO",68,0) I '$O(MAGOUT(0)) S MAGOUT(0)="1^0^No annotation for image IEN#"_MAGIEN Q "RTN","MAGSANNO",69,0) S MAGOUT(0)=1_U_+$O(MAGOUT(" "),-1)_U_$S(IEN=MAGIEN:"",1:IEN) ;1:success^layer counter^optional childIEN "RTN","MAGSANNO",70,0) Q "RTN","MAGSANNO",71,0) ;------------------------------------------------------------------- "RTN","MAGSANNO",72,0) ;***** RETURNS THE DETAIL OF IMAGE ANNOTATIONS "RTN","MAGSANNO",73,0) ; RPC: MAG ANNOT GET IMAGE DETAIL "RTN","MAGSANNO",74,0) ; "RTN","MAGSANNO",75,0) ; .MAGOUT Reference to a local variable where the results are returned to. "RTN","MAGSANNO",76,0) ; .MAGIEN Internal entry number of IMAGE file been annotated "RTN","MAGSANNO",77,0) ; .LAYIEN Internal entry number of ANNOTATION IMAGE LAYER in #2005.002 "RTN","MAGSANNO",78,0) ; "RTN","MAGSANNO",79,0) ; Return Values "RTN","MAGSANNO",80,0) ; ============= "RTN","MAGSANNO",81,0) ; If MAGOUT(0) is defined and its 1st '^'-piece is 0, then an error "RTN","MAGSANNO",82,0) ; occurred during execution of the procedure. 0 ^ 0 ^ error message "RTN","MAGSANNO",83,0) ; MAGOUT(0) = 1 ^ total count ; lines counter of the returned array "RTN","MAGSANNO",84,0) ; MAGOUT(1) = LAYER ID ^ ANNOTATOR ^ SAVED DATE/TIME ^ ANNOTATION VERSION ^ SOURCE ^ DELETION ^ TIU COMPLETION "RTN","MAGSANNO",85,0) ; ^ SERVICE/SECTION ^ SITE# ^ DUZ "RTN","MAGSANNO",86,0) ; MAGOUT(n+1) = XML data line(s) "RTN","MAGSANNO",87,0) ; "RTN","MAGSANNO",88,0) GETD(MAGOUT,MAGIEN,LAYIEN) ;RPC [MAG ANNOT GET IMAGE DETAIL] "RTN","MAGSANNO",89,0) N N,CNT,LN,X,Y,IEN,ERR,LASTN,WP "RTN","MAGSANNO",90,0) S MAGOUT(0)=0 "RTN","MAGSANNO",91,0) S IEN=MAGIEN "RTN","MAGSANNO",92,0) I '$$ISVALID^MAGGI11(IEN,.RET) S MAGOUT(0)="0^0^"_$P(RET,"^",2) Q "RTN","MAGSANNO",93,0) I $$ISDEL^MAGGI11(IEN,.RET) S MAGOUT(0)="0^0^Image IEN: "_IEN_" is Deleted." Q "RTN","MAGSANNO",94,0) ;if group, find child IEN "RTN","MAGSANNO",95,0) I $$ISGRP^MAGGI11(MAGIEN,.ERR) S IEN=$$GRPCH1^MAGGI14(MAGIEN,"E") "RTN","MAGSANNO",96,0) ; If invalid Group child. Quit. "RTN","MAGSANNO",97,0) I (IEN<1) S MAGOUT(0)="0^0^Invalid Group Image: "_MAGIEN Q "RTN","MAGSANNO",98,0) ; "RTN","MAGSANNO",99,0) ;P122 handles only one type of annotation (Clinic or VistARAD), but not on both "RTN","MAGSANNO",100,0) I $D(^MAG(2005,IEN,210,0)) D "RTN","MAGSANNO",101,0) . S CNT=+$G(LAYIEN,1),X=$G(^MAG(2005,IEN,210,CNT,0)) I $L(X) D "RTN","MAGSANNO",102,0) . . S MAGOUT(1)=$$DATA210(IEN,CNT) ; P122 GEK "RTN","MAGSANNO",103,0) . . S LN=$P($G(^MAG(2005,IEN,210,CNT,1,0)),U,3) Q:'LN "RTN","MAGSANNO",104,0) . . F N=1:1:LN S MAGOUT(N+1)=$G(^MAG(2005,IEN,210,CNT,1,N,0)) ;XML raw data "RTN","MAGSANNO",105,0) . Q "RTN","MAGSANNO",106,0) I $D(^MAG(2005.002,IEN,0)) D "RTN","MAGSANNO",107,0) . S LASTN=+$P($G(^MAG(2005.002,IEN,1,0)),U,3) ;last annotation, if no LAYIEN "RTN","MAGSANNO",108,0) . S CNT=$G(LAYIEN,LASTN),X=$G(^MAG(2005.002,IEN,1,CNT,0)) I $L(X) D "RTN","MAGSANNO",109,0) . . S MAGOUT(1)=$$DATA002(IEN,CNT) ; P122 GEK "RTN","MAGSANNO",110,0) . . S X=$$GET1^DIQ(2005.0021,CNT_","_IEN,5,"","WP") "RTN","MAGSANNO",111,0) . . S LN="" F N=2:1 S LN=$O(WP(LN)) Q:'LN S MAGOUT(N)=WP(LN) ;XML raw data "RTN","MAGSANNO",112,0) . Q "RTN","MAGSANNO",113,0) ; "RTN","MAGSANNO",114,0) I '$O(MAGOUT(0)) S MAGOUT(0)="1^0^No annotation for image IEN#"_MAGIEN_" ("_$G(LAYIEN)_")" Q "RTN","MAGSANNO",115,0) S CNT=+$O(MAGOUT(" "),-1),MAGOUT(0)=1_U_CNT_U_$S(IEN=MAGIEN:"",1:IEN) ;success + total count + optional childIEN "RTN","MAGSANNO",116,0) Q "RTN","MAGSANNO",117,0) ; "RTN","MAGSANNO",118,0) ; --- DATA210 "RTN","MAGSANNO",119,0) ; Get data from Image file for VistaRAD Annotations. "RTN","MAGSANNO",120,0) ; Function returns "^" delimited string of annotation properties. "RTN","MAGSANNO",121,0) ; Other functions call here to get data from Image file. "RTN","MAGSANNO",122,0) ; "RTN","MAGSANNO",123,0) DATA210(IEN,CNT) ;Get VistaRAD Annotation data "RTN","MAGSANNO",124,0) N X,DATA "RTN","MAGSANNO",125,0) N ANDUZ,ANDTM,ANVRN,ANSRC,ANDEL,ANTIUST,ANSERV,ANSITE "RTN","MAGSANNO",126,0) S X=$G(^MAG(2005,IEN,210,CNT,0)) "RTN","MAGSANNO",127,0) S ANDUZ=$P(X,"^",3),ANDTM=$P(X,"^",4),ANVRN="",ANSRC="VISTARAD",ANDEL=0,ANTIUST=0 "RTN","MAGSANNO",128,0) S ANSERV="RADIOLOGY" "RTN","MAGSANNO",129,0) S ANSITE=$P($G(^MAG(2005,IEN,100)),"^",3) "RTN","MAGSANNO",130,0) ; "RTN","MAGSANNO",131,0) S $P(DATA,"^",1)=CNT ; "RTN","MAGSANNO",132,0) S $P(DATA,"^",2)=$$GET1^DIQ(200,ANDUZ,.01,"E") ; "RTN","MAGSANNO",133,0) S $P(DATA,"^",3)=$$FMTE^XLFDT(ANDTM) ; "RTN","MAGSANNO",134,0) S $P(DATA,"^",4)=ANVRN ;ANVRN ("" for VistaRAD); "RTN","MAGSANNO",135,0) S $P(DATA,"^",5)=ANSRC ;ANSRC (Defalut to VistaRAD); "RTN","MAGSANNO",136,0) S $P(DATA,"^",6)=ANDEL ;ANDEL (0 for VistaRAD); "RTN","MAGSANNO",137,0) S $P(DATA,"^",7)=ANTIUST ;ANTIUST (0 for VistaRAD). "RTN","MAGSANNO",138,0) S $P(DATA,"^",8)=ANSERV ;ANSERV (default to RADIOLOGY) "RTN","MAGSANNO",139,0) S $P(DATA,"^",9)=$S(ANSITE:$$GET1^DIQ(4,ANSITE,.01,"E"),1:ANSITE) ; "RTN","MAGSANNO",140,0) S $P(DATA,"^",10)=ANDUZ ; "RTN","MAGSANNO",141,0) Q DATA "RTN","MAGSANNO",142,0) ; "RTN","MAGSANNO",143,0) ; --- DATA002 "RTN","MAGSANNO",144,0) ; Get data from Imaging Annotation file entry "RTN","MAGSANNO",145,0) ; Function returns "^" delimited string of annotation properties. "RTN","MAGSANNO",146,0) ; Other functions call here to get data from Imaging Annotation file. "RTN","MAGSANNO",147,0) ; "RTN","MAGSANNO",148,0) DATA002(IEN,CNT) ;Get Image Annotation data. "RTN","MAGSANNO",149,0) N X,DATA "RTN","MAGSANNO",150,0) N ANDUZ,ANDTM,ANVRN,ANSRC,ANDEL,ANTIUST,ANSERV,ANSITE "RTN","MAGSANNO",151,0) S X=$G(^MAG(2005.002,IEN,1,CNT,0)) "RTN","MAGSANNO",152,0) S ANDUZ=$P(X,U,1),ANDTM=$P(X,U,2),ANVRN=$P(X,U,3),ANSRC=$P(X,U,4),ANDEL=$P(X,U,5),ANTIUST=$P(X,U,6) "RTN","MAGSANNO",153,0) S ANSERV=+$P(X,U,7) S:ANSERV ANSERV=$$GET1^DIQ(49,ANSERV,.01,"E") "RTN","MAGSANNO",154,0) S ANSITE=+$P(X,U,8) S:ANSITE ANSITE=$$GET1^DIQ(4,ANSITE,.01,"E") "RTN","MAGSANNO",155,0) ; "RTN","MAGSANNO",156,0) S $P(DATA,"^",1)=CNT ; "RTN","MAGSANNO",157,0) S $P(DATA,"^",2)=$$GET1^DIQ(200,ANDUZ,.01,"E") ; "RTN","MAGSANNO",158,0) S $P(DATA,"^",3)=$$FMTE^XLFDT(ANDTM) ; "RTN","MAGSANNO",159,0) S $P(DATA,"^",4)=ANVRN ; "RTN","MAGSANNO",160,0) S $P(DATA,"^",5)=ANSRC ; "RTN","MAGSANNO",161,0) S $P(DATA,"^",6)=ANDEL ; "RTN","MAGSANNO",162,0) S $P(DATA,"^",7)=ANTIUST ; "RTN","MAGSANNO",163,0) S $P(DATA,"^",8)=$S(ANSERV:$$GET1^DIQ(49,ANSERV,.01,"E"),1:ANSERV) ; "RTN","MAGSANNO",164,0) S $P(DATA,"^",9)=$S(ANSITE:$$GET1^DIQ(4,ANSITE,.01,"E"),1:ANSITE) ; "RTN","MAGSANNO",165,0) S $P(DATA,"^",10)=ANDUZ ; ANDUZ Not DUZ "RTN","MAGSANNO",166,0) Q DATA "RTN","MAGSANNO",167,0) ; "RTN","MAGSANNO",168,0) CAP(X) ; "RTN","MAGSANNO",169,0) Q $TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ") "RTN","MAGSANNO",170,0) ;------------------------------------------------------------------- "RTN","MAGSANNO",171,0) ;***** STORES THE DETAIL OF IMAGE ANNOTATIONS "RTN","MAGSANNO",172,0) ; RPC: MAG ANNOT STORE IMAGE DETAIL "RTN","MAGSANNO",173,0) ; "RTN","MAGSANNO",174,0) ; .MAGOUT Reference to a local variable where the results are returned to "RTN","MAGSANNO",175,0) ; .MAGIEN Internal Entry Number(IEN) of IMAGE file been annotated "RTN","MAGSANNO",176,0) ; .SOURCE Reference to the application XML been created by ('CLINIC' or 'VISTARAD'...etc) "RTN","MAGSANNO",177,0) ; .VER Reference to the annotation tool version (e.g.: IG16.2) "RTN","MAGSANNO",178,0) ; .XML[] Annotation raw data array "RTN","MAGSANNO",179,0) ; "RTN","MAGSANNO",180,0) ; Return Values "RTN","MAGSANNO",181,0) ; ============= "RTN","MAGSANNO",182,0) ; MAGOUT(0) is defined and its 1st '^'-piece is 0, then an error "RTN","MAGSANNO",183,0) ; occurred during execution of the procedure. "RTN","MAGSANNO",184,0) ; MAGOUT(0) = 1 - success ^ total data lines ^ child IEN(optional) "RTN","MAGSANNO",185,0) ; 0 - error "RTN","MAGSANNO",186,0) ; MAGOUT(1) = Saved layer info:::LAYER ID ^ANNOTATOR ^ SAVED DATE/TIME ^ ANNOTATION VERSION ^ SOURCE ^ DELETION ^ TIU COMPLETION "RTN","MAGSANNO",187,0) ; ^ SERVICE/SECTION ^ SITE# ^ DUZ "RTN","MAGSANNO",188,0) STORE(MAGOUT,MAGIEN,SOURCE,VER,XML,DEL) ;RPC [MAG ANNOT STORE IMAGE DETAIL] "RTN","MAGSANNO",189,0) N MAGFDA,MAGERR,IEN,LN,I,X,Y,Y0,Y2,FREF,NOW,D1,D2,CONCMP,ANSITE,ANSERV,LAYERID,GRPIEN,GRPY2 "RTN","MAGSANNO",190,0) S MAGOUT(0)=0 I '$G(MAGIEN) S MAGOUT(0)="0^0^No IEN" Q "RTN","MAGSANNO",191,0) S LN=+$G(XML(0)) S:'LN LN=+$O(XML(" "),-1) I 'LN S MAGOUT(0)="0^0^No XML data found" Q "RTN","MAGSANNO",192,0) I '$G(DUZ) S MAGOUT(0)="0^0^No DUZ defined" Q "RTN","MAGSANNO",193,0) S IEN=MAGIEN S:'$D(U) U="^" "RTN","MAGSANNO",194,0) I $$ISGRP^MAGGI11(MAGIEN,.ERR) S IEN=$$GRPCH1^MAGGI14(MAGIEN,"E") Q:'IEN ;if group, find child IEN . "RTN","MAGSANNO",195,0) S Y0=$G(^MAG(2005,IEN,0)),GRPIEN=$P(Y0,U,10),GRPIEN=$S(+GRPIEN:GRPIEN,1:IEN),Y2=$G(^MAG(2005,GRPIEN,2)) "RTN","MAGSANNO",196,0) I Y0="" S MAGOUT(0)="0^0^No IMAGE data found for IEN# "_IEN Q "RTN","MAGSANNO",197,0) S FREF=$P(Y0,U,2) I FREF="" S MAGOUT(0)="0^0^IMAGE file("_MAGIEN_") is missing FILEREF" Q "RTN","MAGSANNO",198,0) S D1=$P(Y2,U,6),D2=$P(Y2,U,7),ANSITE=$G(DUZ(2)),ANSERV=$$GET1^DIQ(200,DUZ,29,"E") "RTN","MAGSANNO",199,0) ;;I $G(SOURCE)["RAD"!(D1=74) S MAGOUT(0)="0^No annotation for RAD image" Q ;p122 no RAD "RTN","MAGSANNO",200,0) I (D1["8925") D DATA^MAGGNTI(.X,D2) I $P(X,U,6)["COMPLETED" S CONCMP=1 ;check status of TIU note for completion "RTN","MAGSANNO",201,0) S VER=$G(VER),VER=$$CAP(VER) ;IMAGE GEAR VERSION "RTN","MAGSANNO",202,0) I $L(ANSERV) N X,DIC S DIC=49,DIC(0)="B",X=ANSERV D ^DIC S ANSERV=$S(+Y:+Y,1:"") ;SERVICE/SECTION "RTN","MAGSANNO",203,0) I '$D(^MAG(2005.002,IEN)) D ;Add new 2005.002 entry "RTN","MAGSANNO",204,0) . S IEN(1)=IEN "RTN","MAGSANNO",205,0) . S MAGFDA(2005.002,"+1,",.01)=IEN ;P122 - WPR "RTN","MAGSANNO",206,0) . D UPDATE^DIE("","MAGFDA","IEN","MAGERR") "RTN","MAGSANNO",207,0) . D ENTRY^MAGLOG("MAG ANNOT",$G(DUZ),IEN,"MAG IMAGE ANNOTATION","","1",$G(SOURCE,"CLINIC")) ;log annotation "RTN","MAGSANNO",208,0) I $D(MAGERR) S MAGOUT(0)="0^Error adding annotation: "_MAGERR("DIERR",1,"TEXT",1) Q "RTN","MAGSANNO",209,0) ; Add new annotation data node w/ DUZ, version, XML ... "RTN","MAGSANNO",210,0) N MAGFDA,MAGERR K IEN(2) "RTN","MAGSANNO",211,0) S NOW=$$NOW^XLFDT() "RTN","MAGSANNO",212,0) S MAGFDA(2005.0021,"+2,"_IEN_",",.01)=DUZ ;ANNOTATOR "RTN","MAGSANNO",213,0) S MAGFDA(2005.0021,"+2,"_IEN_",",1)=NOW ;SAVE D/T "RTN","MAGSANNO",214,0) S MAGFDA(2005.0021,"+2,"_IEN_",",2)=VER ;VERSION "RTN","MAGSANNO",215,0) S MAGFDA(2005.0021,"+2,"_IEN_",",3)=$G(SOURCE,"CLINIC") "RTN","MAGSANNO",216,0) S MAGFDA(2005.0021,"+2,"_IEN_",",4)=$G(DEL) ;ANNOTATION LAYER DELETION "RTN","MAGSANNO",217,0) S MAGFDA(2005.0021,"+2,"_IEN_",",6)=$G(CONCMP) ;TIU completed status #8925 (.05) "RTN","MAGSANNO",218,0) S MAGFDA(2005.0021,"+2,"_IEN_",",7)=$G(ANSERV) ;SERVICE/SECTION "RTN","MAGSANNO",219,0) S MAGFDA(2005.0021,"+2,"_IEN_",",8)=$G(ANSITE) ;SITE "RTN","MAGSANNO",220,0) D UPDATE^DIE("","MAGFDA","IEN","MAGERR") "RTN","MAGSANNO",221,0) I $D(MAGERR) S MAGOUT(0)="0^Error adding annotations: "_MAGERR("DIERR",1,"TEXT",1) Q "RTN","MAGSANNO",222,0) ; XML 2005.002 field #5 "RTN","MAGSANNO",223,0) S (LAYERID,D1)=IEN(2) "RTN","MAGSANNO",224,0) D WP^DIE(2005.0021,D1_","_IEN_",",5,"A","XML","MAGERR") "RTN","MAGSANNO",225,0) I $D(MAGERR("DIERR","E")) D Q "RTN","MAGSANNO",226,0) . N DA,DIK "RTN","MAGSANNO",227,0) . S MAGOUT(0)="0^Error adding annotation XML: "_MAGERR("DIERR",1,"TEXT",1) "RTN","MAGSANNO",228,0) . ; clean up data "RTN","MAGSANNO",229,0) . S DIK="^MAG(2005.002,"_IEN_",1,",DA=D1,DA(1)=IEN "RTN","MAGSANNO",230,0) . D ^DIK "RTN","MAGSANNO",231,0) . Q "RTN","MAGSANNO",232,0) S D2=$O(XML(""),-1) "RTN","MAGSANNO",233,0) I $G(MAGERR)="" S $P(^MAG(2005.002,IEN,1,D1,1,0),U,2)="2005.215A" DO ;SUCCESS "RTN","MAGSANNO",234,0) . ; [1] Stored layer info::: Layer ^NAME ^DATE/TIME ^VERSION^ SOURCE ^DELETION^ TIU COMPLETED ^ ANNOATOR SERVICE ^ SITE id# ^ DUZ "RTN","MAGSANNO",235,0) . S MAGOUT(0)=1_U_D2_U_$S(IEN=MAGIEN:"",1:IEN) "RTN","MAGSANNO",236,0) . S MAGOUT(1)=LAYERID_U_$$GET1^DIQ(200,DUZ,.01,"E")_U_$$FMTE^XLFDT(NOW)_U_$G(VER)_U_$G(SOURCE,"CLINIC")_U_$G(DEL)_U_$G(CONCMP)_U_$G(ANSERV)_U_$G(ANSITE)_U_DUZ "RTN","MAGSANNO",237,0) Q "RTN","MAGSANNO",238,0) ; "RTN","MAGSANNO",239,0) ;***** Check for ANNOTATION feature is allowed settings "RTN","MAGSANNO",240,0) ; RPC: MAG ANNOT IMAGE ALLOW "RTN","MAGSANNO",241,0) ; "RTN","MAGSANNO",242,0) ; Return Values "RTN","MAGSANNO",243,0) ; ============= "RTN","MAGSANNO",244,0) ; if error MAGRY = first "^" piece is zero when error occurs "RTN","MAGSANNO",245,0) ; if success MAGRY = "1^0" or "1^1" 2nd piece 0 - not allowed; 1 - allowed ; 1@ - super user "RTN","MAGSANNO",246,0) ANOALLOW(MAGRY) ; RPC [MAG ANNOT IMAGE ALLOW] "RTN","MAGSANNO",247,0) ; USR^SRV^DIV^SYS "RTN","MAGSANNO",248,0) N SRV,DIV,RESULT,PARM,I "RTN","MAGSANNO",249,0) N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR" "RTN","MAGSANNO",250,0) S MAGRY=0,RESULT=0,PARM="MAG IMAGE ALLOW ANNOTATE" "RTN","MAGSANNO",251,0) I $G(DUZ) D "RTN","MAGSANNO",252,0) . I $D(^XUSEC("MAG ANNOTATE MGR",DUZ)) S RESULT="1@" Q ; ANNOTATION super key "RTN","MAGSANNO",253,0) . S SRV=$$GET1^DIQ(200,DUZ,29,"I") ; DUZ's service/section "RTN","MAGSANNO",254,0) . S RESULT=$$GET^XPAR("USR^SRV.`"_SRV_"^DIV^SYS",PARM,,"I") ; IA# 2263 "RTN","MAGSANNO",255,0) . S RESULT=$S(RESULT="":1,1:+RESULT) ; 1 by default "RTN","MAGSANNO",256,0) . Q "RTN","MAGSANNO",257,0) S MAGRY=1_"^"_RESULT "RTN","MAGSANNO",258,0) Q "RTN","MAGSPID") 0^15^B3911091 "RTN","MAGSPID",1,0) MAGSPID ;WOIFO/SF/JSL - PATIENT DATA UTILITIES ; 02 Mar 2012 12:18 PM "RTN","MAGSPID",2,0) ;;3.0;IMAGING;**122**;Mar 19, 2002;Build 92;Aug 02, 2012 "RTN","MAGSPID",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGSPID",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGSPID",5,0) ;; | Property of the US Government. | "RTN","MAGSPID",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGSPID",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGSPID",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGSPID",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGSPID",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGSPID",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGSPID",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGSPID",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGSPID",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGSPID",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGSPID",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGSPID",17,0) ;; "RTN","MAGSPID",18,0) Q "RTN","MAGSPID",19,0) PIDLABEL() ; "RTN","MAGSPID",20,0) Q $S($$ISIHS():"HRN",1:"SSN") "RTN","MAGSPID",21,0) ; "RTN","MAGSPID",22,0) DEM(LOC) ;For IHS, call DEM^VADPT but reset DUZ(2) to the instrument division "RTN","MAGSPID",23,0) ;this is because in IHS, patients have different chart numbers in each division "RTN","MAGSPID",24,0) ;this procedure can only be called on VistA or RPMs. It cannot be called on a DICOM GW "RTN","MAGSPID",25,0) I $G(LOC)="" S LOC=DUZ(2) "RTN","MAGSPID",26,0) S TMPDUZ2=DUZ(2),DUZ(2)=LOC "RTN","MAGSPID",27,0) D DEM^VADPT ; Supported IA (#10061) "RTN","MAGSPID",28,0) S DUZ(2)=TMPDUZ2 K TMPDUZ2 "RTN","MAGSPID",29,0) Q "RTN","MAGSPID",30,0) ; "RTN","MAGSPID",31,0) ISIHS() ;Is this IHS site? (P123) "RTN","MAGSPID",32,0) Q $S($G(DUZ("AG"))="I":1,$G(^MAGDICOM(2006.563,1,"AG"))="I":1,1:0) "SEC","^DIC",2005.002,2005.002,0,"DD") @ "SEC","^DIC",2005.002,2005.002,0,"DEL") @ "SEC","^DIC",2005.002,2005.002,0,"LAYGO") @ "SEC","^DIC",2005.002,2005.002,0,"RD") @ "SEC","^DIC",2005.002,2005.002,0,"WR") @ "VER") 8.0^22.0 "^DD",2005.002,2005.002,0) FIELD^^1^2 "^DD",2005.002,2005.002,0,"DDA") N "^DD",2005.002,2005.002,0,"DT") 3120430 "^DD",2005.002,2005.002,0,"IX","B",2005.002,.01) "^DD",2005.002,2005.002,0,"NM","IMAGING ANNOTATION") "^DD",2005.002,2005.002,0,"VRPK") MAG "^DD",2005.002,2005.002,.01,0) IMAGE^RP2005'^MAG(2005,^0;1^Q "^DD",2005.002,2005.002,.01,.1) ANNOTATE IMAGE "^DD",2005.002,2005.002,.01,1,0) ^.1 "^DD",2005.002,2005.002,.01,1,1,0) 2005.002^B "^DD",2005.002,2005.002,.01,1,1,1) S ^MAG(2005.002,"B",$E(X,1,30),DA)="" "^DD",2005.002,2005.002,.01,1,1,2) K ^MAG(2005.002,"B",$E(X,1,30),DA) "^DD",2005.002,2005.002,.01,3) Select the image. "^DD",2005.002,2005.002,.01,21,0) ^.001^1^1^3120430^^^ "^DD",2005.002,2005.002,.01,21,1,0) This is the image being annotated. "^DD",2005.002,2005.002,.01,"DT") 3120430 "^DD",2005.002,2005.002,1,0) ANNOTATION GROUP^2005.0021PA^^1;0 "^DD",2005.002,2005.002,1,21,0) ^.001^1^1^3120716^^^^ "^DD",2005.002,2005.002,1,21,1,0) These fields store user annotations to the image. "^DD",2005.002,2005.0021,0) ANNOTATION GROUP SUB-FIELD^^6^9 "^DD",2005.002,2005.0021,0,"DT") 3111116 "^DD",2005.002,2005.0021,0,"IX","B",2005.0021,.01) "^DD",2005.002,2005.0021,0,"NM","ANNOTATION GROUP") "^DD",2005.002,2005.0021,0,"UP") 2005.002 "^DD",2005.002,2005.0021,.01,0) ANNOTATOR^RP200'^VA(200,^0;1^Q "^DD",2005.002,2005.0021,.01,1,0) ^.1 "^DD",2005.002,2005.0021,.01,1,1,0) 2005.0021^B "^DD",2005.002,2005.0021,.01,1,1,1) S ^MAG(2005.002,DA(1),1,"B",$E(X,1,30),DA)="" "^DD",2005.002,2005.0021,.01,1,1,2) K ^MAG(2005.002,DA(1),1,"B",$E(X,1,30),DA) "^DD",2005.002,2005.0021,.01,3) Select the user who made the annotation. "^DD",2005.002,2005.0021,.01,21,0) ^.001^1^1^3120430^^ "^DD",2005.002,2005.0021,.01,21,1,0) This field stores the ID of the user who made the annotation. "^DD",2005.002,2005.0021,.01,"DT") 3111122 "^DD",2005.002,2005.0021,1,0) ANNOTATION SAVED DATE/TIME^RD^^0;2^S %DT="ESTR" D ^%DT S X=Y K:Y<1 X "^DD",2005.002,2005.0021,1,3) Enter date and time. "^DD",2005.002,2005.0021,1,21,0) ^.001^1^1^3111116^^ "^DD",2005.002,2005.0021,1,21,1,0) Date and time the image was annotated/stored. "^DD",2005.002,2005.0021,1,"DT") 3110601 "^DD",2005.002,2005.0021,2,0) ANNOTATION VERSION^F^^0;3^K:$L(X)>15!($L(X)<1) X "^DD",2005.002,2005.0021,2,3) Annotation (tool) version must be 1-15 characters in length. "^DD",2005.002,2005.0021,2,21,0) ^.001^1^1^3120430^^^ "^DD",2005.002,2005.0021,2,21,1,0) The annotation tool version that was used to create the annotated image. "^DD",2005.002,2005.0021,2,"DT") 3110601 "^DD",2005.002,2005.0021,3,0) SOURCE^F^^0;4^K:$L(X)>15!($L(X)<1) X "^DD",2005.002,2005.0021,3,3) Annotation source must be 1-15 characters in length. "^DD",2005.002,2005.0021,3,21,0) ^^1^1^3110601^ "^DD",2005.002,2005.0021,3,21,1,0) The source of annotation been created, e.g.: Imaging Clinic or VistARad. "^DD",2005.002,2005.0021,3,"DT") 3110601 "^DD",2005.002,2005.0021,4,0) ANNOTATION LAYER DELETION^S^1:Yes;0:No;^0;5^Q "^DD",2005.002,2005.0021,4,3) Was the annotation deleted? "^DD",2005.002,2005.0021,4,21,0) 1^.001^1^1^3120716^ "^DD",2005.002,2005.0021,4,21,1,0) Indicates whether or not an annotation layer has been marked as deleted. "^DD",2005.002,2005.0021,4,"DT") 3120420 "^DD",2005.002,2005.0021,5,0) ANNOTATION IMAGE LAYER^2005.0022^^1;0 "^DD",2005.002,2005.0021,5,21,0) ^^1^1^3120420^ "^DD",2005.002,2005.0021,5,21,1,0) This field contains the annotation XML raw data. "^DD",2005.002,2005.0021,6,0) TIU NOTE COMPLETION^S^1:Yes;0:No;^0;6^Q "^DD",2005.002,2005.0021,6,3) Indicate the completion of TIU document image. "^DD",2005.002,2005.0021,6,21,0) ^.001^1^1^3120430^^ "^DD",2005.002,2005.0021,6,21,1,0) The completion status of the TIU document when saving a TIU image annotation. "^DD",2005.002,2005.0021,6,23,0) ^.001^1^1^3120430^^ "^DD",2005.002,2005.0021,6,23,1,0) It is only for TIU type image annotation. "^DD",2005.002,2005.0021,6,"DT") 3120420 "^DD",2005.002,2005.0021,7,0) SERVICE^P49'^DIC(49,^0;7^Q "^DD",2005.002,2005.0021,7,3) Enter Service/Section of annotator. "^DD",2005.002,2005.0021,7,21,0) ^.001^1^1^3120420^^^ "^DD",2005.002,2005.0021,7,21,1,0) Service/Section of annotator when the annotation was made. "^DD",2005.002,2005.0021,7,23,0) ^.001^1^1^3120420^^ "^DD",2005.002,2005.0021,7,23,1,0) Annotator Service/Section of NEW PERSON file(#200) "^DD",2005.002,2005.0021,7,"DT") 3111122 "^DD",2005.002,2005.0021,8,0) SITE^P4'^DIC(4,^0;8^Q "^DD",2005.002,2005.0021,8,3) Enter Site/Institution. "^DD",2005.002,2005.0021,8,21,0) ^.001^1^1^3111116^^^ "^DD",2005.002,2005.0021,8,21,1,0) The site/division at which the annotator logged in and annotated image. "^DD",2005.002,2005.0021,8,"DT") 3110630 "^DD",2005.002,2005.0022,0) ANNOTATION IMAGE LAYER SUB-FIELD^^.01^1 "^DD",2005.002,2005.0022,0,"DT") 3110601 "^DD",2005.002,2005.0022,0,"NM","ANNOTATION IMAGE LAYER") "^DD",2005.002,2005.0022,0,"UP") 2005.0021 "^DD",2005.002,2005.0022,.01,0) ANNOTATION XML^Wx^^0;1^Q "^DD",2005.002,2005.0022,.01,3) ANNOTATION IMAGE XML DATA "^DD",2005.002,2005.0022,.01,21,0) ^^1^1^3120420^ "^DD",2005.002,2005.0022,.01,21,1,0) All XML raw data. "^DD",2005.002,2005.0022,.01,23,0) ^^1^1^3120420^ "^DD",2005.002,2005.0022,.01,23,1,0) XML raw data will be divided into 240 characters each line. "^DD",2005.002,2005.0022,.01,"DT") 3120420 "^DD",2006.18,2006.18,250,0) ANNOTATION CAPTURE FONT NAME^F^^ANNOTCAPTURE;1^K:$L(X)>30!($L(X)<1) X "^DD",2006.18,2006.18,250,3) Enter the font for Capture annotation tools in 1-30 characters. "^DD",2006.18,2006.18,250,21,0) ^.001^1^1^3120501^^^ "^DD",2006.18,2006.18,250,21,1,0) This defines the text font of the Capture annotation tools. The default is "Arial". "^DD",2006.18,2006.18,250,"DT") 3120426 "^DD",2006.18,2006.18,251,0) ANNOTATION CAPTURE FONT STYLE^S^0:REGULAR;1:BOLD;2:ITALIC;3:BOLD ITALIC;^ANNOTCAPTURE;2^Q "^DD",2006.18,2006.18,251,3) Enter the text font style of the annotation tools. "^DD",2006.18,2006.18,251,21,0) 2^.001^2^2^3120501^^^^ "^DD",2006.18,2006.18,251,21,1,0) This defines the text font style of the Capture annotation tools. "^DD",2006.18,2006.18,251,21,2,0) The default is 'Regular'. "^DD",2006.18,2006.18,251,"DT") 3120501 "^DD",2006.18,2006.18,252,0) ANNOTATION CAPTURE FONT SIZE^NJ2,0^^ANNOTCAPTURE;3^K:+X'=X!(X>72)!(X<8)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,252,3) Type a number between 8 and 72, 0 decimal digits. "^DD",2006.18,2006.18,252,21,0) ^.001^3^3^3120501^^^^ "^DD",2006.18,2006.18,252,21,1,0) This defines the text font size in points of the Capture annotation tools. "^DD",2006.18,2006.18,252,21,2,0) Each point is 1/72nd of an inch. A font size of 72 results in letters 1 inch high. "^DD",2006.18,2006.18,252,21,3,0) The default is 36. "^DD",2006.18,2006.18,252,"DT") 3120501 "^DD",2006.18,2006.18,253,0) ANNOTATION CAPTURE LINE WIDTH^NJ3,0^^ANNOTCAPTURE;4^K:+X'=X!(X>100)!(X<1)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,253,3) Type a number between 1 and 100, 0 decimal digits. "^DD",2006.18,2006.18,253,21,0) ^.001^2^2^3120501^^^^ "^DD",2006.18,2006.18,253,21,1,0) This defines the line width of the Capture annotation tools. "^DD",2006.18,2006.18,253,21,2,0) The default is 5. "^DD",2006.18,2006.18,253,"DT") 3120501 "^DD",2006.18,2006.18,254,0) ANNOTATION CAPTURE COLOR^NJ8,0^^ANNOTCAPTURE;5^K:+X'=X!(X>99999999)!(X<0)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,254,3) Type a number between 0 and 99999999, 0 decimal digits. "^DD",2006.18,2006.18,254,21,0) ^.001^6^6^3120501^^^^ "^DD",2006.18,2006.18,254,21,1,0) This defines the color of the Capture annotation tools. The default is 32768 (GREEN). "^DD",2006.18,2006.18,254,21,2,0) For example: "^DD",2006.18,2006.18,254,21,3,0) BLACK - 0, WHITE - 16777215, MEDIUM GREY - 10789024, SILVER - 12632256, MAROON - 128, RED - 255 "^DD",2006.18,2006.18,254,21,4,0) OLIVE - 32896, YELLOW - 65535, GREEN - 32768, LIME - 65280, TEAL - 8421376, AQUA - 16776960 "^DD",2006.18,2006.18,254,21,5,0) NAVY - 8388608, BLUE - 16711680, PURPLE - 8388736, FUCHSIA -16711935 "^DD",2006.18,2006.18,254,21,6,0) Reference: AccuSoft ImageGear MD "^DD",2006.18,2006.18,254,"DT") 3120426 "^DD",2006.18,2006.18,255,0) ANNOTATION CAPTURE OPACITY^NJ3,0^^ANNOTCAPTURE;6^K:+X'=X!(X>255)!(X<63)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,255,3) Type a number between 63 and 255. "^DD",2006.18,2006.18,255,21,0) ^.001^3^3^3120501^^ "^DD",2006.18,2006.18,255,21,1,0) This defines the opacity of the Capture annotation tools. The default is 159. "^DD",2006.18,2006.18,255,21,2,0) It is the degree to which light is not allowed to travel through Opaque "^DD",2006.18,2006.18,255,21,3,0) context. "^DD",2006.18,2006.18,255,"DT") 3120501 "^DD",2006.18,2006.18,256,0) ANNOTATION CAPTURE ARROW STYLE^S^0:POINTER;1:SOLID;2:OPEN;3:POINTER SOLID;4:NONE;^ANNOTCAPTURE;7^Q "^DD",2006.18,2006.18,256,3) Enter the arrow style of the Capture annotation tools. "^DD",2006.18,2006.18,256,21,0) ^.001^2^2^3120501^^^^ "^DD",2006.18,2006.18,256,21,1,0) This defines the arrow style of the Capture annotation tools. "^DD",2006.18,2006.18,256,21,2,0) The default is 0 - Pointer. "^DD",2006.18,2006.18,256,"DT") 3120501 "^DD",2006.18,2006.18,257,0) ANNOTATION CAPTURE ARROWLENGTH^NJ3,0^^ANNOTCAPTURE;8^K:+X'=X!(X>200)!(X<10)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,257,3) Type a number between 10 and 200, 0 decimal digits. "^DD",2006.18,2006.18,257,21,0) ^.001^2^2^3120501^^^^ "^DD",2006.18,2006.18,257,21,1,0) This defines the arrow length of the Capture annotation tools. "^DD",2006.18,2006.18,257,21,2,0) The default is 35. "^DD",2006.18,2006.18,257,"DT") 3120501 "^DD",2006.18,2006.18,258,0) ANNOTATION CAPTURE ARROW ANGLE^NJ2,0^^ANNOTCAPTURE;9^K:+X'=X!(X>60)!(X<10)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,258,3) Type a number between 10 and 60 degrees, 0 decimal digits. "^DD",2006.18,2006.18,258,21,0) ^.001^2^2^3120501^^^^ "^DD",2006.18,2006.18,258,21,1,0) This defines the arrow angle of the Capture annotation tools (10-60 degrees). "^DD",2006.18,2006.18,258,21,2,0) The default is 35 degrees. "^DD",2006.18,2006.18,258,"DT") 3120501 "^DD",2006.18,2006.18,259,0) ANNOTATION CAPTURE G WIN LEFT^NJ5,0^^ANNOTCAPTURE;10^K:+X'=X!(X>99999)!(X<-99999)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,259,3) Type a number between -99999 and 99999, 0 decimal digits. "^DD",2006.18,2006.18,259,21,0) ^.001^1^1^3120501^^^^ "^DD",2006.18,2006.18,259,21,1,0) This defines the global setting of the Capture annotation window left position on the screen (dot pixel). "^DD",2006.18,2006.18,259,"DT") 3120426 "^DD",2006.18,2006.18,260,0) ANNOTATION CAPTURE G WIN TOP^NJ5,0^^ANNOTCAPTURE;11^K:+X'=X!(X>99999)!(X<-99999)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,260,3) Type a number between -99999 and 99999, 0 decimal digits. "^DD",2006.18,2006.18,260,21,0) ^.001^1^1^3120501^^^ "^DD",2006.18,2006.18,260,21,1,0) This defines the global setting of the Capture annotation window top position on the screen (dot pixel). "^DD",2006.18,2006.18,260,"DT") 3120426 "^DD",2006.18,2006.18,270,0) ANNOTATION DISPLAY FONT NAME^F^^ANNOTDISPLAY;1^K:$L(X)>30!($L(X)<1) X "^DD",2006.18,2006.18,270,3) Enter the font for Display annotation tools in 1-30 characters. "^DD",2006.18,2006.18,270,21,0) ^.001^1^1^3120501^^^ "^DD",2006.18,2006.18,270,21,1,0) This defines the text font of the Display annotation tools. The default is "Arial". "^DD",2006.18,2006.18,270,"DT") 3120426 "^DD",2006.18,2006.18,271,0) ANNOTATION DISPLAY FONT STYLE^S^0:REGULAR;1:BOLD;2:ITALIC;3:BOLD ITALIC;^ANNOTDISPLAY;2^Q "^DD",2006.18,2006.18,271,3) Enter the text font style of the annotation tools. "^DD",2006.18,2006.18,271,21,0) ^.001^1^1^3120501^^^ "^DD",2006.18,2006.18,271,21,1,0) This defines the text font style of the Display annotation tools. The default is 'Regular'. "^DD",2006.18,2006.18,271,"DT") 3120501 "^DD",2006.18,2006.18,272,0) ANNOTATION DISPLAY FONT SIZE^NJ2,0^^ANNOTDISPLAY;3^K:+X'=X!(X>72)!(X<8)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,272,3) Type a number between 8 and 72, 0 decimal digits. "^DD",2006.18,2006.18,272,21,0) ^.001^3^3^3120501^^^^ "^DD",2006.18,2006.18,272,21,1,0) This defines the text font size in points of the Display annotation tools. "^DD",2006.18,2006.18,272,21,2,0) Each point is 1/72nd of an inch. A font size of 72 results in letters 1 inch high. "^DD",2006.18,2006.18,272,21,3,0) The default is 36. "^DD",2006.18,2006.18,272,"DT") 3120501 "^DD",2006.18,2006.18,273,0) ANNOTATION DISPLAY LINE WIDTH^NJ3,0^^ANNOTDISPLAY;4^K:+X'=X!(X>999)!(X<0)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,273,3) Type a number between 0 and 999, 0 decimal digits. "^DD",2006.18,2006.18,273,21,0) ^.001^2^2^3120501^^^^ "^DD",2006.18,2006.18,273,21,1,0) This defines the line width of the Display annotation tools. "^DD",2006.18,2006.18,273,21,2,0) The default is 5. "^DD",2006.18,2006.18,273,"DT") 3120426 "^DD",2006.18,2006.18,274,0) ANNOTATION DISPLAY COLOR^NJ8,0^^ANNOTDISPLAY;5^K:+X'=X!(X>99999999)!(X<0)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,274,3) Type a number between 0 and 99999999 for Color, 0 decimal digits. "^DD",2006.18,2006.18,274,21,0) ^.001^6^6^3120501^^^^ "^DD",2006.18,2006.18,274,21,1,0) This defines the color of the Display annotation tools. "^DD",2006.18,2006.18,274,21,2,0) The default is 32768 (GREEN). For example: BLACK - 0, WHITE - 16777215, MEDIUM GREY - 10789024, "^DD",2006.18,2006.18,274,21,3,0) SILVER - 12632256, MAROON - 128, RED - 255 OLIVE - 32896, YELLOW - 65535, GREEN - 32768, "^DD",2006.18,2006.18,274,21,4,0) LIME - 65280, TEAL - 8421376, AQUA - 16776960 NAVY - 8388608, BLUE - 16711680, PURPLE - 8388736, "^DD",2006.18,2006.18,274,21,5,0) FUCHSIA -16711935 "^DD",2006.18,2006.18,274,21,6,0) Reference: AccuSoft ImageGear MD "^DD",2006.18,2006.18,274,"DT") 3120426 "^DD",2006.18,2006.18,275,0) ANNOTATION DISPLAY OPACITY^NJ3,0^^ANNOTDISPLAY;6^K:+X'=X!(X>255)!(X<63)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,275,3) Type a number between 63 and 255. "^DD",2006.18,2006.18,275,21,0) ^.001^2^2^3120501^^^^ "^DD",2006.18,2006.18,275,21,1,0) This defines the opacity of the Display annotation tools. The default is 159. "^DD",2006.18,2006.18,275,21,2,0) It is the degree to which light is not allowed to travel through Opaque context. "^DD",2006.18,2006.18,275,"DT") 3120501 "^DD",2006.18,2006.18,276,0) ANNOTATION DISPLAY ARROW STYLE^S^0:POINTER;1:SOLID;2:OPEN;3:POINTER SOLID;4:NONE;^ANNOTDISPLAY;7^Q "^DD",2006.18,2006.18,276,3) Enter the arrow style of the Display annotation tools. "^DD",2006.18,2006.18,276,21,0) ^.001^2^2^3120501^^^^ "^DD",2006.18,2006.18,276,21,1,0) This defines the arrow style of the Display annotation tools. "^DD",2006.18,2006.18,276,21,2,0) The default is 0 - Pointer. "^DD",2006.18,2006.18,276,"DT") 3120501 "^DD",2006.18,2006.18,277,0) ANNOTATION DISPLAY ARROWLENGTH^NJ3,0^^ANNOTDISPLAY;8^K:+X'=X!(X>200)!(X<10)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,277,3) Type a number between 10 and 200, 0 decimal digits. "^DD",2006.18,2006.18,277,21,0) ^.001^2^2^3120501^^^ "^DD",2006.18,2006.18,277,21,1,0) This defines the arrow length of the Display annotation tools. "^DD",2006.18,2006.18,277,21,2,0) The default is 35. "^DD",2006.18,2006.18,277,"DT") 3120501 "^DD",2006.18,2006.18,278,0) ANNOTATION DISPLAY ARROW ANGLE^NJ2,0^^ANNOTDISPLAY;9^K:+X'=X!(X>60)!(X<10)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,278,3) Type a number between 10 and 60, 0 decimal digits. "^DD",2006.18,2006.18,278,21,0) ^.001^2^2^3120501^^^^ "^DD",2006.18,2006.18,278,21,1,0) This defines the arrow angle of the Display annotation tools (10-60 degrees). "^DD",2006.18,2006.18,278,21,2,0) The default is 35 degrees. "^DD",2006.18,2006.18,278,"DT") 3120501 "^DD",2006.18,2006.18,279,0) ANNOTATION DISPLAY G WIN LEFT^NJ5,0^^ANNOTDISPLAY;10^K:+X'=X!(X>99999)!(X<-99999)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,279,3) Type a number between -99999 and 99999, 0 decimal digits. "^DD",2006.18,2006.18,279,21,0) ^.001^1^1^3120501^^ "^DD",2006.18,2006.18,279,21,1,0) This defines the global setting of the Display annotation window left position on the screen (dot pixel). "^DD",2006.18,2006.18,279,"DT") 3120426 "^DD",2006.18,2006.18,280,0) ANNOTATION DISPLAY G WIN TOP^NJ5,0^^ANNOTDISPLAY;11^K:+X'=X!(X>99999)!(X<-99999)!(X?.E1"."1N.N) X "^DD",2006.18,2006.18,280,3) Type a number between -99999 and 99999, 0 decimal digits. "^DD",2006.18,2006.18,280,21,0) ^.001^1^1^3120501^^ "^DD",2006.18,2006.18,280,21,1,0) This defines the global setting of the Display annotation window top position on the screen (dot pixel). "^DD",2006.18,2006.18,280,"DT") 3120426 "^DD",2006.18,2006.18,281,0) ANNOTATION DISPLAY AUTO SHOW^S^1:YES;0:NO;^ANNOTDISPLAY;12^Q "^DD",2006.18,2006.18,281,3) Enter 'YES' to auto-show the annotation of Display image. "^DD",2006.18,2006.18,281,21,0) ^.001^1^1^3120430^^ "^DD",2006.18,2006.18,281,21,1,0) This defines the auto-show annotation of Display image. "^DD",2006.18,2006.18,281,"DT") 3120426 "^DIC",2005.002,2005.002,0) IMAGING ANNOTATION^2005.002 "^DIC",2005.002,2005.002,0,"GL") ^MAG(2005.002, "^DIC",2005.002,2005.002,"%",0) ^1.005^1^1 "^DIC",2005.002,2005.002,"%",1,0) MAG "^DIC",2005.002,2005.002,"%","B","MAG",1) "^DIC",2005.002,2005.002,"%D",0) ^1.001^21^21^3111013^^^^ "^DIC",2005.002,2005.002,"%D",1,0) +---------------------------------------------------------------+ "^DIC",2005.002,2005.002,"%D",2,0) | | "^DIC",2005.002,2005.002,"%D",3,0) | Property of the US Government. | "^DIC",2005.002,2005.002,"%D",4,0) | No permission to copy or redistribute this software is given. | "^DIC",2005.002,2005.002,"%D",5,0) | Use of unreleased versions of this software requires the user | "^DIC",2005.002,2005.002,"%D",6,0) | to execute a written test agreement with the VistA Imaging | "^DIC",2005.002,2005.002,"%D",7,0) | Development Office of the Department of Veterans Affairs, | "^DIC",2005.002,2005.002,"%D",8,0) | telephone (301) 734-0100. | "^DIC",2005.002,2005.002,"%D",9,0) | | "^DIC",2005.002,2005.002,"%D",10,0) | The Food and Drug Administration classifies this software as | "^DIC",2005.002,2005.002,"%D",11,0) | a medical device. As such, it may not be changed in any way. | "^DIC",2005.002,2005.002,"%D",12,0) | Modifications to this software may result in an adulterated | "^DIC",2005.002,2005.002,"%D",13,0) | medical device under 21CFR820, the use of which is considered | "^DIC",2005.002,2005.002,"%D",14,0) | to be a violation of US Federal Statutes. | "^DIC",2005.002,2005.002,"%D",15,0) | | "^DIC",2005.002,2005.002,"%D",16,0) +---------------------------------------------------------------+ "^DIC",2005.002,2005.002,"%D",17,0) "^DIC",2005.002,2005.002,"%D",18,0) This file contains an entry for each annotated image. The information "^DIC",2005.002,2005.002,"%D",19,0) includes the detail about each annotation, e.g.: annotator, date/time "^DIC",2005.002,2005.002,"%D",20,0) saved, tool version, source and XML data...etc. "^DIC",2005.002,2005.002,"%D",21,0) "^DIC",2005.002,"B","IMAGING ANNOTATION",2005.002) **END** **END** **** ****