KIDS Distribution saved on Apr 01, 2013@13:54:12 VistA Imaging V3.0 Patch 127 - Telereader Maintenance - 04/01/2013 01:54PM **KIDS**:MAG*3.0*127^ **INSTALL NAME** MAG*3.0*127 "BLD",3463,0) MAG*3.0*127^IMAGING^0^3130401^y "BLD",3463,1,0) ^^18^18^3130401 "BLD",3463,1,1,0) VistA Imaging V3.0 Patch 127 - Telereader Maintenance "BLD",3463,1,2,0) "BLD",3463,1,3,0) "BLD",3463,1,4,0) Routines: "BLD",3463,1,5,0) MAGDTR01 new value = 41833275 "BLD",3463,1,6,0) MAGDTR03 new value = 74736131 "BLD",3463,1,7,0) MAGDTR04 new value = 23585241 "BLD",3463,1,8,0) MAGDTR05 new value = 54928780 "BLD",3463,1,9,0) MAGGTU4T new value = 5296933 "BLD",3463,1,10,0) MAGIP127 new value = 9198493 "BLD",3463,1,11,0) MAGNTLR2 new value = 33178370 "BLD",3463,1,12,0) MAGNTLR4 new value = 12125415 "BLD",3463,1,13,0) MAGNTLR5 new value = 7485097 "BLD",3463,1,14,0) MAGNTLR6 new value = 14484847 "BLD",3463,1,15,0) MAGNTLRS new value = 146515363 "BLD",3463,1,16,0) "BLD",3463,1,17,0) Please note that routine MAGIP127 is deleted after the KIDS Build is "BLD",3463,1,18,0) installed. "BLD",3463,4,0) ^9.64PA^2006.5841^1 "BLD",3463,4,2006.5841,0) 2006.5841 "BLD",3463,4,2006.5841,2,0) ^9.641^2006.5841^1 "BLD",3463,4,2006.5841,2,2006.5841,0) TELEREADER ACQUISITION SERVICE (File-top level) "BLD",3463,4,2006.5841,2,2006.5841,1,0) ^9.6411^1^1 "BLD",3463,4,2006.5841,2,2006.5841,1,1,0) PROCEDURE "BLD",3463,4,2006.5841,222) y^y^p^^^^n^^n "BLD",3463,4,2006.5841,224) "BLD",3463,4,"APDD",2006.5841,2006.5841) "BLD",3463,4,"APDD",2006.5841,2006.5841,1) "BLD",3463,4,"B",2006.5841,2006.5841) "BLD",3463,6.3) V3.0p127Build4231_T9 "BLD",3463,"ABNS",0) ^9.66A^^ "BLD",3463,"ABPKG") n^n^G.IMAGING DEVELOPMENT TEAM@DOMAIN.EXT "BLD",3463,"INI") PRE^MAGIP127 "BLD",3463,"INID") n^y^y "BLD",3463,"INIT") POS^MAGIP127 "BLD",3463,"KRN",0) ^9.67PA^8994^19 "BLD",3463,"KRN",.4,0) .4 "BLD",3463,"KRN",.401,0) .401 "BLD",3463,"KRN",.402,0) .402 "BLD",3463,"KRN",.403,0) .403 "BLD",3463,"KRN",.5,0) .5 "BLD",3463,"KRN",.84,0) .84 "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^11^11 "BLD",3463,"KRN",9.8,"NM",1,0) MAGDTR01^^0^B41833275 "BLD",3463,"KRN",9.8,"NM",2,0) MAGDTR03^^0^B74736131 "BLD",3463,"KRN",9.8,"NM",3,0) MAGDTR04^^0^B23585241 "BLD",3463,"KRN",9.8,"NM",4,0) MAGDTR05^^0^B54928780 "BLD",3463,"KRN",9.8,"NM",5,0) MAGGTU4T^^0^B5296933 "BLD",3463,"KRN",9.8,"NM",6,0) MAGIP127^^0^B9198493 "BLD",3463,"KRN",9.8,"NM",7,0) MAGNTLR2^^0^B33178370 "BLD",3463,"KRN",9.8,"NM",8,0) MAGNTLR4^^0^B12125415 "BLD",3463,"KRN",9.8,"NM",9,0) MAGNTLR5^^0^B7485097 "BLD",3463,"KRN",9.8,"NM",10,0) MAGNTLR6^^0^B14484847 "BLD",3463,"KRN",9.8,"NM",11,0) MAGNTLRS^^0^B146515363 "BLD",3463,"KRN",9.8,"NM","B","MAGDTR01",1) "BLD",3463,"KRN",9.8,"NM","B","MAGDTR03",2) "BLD",3463,"KRN",9.8,"NM","B","MAGDTR04",3) "BLD",3463,"KRN",9.8,"NM","B","MAGDTR05",4) "BLD",3463,"KRN",9.8,"NM","B","MAGGTU4T",5) "BLD",3463,"KRN",9.8,"NM","B","MAGIP127",6) "BLD",3463,"KRN",9.8,"NM","B","MAGNTLR2",7) "BLD",3463,"KRN",9.8,"NM","B","MAGNTLR4",8) "BLD",3463,"KRN",9.8,"NM","B","MAGNTLR5",9) "BLD",3463,"KRN",9.8,"NM","B","MAGNTLR6",10) "BLD",3463,"KRN",9.8,"NM","B","MAGNTLRS",11) "BLD",3463,"KRN",19,0) 19 "BLD",3463,"KRN",19.1,0) 19.1 "BLD",3463,"KRN",101,0) 101 "BLD",3463,"KRN",409.61,0) 409.61 "BLD",3463,"KRN",771,0) 771 "BLD",3463,"KRN",870,0) 870 "BLD",3463,"KRN",8989.51,0) 8989.51 "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 DICOM CON UNREADLIST GET^^0 "BLD",3463,"KRN",8994,"NM",2,0) MAG DICOM CON UNREADLIST LOCK^^0 "BLD",3463,"KRN",8994,"NM",3,0) MAG3 TELEREADER ACQ SRVC SETUP^^0 "BLD",3463,"KRN",8994,"NM",4,0) MAG3 TELEREADER CLONE READER^^0 "BLD",3463,"KRN",8994,"NM",5,0) MAG3 TELEREADER TIU TITLES LST^^0 "BLD",3463,"KRN",8994,"NM","B","MAG DICOM CON UNREADLIST GET",1) "BLD",3463,"KRN",8994,"NM","B","MAG DICOM CON UNREADLIST LOCK",2) "BLD",3463,"KRN",8994,"NM","B","MAG3 TELEREADER ACQ SRVC SETUP",3) "BLD",3463,"KRN",8994,"NM","B","MAG3 TELEREADER CLONE READER",4) "BLD",3463,"KRN",8994,"NM","B","MAG3 TELEREADER TIU TITLES LST",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^1^1 "BLD",3463,"REQB",1,0) MAG*3.0*123^2 "BLD",3463,"REQB","B","MAG*3.0*123",1) "FIA",2006.5841) TELEREADER ACQUISITION SERVICE "FIA",2006.5841,0) ^MAG(2006.5841, "FIA",2006.5841,0,0) 2006.5841PI "FIA",2006.5841,0,1) y^y^p^^^^n^^n "FIA",2006.5841,0,10) "FIA",2006.5841,0,11) "FIA",2006.5841,0,"RLRO") "FIA",2006.5841,0,"VR") 3.0^MAG "FIA",2006.5841,2006.5841) 1 "FIA",2006.5841,2006.5841,1) "INI") PRE^MAGIP127 "INIT") POS^MAGIP127 "IX",2006.5841,2006.5841,"AC",0) 2006.5841^AC^Service/Procedure Index^MU^^R^IR^I^2006.5841^^^^^A "IX",2006.5841,2006.5841,"AC",1) I X2(1)'="" S ^MAG(2006.5841,"AC",$E(X2(1),1,30),+$E(X2(2),1,30),DA)="" "IX",2006.5841,2006.5841,"AC",2) K ^MAG(2006.5841,"AC",$E(X1(1),1,30),+$E(X1(2),1,30),DA) "IX",2006.5841,2006.5841,"AC",2.5) "IX",2006.5841,2006.5841,"AC",11.1,0) ^.114IA^2^2 "IX",2006.5841,2006.5841,"AC",11.1,1,0) 1^F^2006.5841^.01^^^F "IX",2006.5841,2006.5841,"AC",11.1,2,0) 2^F^2006.5841^1^^^F "KRN",8994,123457,-1) 0^1 "KRN",8994,123457,0) MAG DICOM CON UNREADLIST GET^LOOKUP^MAGDTR05^2^R^0 "KRN",8994,123457,1,0) ^8994.01^16^16^3120330^^ "KRN",8994,123457,1,1,0) Per VHA Directive 2004-038, this RPC should not be modified. "KRN",8994,123457,1,2,0) +---------------------------------------------------------------+ "KRN",8994,123457,1,3,0) | Property of the US Government. | "KRN",8994,123457,1,4,0) | No permission to copy or redistribute this software is given. | "KRN",8994,123457,1,5,0) | Use of unreleased versions of this software requires the user | "KRN",8994,123457,1,6,0) | to execute a written test agreement with the VistA Imaging | "KRN",8994,123457,1,7,0) | Development Office of the Department of Veterans Affairs, | "KRN",8994,123457,1,8,0) | telephone (301) 734-0100. | "KRN",8994,123457,1,9,0) | The Food and Drug Administration classifies this software as | "KRN",8994,123457,1,10,0) | a medical device. As such, it may not be changed in any way. | "KRN",8994,123457,1,11,0) | Modifications to this software may result in an adulterated | "KRN",8994,123457,1,12,0) | medical device under 21CFR820, the use of which is considered | "KRN",8994,123457,1,13,0) | to be a violation of US Federal Statutes. | "KRN",8994,123457,1,14,0) +---------------------------------------------------------------+ "KRN",8994,123457,1,15,0) "KRN",8994,123457,1,16,0) Retrieve records in TELEREADER READ/UNREAD LIST file (#2006.5849). "KRN",8994,123457,2,0) ^8994.02A^9^9 "KRN",8994,123457,2,1,0) ACQSITE^1^^1^1 "KRN",8994,123457,2,1,1,0) ^^1^1^3051005^ "KRN",8994,123457,2,1,1,1,0) Acquisition Station Number "KRN",8994,123457,2,2,0) SPECIALITY INDEX^1^^1^2 "KRN",8994,123457,2,2,1,0) ^^1^1^3051005^ "KRN",8994,123457,2,2,1,1,0) A pointer to IMAGE INDEX FOR SPECIALTY/SUBSPECIALTY file (#2005.84) "KRN",8994,123457,2,3,0) PROCEDURE INDEX^1^^1^3 "KRN",8994,123457,2,3,1,0) ^^1^1^3051005^ "KRN",8994,123457,2,3,1,1,0) A pointer to IMAGE INDEX FOR PROCEDURE/EVENT file (2005.85) - this is a comma-delimited list "KRN",8994,123457,2,4,0) TIMESTAMP^1^^1^4 "KRN",8994,123457,2,4,1,0) ^8994.021^1^1^3051220^^^^ "KRN",8994,123457,2,4,1,1,0) Fileman date/time to begin sequential search "KRN",8994,123457,2,5,0) DUZ^1^^0^5 "KRN",8994,123457,2,5,1,0) ^^1^1^3051214^ "KRN",8994,123457,2,5,1,1,0) User's DUZ at the Reading Site "KRN",8994,123457,2,6,0) READER SITE^1^^0^6 "KRN",8994,123457,2,6,1,0) ^^1^1^3051214^ "KRN",8994,123457,2,6,1,1,0) Reading Site pointer to INSTITUTION file (#4) "KRN",8994,123457,2,7,0) LOCKTIME^1^^0^7 "KRN",8994,123457,2,7,1,0) ^8994.021^1^1^3051220^^ "KRN",8994,123457,2,7,1,1,0) AMOUNT OF TIME A READ LOCK CAN BE HELD BEFORE TIMING OUT. "KRN",8994,123457,2,8,0) STATLIST^1^^^8 "KRN",8994,123457,2,8,1,0) ^^1^1^3120330^ "KRN",8994,123457,2,8,1,1,0) Status of entry to be retrieve (C, L, R, U, or W, in any combination) "KRN",8994,123457,2,9,0) READER STATION^1^^^9 "KRN",8994,123457,2,9,1,0) ^^1^1^3120330^ "KRN",8994,123457,2,9,1,1,0) Reading Site's Station Number "KRN",8994,123457,2,"B","ACQSITE",1) "KRN",8994,123457,2,"B","DUZ",5) "KRN",8994,123457,2,"B","LOCKTIME",7) "KRN",8994,123457,2,"B","PROCEDURE INDEX",3) "KRN",8994,123457,2,"B","READER SITE",6) "KRN",8994,123457,2,"B","READER STATION",9) "KRN",8994,123457,2,"B","SPECIALITY INDEX",2) "KRN",8994,123457,2,"B","STATLIST",8) "KRN",8994,123457,2,"B","TIMESTAMP",4) "KRN",8994,123457,2,"PARAMSEQ",1,1) "KRN",8994,123457,2,"PARAMSEQ",2,2) "KRN",8994,123457,2,"PARAMSEQ",3,3) "KRN",8994,123457,2,"PARAMSEQ",4,4) "KRN",8994,123457,2,"PARAMSEQ",5,5) "KRN",8994,123457,2,"PARAMSEQ",6,6) "KRN",8994,123457,2,"PARAMSEQ",7,7) "KRN",8994,123457,2,"PARAMSEQ",8,8) "KRN",8994,123457,2,"PARAMSEQ",9,9) "KRN",8994,123458,-1) 0^2 "KRN",8994,123458,0) MAG DICOM CON UNREADLIST LOCK^LOCK^MAGDTR04^1^R^0 "KRN",8994,123458,1,0) ^8994.01^16^16^3120330^^ "KRN",8994,123458,1,1,0) Per VHA Directive 2004-038, this RPC should not be modified. "KRN",8994,123458,1,2,0) +---------------------------------------------------------------+ "KRN",8994,123458,1,3,0) | Property of the US Government. | "KRN",8994,123458,1,4,0) | No permission to copy or redistribute this software is given. | "KRN",8994,123458,1,5,0) | Use of unreleased versions of this software requires the user | "KRN",8994,123458,1,6,0) | to execute a written test agreement with the VistA Imaging | "KRN",8994,123458,1,7,0) | Development Office of the Department of Veterans Affairs, | "KRN",8994,123458,1,8,0) | telephone (301) 734-0100. | "KRN",8994,123458,1,9,0) | The Food and Drug Administration classifies this software as | "KRN",8994,123458,1,10,0) | a medical device. As such, it may not be changed in any way. | "KRN",8994,123458,1,11,0) | Modifications to this software may result in an adulterated | "KRN",8994,123458,1,12,0) | medical device under 21CFR820, the use of which is considered | "KRN",8994,123458,1,13,0) | to be a violation of US Federal Statutes. | "KRN",8994,123458,1,14,0) +---------------------------------------------------------------+ "KRN",8994,123458,1,15,0) "KRN",8994,123458,1,16,0) Lock or unlock an entry in TELEREADER READ/UNREAD LIST file (#2006.5849). "KRN",8994,123458,2,0) ^8994.02A^8^8 "KRN",8994,123458,2,1,0) UNREAD LIST POINTER^1^^1^1 "KRN",8994,123458,2,1,1,0) ^^1^1^3051006^ "KRN",8994,123458,2,1,1,1,0) A pointer to TELEREADER READ/UNREAD LIST file (#2006.5849) "KRN",8994,123458,2,2,0) LOCK FLAG^1^^1^2 "KRN",8994,123458,2,2,1,0) ^^2^2^3051006^ "KRN",8994,123458,2,2,1,1,0) LOCK FLAG = 1 TO CREATE THE LOCK "KRN",8994,123458,2,2,1,2,0) LOCK FLAG = 0 TO REMOVE THE LOCK "KRN",8994,123458,2,3,0) FULL NAME^1^^1^3 "KRN",8994,123458,2,3,1,0) ^^1^1^3051006^ "KRN",8994,123458,2,3,1,1,0) FULL NAME OF READER (LAST,FIRST FORMAT) "KRN",8994,123458,2,4,0) NAME ABBREVIATION^1^^1^4 "KRN",8994,123458,2,4,1,0) ^^1^1^3051006^ "KRN",8994,123458,2,4,1,1,0) INITIALS FOR THE READER "KRN",8994,123458,2,5,0) REMOTE DUZ^1^^1^5 "KRN",8994,123458,2,5,1,0) ^8994.021^1^1^3120330^^ "KRN",8994,123458,2,5,1,1,0) DUZ of the Reader at acquisition site "KRN",8994,123458,2,6,0) LOCAL DUZ^1^^1^6 "KRN",8994,123458,2,6,1,0) ^8994.021^1^1^3120330^^^ "KRN",8994,123458,2,6,1,1,0) DUZ of the Reader at reading site "KRN",8994,123458,2,7,0) READER SITE^1^^1^7 "KRN",8994,123458,2,7,1,0) ^^1^1^3120330^ "KRN",8994,123458,2,7,1,1,0) Reading Site pointer to INSTITUTION file (#4) "KRN",8994,123458,2,8,0) READER STATION^1^^^8 "KRN",8994,123458,2,8,1,0) ^^1^1^3120330^ "KRN",8994,123458,2,8,1,1,0) Reading Site's Station Number "KRN",8994,123458,2,"B","FULL NAME",3) "KRN",8994,123458,2,"B","LOCAL DUZ",6) "KRN",8994,123458,2,"B","LOCK FLAG",2) "KRN",8994,123458,2,"B","NAME ABBREVIATION",4) "KRN",8994,123458,2,"B","READER SITE",7) "KRN",8994,123458,2,"B","READER STATION",8) "KRN",8994,123458,2,"B","REMOTE DUZ",5) "KRN",8994,123458,2,"B","UNREAD LIST POINTER",1) "KRN",8994,123458,2,"PARAMSEQ",1,1) "KRN",8994,123458,2,"PARAMSEQ",2,2) "KRN",8994,123458,2,"PARAMSEQ",3,3) "KRN",8994,123458,2,"PARAMSEQ",4,4) "KRN",8994,123458,2,"PARAMSEQ",5,5) "KRN",8994,123458,2,"PARAMSEQ",6,6) "KRN",8994,123458,2,"PARAMSEQ",7,7) "KRN",8994,123458,2,"PARAMSEQ",8,8) "KRN",8994,123459,-1) 0^3 "KRN",8994,123459,0) MAG3 TELEREADER ACQ SRVC SETUP^UASRVC^MAGNTLR6^1^R "KRN",8994,123459,1,0) ^8994.01^16^16^3120418^^^^ "KRN",8994,123459,1,1,0) Per VHA Directive 2004-038, this RPC 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) "KRN",8994,123459,1,16,0) UPDATES TELEREADER ACQUISITION SERVICE file (#2006.5841) "KRN",8994,123459,2,0) ^8994.02A^1^1 "KRN",8994,123459,2,1,0) MAGPARAM^2^^1^1 "KRN",8994,123459,2,1,1,0) ^8994.021^12^12^3120418^^ "KRN",8994,123459,2,1,1,1,0) Delete action: "KRN",8994,123459,2,1,1,2,0) MAGPARAM("ACTION") = "DELETE" "KRN",8994,123459,2,1,1,3,0) MAGPARAM("IEN") = IEN of the record that will be deleted "KRN",8994,123459,2,1,1,4,0) Add or Update action: "KRN",8994,123459,2,1,1,5,0) MAGPARAM("ACTION") = "ADD" or "UPDATE" "KRN",8994,123459,2,1,1,6,0) MAGPARAM("NAME") = A pointer to REQUEST SERVICES file (#123.5) "KRN",8994,123459,2,1,1,7,0) MAGPARAM("PROCEDURE") = A pointer to GMRC PROCEDURE file (#123.3) "KRN",8994,123459,2,1,1,8,0) MAGPARAM("SPECIALTY INDEX") = A pointer to the SPECIALTY file (#2005.84) "KRN",8994,123459,2,1,1,9,0) MAGPARAM("PROCEDURE INDEX") = A pointer to the PROCEDURE/EVENT file (#2005.85) "KRN",8994,123459,2,1,1,10,0) MAGPARAM("ACQUISITION SITE") = A pointer to the INSTITUTION file (#4) "KRN",8994,123459,2,1,1,11,0) MAGPARAM("UNREAD LIST CREATION TRIGGER") = I/O/F "KRN",8994,123459,2,1,1,12,0) MAGPARAM("TIU NOTE FILE") = A pointer to TIU DOCUMENT file (#8925.1) "KRN",8994,123459,2,"B","MAGPARAM",1) "KRN",8994,123459,2,"PARAMSEQ",1,1) "KRN",8994,123459,3,0) ^8994.03^3^3^3120418^^ "KRN",8994,123459,3,1,0) if error MAGRY = "0^Error" "KRN",8994,123459,3,2,0) if success MAGRY = "1^IEN" - IEN of the record that is updated "KRN",8994,123459,3,3,0) or IEN of the added record "KRN",8994,123460,-1) 0^4 "KRN",8994,123460,0) MAG3 TELEREADER CLONE READER^CLONE^MAGNTLR4^2^R "KRN",8994,123460,1,0) ^8994.01^16^16^3120420^^^ "KRN",8994,123460,1,1,0) Per VHA Directive 2004-038, this RPC 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) "KRN",8994,123460,1,16,0) Clone a Reader in TELEREADER READER file (#2006.5843) "KRN",8994,123460,2,0) ^8994.02A^2^2 "KRN",8994,123460,2,1,0) MAGFROM^1^^1^1 "KRN",8994,123460,2,1,1,0) ^^1^1^3120312^ "KRN",8994,123460,2,1,1,1,0) Source reader (a pointer to NEW PERSON file (#200)) to be cloned. "KRN",8994,123460,2,2,0) MAGTO^2^^1^2 "KRN",8994,123460,2,2,1,0) ^8994.021^1^1^3120420^^^ "KRN",8994,123460,2,2,1,1,0) An array with target readers (pointers to NEW PERSON file (#200)). "KRN",8994,123460,2,"B","MAGFROM",1) "KRN",8994,123460,2,"B","MAGTO",2) "KRN",8994,123460,2,"PARAMSEQ",1,1) "KRN",8994,123460,2,"PARAMSEQ",2,2) "KRN",8994,123460,3,0) ^8994.03^8^8^3120420^^^ "KRN",8994,123460,3,1,0) MAGRY = An array with results per cloned reader. "KRN",8994,123460,3,2,0) if error "KRN",8994,123460,3,3,0) MAGRY(0) = 0 ^ Error message "KRN",8994,123460,3,4,0) if success "KRN",8994,123460,3,5,0) MAGRY(0) = 1 ^ Number of processed readers "KRN",8994,123460,3,6,0) MAGRY(1..n) = 0|1 ^ Message "KRN",8994,123460,3,7,0) 0 failure "KRN",8994,123460,3,8,0) 1 success "KRN",8994,123461,-1) 0^5 "KRN",8994,123461,0) MAG3 TELEREADER TIU TITLES LST^TIUTLST^MAGNTLR5^4^R^^^1 "KRN",8994,123461,1,0) ^8994.01^16^16^3120405^^ "KRN",8994,123461,1,1,0) Per VHA Directive 2004-038, this RPC 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) "KRN",8994,123461,1,16,0) Get TIU Note Titles list. "KRN",8994,123461,3,0) ^8994.03^7^7^3120405^^ "KRN",8994,123461,3,1,0) A list with TIU NOTE TITLES for consult and clinical procedure classes. "KRN",8994,123461,3,2,0) "KRN",8994,123461,3,3,0) if error "KRN",8994,123461,3,4,0) MAGRY(0) = 0 ^ Error message "KRN",8994,123461,3,5,0) if success "KRN",8994,123461,3,6,0) MAGRY(0) = 1 ^ Number of records return "KRN",8994,123461,3,7,0) MAGRY(1..n) = IEN of TIU NOTE TITLE ^ Long description of TIU NOTE TITLE "MBREQ") 0 "ORD",16,8994) 8994;16;1;;;;;;;RPCDEL^XPDIA1 "ORD",16,8994,0) REMOTE PROCEDURE "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) 127^3130401^.5 "PKG",454,22,1,"PAH",1,1,0) ^9.49011^17^17^3130401 "PKG",454,22,1,"PAH",1,1,1,0) Routines for Patch 127, Test Build 9. "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) MAGDTR01 value = 10127414 "PKG",454,22,1,"PAH",1,1,5,0) MAGDTR03 value = 17783950 "PKG",454,22,1,"PAH",1,1,6,0) MAGDTR04 value = 8787958 "PKG",454,22,1,"PAH",1,1,7,0) MAGDTR05 value = 14098871 "PKG",454,22,1,"PAH",1,1,8,0) MAGGTU4T value = 3613054 "PKG",454,22,1,"PAH",1,1,9,0) MAGIP127 value = 4678258 "PKG",454,22,1,"PAH",1,1,10,0) MAGNTLR2 value = 9701399 "PKG",454,22,1,"PAH",1,1,11,0) MAGNTLR4 value = 4675421 "PKG",454,22,1,"PAH",1,1,12,0) MAGNTLR5 value = 3700659 "PKG",454,22,1,"PAH",1,1,13,0) MAGNTLR6 value = 5942558 "PKG",454,22,1,"PAH",1,1,14,0) MAGNTLRS value = 18148694 "PKG",454,22,1,"PAH",1,1,15,0) "PKG",454,22,1,"PAH",1,1,16,0) Please note that routine MAGIP127 is deleted after the KIDS Build is "PKG",454,22,1,"PAH",1,1,17,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") 11 "RTN","MAGDTR01") 0^1^B41833275 "RTN","MAGDTR01",1,0) MAGDTR01 ;WOIFO/PMK/NST - Unread List for Consult/Procedure Request ; 12 Apr 2012 1:24 AM "RTN","MAGDTR01",2,0) ;;3.0;IMAGING;**46,127**;Mar 19, 2002;Build 4231;Apr 01, 2013 "RTN","MAGDTR01",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGDTR01",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGDTR01",5,0) ;; | Property of the US Government. | "RTN","MAGDTR01",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGDTR01",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGDTR01",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGDTR01",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGDTR01",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGDTR01",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGDTR01",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGDTR01",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGDTR01",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGDTR01",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGDTR01",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGDTR01",17,0) ;; "RTN","MAGDTR01",18,0) ENTRY ; entry point from ^MAGDHWC for a consult request "RTN","MAGDTR01",19,0) N GMRCSTS ;-- GMRC request status "RTN","MAGDTR01",20,0) N RESULT ;--- scratch variable "RTN","MAGDTR01",21,0) ; "RTN","MAGDTR01",22,0) ; check for an "OK" order control value in the ORC segment "RTN","MAGDTR01",23,0) I $P(HL7ORC,DEL)="OK" D Q ; new order "RTN","MAGDTR01",24,0) . D ADD^MAGDTR03(.RESULT,GMRCIEN,"O") ; add if "on order" is set "RTN","MAGDTR01",25,0) . Q "RTN","MAGDTR01",26,0) ; "RTN","MAGDTR01",27,0) ; check for a discontinued order "RTN","MAGDTR01",28,0) I " CA CR DC DR OC OD "[(" "_$P(HL7ORC,DEL)_" ") D Q "RTN","MAGDTR01",29,0) . D CANCEL^MAGDTR03 ; record the order as cancelled "RTN","MAGDTR01",30,0) . Q "RTN","MAGDTR01",31,0) ; "RTN","MAGDTR01",32,0) ; check for a FORWARD in the ORC segment "RTN","MAGDTR01",33,0) I $P($P(HL7ORC,DEL,16),DEL2,5)="FORWARD" D Q "RTN","MAGDTR01",34,0) . D FORWARD^MAGDTR02 ; handle forward for Unread List "RTN","MAGDTR01",35,0) . Q "RTN","MAGDTR01",36,0) ; "RTN","MAGDTR01",37,0) ; drive it off the GMRC request status "RTN","MAGDTR01",38,0) S GMRCSTS=$$GET1^DIQ(123,GMRCIEN,8) "RTN","MAGDTR01",39,0) I (GMRCSTS="PENDING")!(GMRCSTS="ACTIVE") D Q "RTN","MAGDTR01",40,0) . D ADD^MAGDTR03(.RESULT,GMRCIEN,"O") ; add if "on order" is set "RTN","MAGDTR01",41,0) . Q "RTN","MAGDTR01",42,0) I GMRCSTS="COMPLETE" D Q "RTN","MAGDTR01",43,0) . D COMPLETE^MAGDTR03 ; tag study as completed "RTN","MAGDTR01",44,0) . Q "RTN","MAGDTR01",45,0) I (GMRCSTS="CANCELLED")!(GMRCSTS="DISCONTINUED") D Q "RTN","MAGDTR01",46,0) . D CANCEL^MAGDTR03 ; tag study as cancelled "RTN","MAGDTR01",47,0) . Q "RTN","MAGDTR01",48,0) Q "RTN","MAGDTR01",49,0) ; "RTN","MAGDTR01",50,0) ORRIN ; entry point for processing IFC responses "RTN","MAGDTR01",51,0) N MAGETLVL,$ET "RTN","MAGDTR01",52,0) S $ET="D ORRINER1^"_$T(+0),MAGETLVL=$ST+1 "RTN","MAGDTR01",53,0) D ORRINPRC "RTN","MAGDTR01",54,0) Q "RTN","MAGDTR01",55,0) ; "RTN","MAGDTR01",56,0) ORRINER1 ; Log the error "RTN","MAGDTR01",57,0) D ^%ZTER "RTN","MAGDTR01",58,0) S $ET="D ORRINER2^"_$T(+0) "RTN","MAGDTR01",59,0) I $ST>MAGETLVL Q:$Q "" Q "RTN","MAGDTR01",60,0) S $EC="" "RTN","MAGDTR01",61,0) Q "RTN","MAGDTR01",62,0) ; "RTN","MAGDTR01",63,0) ORRINER2 ; Unwind "RTN","MAGDTR01",64,0) I $ST>MAGETLVL Q:$Q "" Q "RTN","MAGDTR01",65,0) S $EC="" "RTN","MAGDTR01",66,0) Q "RTN","MAGDTR01",67,0) ; "RTN","MAGDTR01",68,0) ORRINPRC ; "RTN","MAGDTR01",69,0) ; this is "piggy-backed" onto the GMRC IFC ORM EVENT protocol "RTN","MAGDTR01",70,0) ; see the RESPONSE PROCESSING ROUTINE for this protocol "RTN","MAGDTR01",71,0) ; the HL7 event handler first invokes ORRIN^GMRCIMSG and then this "RTN","MAGDTR01",72,0) ; "RTN","MAGDTR01",73,0) N GMRCIEN ;-- IEN of consult "RTN","MAGDTR01",74,0) N ORDCTRL ;-- order control code from ORC segment "RTN","MAGDTR01",75,0) N UNREAD ;--- IEN of entry on ^MAG(2006.5849) "RTN","MAGDTR01",76,0) N TIMESTMP ;- FileMan time stamp of unread item "RTN","MAGDTR01",77,0) N LISTDATA ;- unread list info from ^MAG(2006.5849) "RTN","MAGDTR01",78,0) N ACQSITE ;-- acquisition site "RTN","MAGDTR01",79,0) N IPROCIDX ;- procedure index "RTN","MAGDTR01",80,0) N ISPECIDX ;- specialty index "RTN","MAGDTR01",81,0) ; "RTN","MAGDTR01",82,0) D GETHL7A^MAGDTR01(.ORDCTRL,.GMRCIEN) Q:ORDCTRL'="OK" "RTN","MAGDTR01",83,0) Q:'$$FINDLIST^MAGDTR01(GMRCIEN) ; not in unread list "RTN","MAGDTR01",84,0) S UNREAD=$$UNREAD^MAGDTR02(GMRCIEN) Q:'UNREAD ; not there yet "RTN","MAGDTR01",85,0) S TIMESTMP=$$TIMESTMP^MAGDTR02(UNREAD) ; update the timestamp "RTN","MAGDTR01",86,0) S LISTDATA=^MAG(2006.5849,UNREAD,0) "RTN","MAGDTR01",87,0) ; record time of IFC response "RTN","MAGDTR01",88,0) S:$P(LISTDATA,"^",6)="" $P(^MAG(2006.5849,UNREAD,0),"^",6)=TIMESTMP "RTN","MAGDTR01",89,0) ; now change status to "Unread", if it was a "Waiting" previously "RTN","MAGDTR01",90,0) I $P(LISTDATA,"^",11)="W" D ; switch status and update cross reference "RTN","MAGDTR01",91,0) . S $P(^MAG(2006.5849,UNREAD,0),"^",11)="U" "RTN","MAGDTR01",92,0) . S ACQSITE=$P(LISTDATA,"^",2),ISPECIDX=$P(LISTDATA,"^",3) "RTN","MAGDTR01",93,0) . S IPROCIDX=$P(LISTDATA,"^",4) "RTN","MAGDTR01",94,0) . K ^MAG(2006.5849,"D",ACQSITE,ISPECIDX,IPROCIDX,"W",UNREAD) "RTN","MAGDTR01",95,0) . S ^MAG(2006.5849,"D",ACQSITE,ISPECIDX,IPROCIDX,"U",UNREAD)="" "RTN","MAGDTR01",96,0) . Q "RTN","MAGDTR01",97,0) Q "RTN","MAGDTR01",98,0) ; "RTN","MAGDTR01",99,0) GETHL7A(STATUS,GMRCIEN) ; get data from HL7 message - called from above "RTN","MAGDTR01",100,0) ; input: none "RTN","MAGDTR01",101,0) ; output: PERSON name of person ordering the consult "RTN","MAGDTR01",102,0) ; LOCATION IEN of the location from which the consult is ordered "RTN","MAGDTR01",103,0) ; "RTN","MAGDTR01",104,0) N HL7PARSE ;- name of parsed HL7 array defined by GETHL7 "RTN","MAGDTR01",105,0) N HL7RAW ;--- name of raw HL7 array defined by GETHL7 "RTN","MAGDTR01",106,0) N HL7SEGNO ;- segment number index returned by $$GETSEG^MAGDHRC0 "RTN","MAGDTR01",107,0) ; "RTN","MAGDTR01",108,0) D GETHL7 "RTN","MAGDTR01",109,0) S (STATUS,GMRCIEN)="" "RTN","MAGDTR01",110,0) S HL7SEGNO=$$GETSEG^MAGDHRC0("ORC") "RTN","MAGDTR01",111,0) I HL7SEGNO D "RTN","MAGDTR01",112,0) . S STATUS=$$GETDATA^MAGDHRC0(1) "RTN","MAGDTR01",113,0) . S GMRCIEN=$$GETDATA^MAGDHRC0(2,1,1) "RTN","MAGDTR01",114,0) . Q "RTN","MAGDTR01",115,0) K @HL7PARSE "RTN","MAGDTR01",116,0) Q "RTN","MAGDTR01",117,0) ; "RTN","MAGDTR01",118,0) GETHL7B(PERSON,LOCATION) ; get data from HL7 message - call from ^MAGDTR03 "RTN","MAGDTR01",119,0) ; input: none "RTN","MAGDTR01",120,0) ; output: PERSON name of person ordering the consult "RTN","MAGDTR01",121,0) ; LOCATION IEN of the location from which the consult is ordered "RTN","MAGDTR01",122,0) ; "RTN","MAGDTR01",123,0) N HL7PARSE ;- name of parsed HL7 array defined by GETHL7 "RTN","MAGDTR01",124,0) N HL7RAW ;--- name of raw HL7 array defined by GETHL7 "RTN","MAGDTR01",125,0) N HL7SEGNO ;- segment number index returned by $$GETSEG^MAGDHRC0 "RTN","MAGDTR01",126,0) N IPERSON ;-- field number in ORC segment that contains responsible/entered-by person "RTN","MAGDTR01",127,0) ; "RTN","MAGDTR01",128,0) D GETHL7 "RTN","MAGDTR01",129,0) K PERSON S LOCATION="" "RTN","MAGDTR01",130,0) S HL7SEGNO=$$GETSEG^MAGDHRC0("ORC") "RTN","MAGDTR01",131,0) ; get "responsible person" from ORC-12 or "entered by" person from ORC-10 "RTN","MAGDTR01",132,0) S IPERSON=$S($$GETDATA^MAGDHRC0(12)="":10,1:12) "RTN","MAGDTR01",133,0) S PERSON("FAMILY")=$$GETDATA^MAGDHRC0(IPERSON,1,1) "RTN","MAGDTR01",134,0) S PERSON("GIVEN")=$$GETDATA^MAGDHRC0(IPERSON,1,2) "RTN","MAGDTR01",135,0) S PERSON("MIDDLE")=$$GETDATA^MAGDHRC0(IPERSON,1,3) "RTN","MAGDTR01",136,0) S PERSON("SUFFIX")=$$GETDATA^MAGDHRC0(IPERSON,1,4) "RTN","MAGDTR01",137,0) S PERSON=PERSON("FAMILY") "RTN","MAGDTR01",138,0) I PERSON("GIVEN")'="" S PERSON=PERSON_","_PERSON("GIVEN") "RTN","MAGDTR01",139,0) I PERSON("MIDDLE")'="" S PERSON=PERSON_" "_PERSON("MIDDLE") "RTN","MAGDTR01",140,0) I PERSON("SUFFIX")'="" S PERSON=PERSON_" "_PERSON("SUFFIX") "RTN","MAGDTR01",141,0) ; location of the consult is in OBX-5.3(?) "RTN","MAGDTR01",142,0) S HL7SEGNO=$$GETSEG^MAGDHRC0("OBX") "RTN","MAGDTR01",143,0) S:HL7SEGNO LOCATION=$$IEN^XUAF4($$GETDATA^MAGDHRC0(5,1,3)) "RTN","MAGDTR01",144,0) K @HL7PARSE "RTN","MAGDTR01",145,0) Q "RTN","MAGDTR01",146,0) ; "RTN","MAGDTR01",147,0) GETHL7 ; get data from HL7 message "RTN","MAGDTR01",148,0) ; called from above and also called from ^MAGDTR03 "RTN","MAGDTR01",149,0) ; "RTN","MAGDTR01",150,0) ; returns: HL7PARSE (name of parsed HL7 array) "RTN","MAGDTR01",151,0) ; HL7RAW (name of array of unparsed HL7 segments) "RTN","MAGDTR01",152,0) ; "RTN","MAGDTR01",153,0) N HLNODE ;--- a full HL7 segment returned by X HLNEXT "RTN","MAGDTR01",154,0) N I ;-------- scratch array index "RTN","MAGDTR01",155,0) N X ;-------- dummy status return from $$PARSE^MAG7UP "RTN","MAGDTR01",156,0) ; "RTN","MAGDTR01",157,0) S HL7PARSE=$NAME(^TMP("MAG",$J,"HL7","PARSED")) "RTN","MAGDTR01",158,0) S HL7RAW="HL7RAW" "RTN","MAGDTR01",159,0) K @HL7PARSE ; initialize the destination global "RTN","MAGDTR01",160,0) ; copy HL7 message from ^TMP to HL7RAW global array "RTN","MAGDTR01",161,0) F I=1:1 X HLNEXT Q:HLQUIT'>0 S @HL7RAW@(I)=HLNODE "RTN","MAGDTR01",162,0) S X=$$PARSE^MAG7UP(HL7RAW,HL7PARSE) ; build the parsed HL7 array "RTN","MAGDTR01",163,0) Q "RTN","MAGDTR01",164,0) ; "RTN","MAGDTR01",165,0) FINDLIST(GMRCIEN,ISPECIDX,IPROCIDX,ACQSITE,TRIGGER,TIUNOTE,ALTSERV) ; "RTN","MAGDTR01",166,0) ; find the read/unread list for this consult "RTN","MAGDTR01",167,0) N CONSPROC,PROC,TOSERV,X,XREF "RTN","MAGDTR01",168,0) S (ISPECIDX,IPROCIDX,ACQSITE,TRIGGER,TIUNOTE)="" "RTN","MAGDTR01",169,0) Q:'$G(GMRCIEN) 0 "RTN","MAGDTR01",170,0) S TOSERV=$G(ALTSERV) ; optional argument "RTN","MAGDTR01",171,0) I TOSERV="" S TOSERV=+$$GET1^DIQ(123,GMRCIEN,1,"I") "RTN","MAGDTR01",172,0) S CONSPROC=$$GET1^DIQ(123,GMRCIEN,13,"I") "RTN","MAGDTR01",173,0) S PROC=$S(CONSPROC="C":"",1:$$GET1^DIQ(123,GMRCIEN,4,"I")) "RTN","MAGDTR01",174,0) S XREF=$O(^MAG(2006.5841,"AC",TOSERV,+PROC,"")) "RTN","MAGDTR01",175,0) I 'XREF Q 0 ; no read/unread list "RTN","MAGDTR01",176,0) S X=$G(^MAG(2006.5841,XREF,0)) "RTN","MAGDTR01",177,0) I X="" Q 0 ; record doesn't exist "RTN","MAGDTR01",178,0) S ISPECIDX=$P(X,"^",3),IPROCIDX=$P(X,"^",4),ACQSITE=$P(X,"^",5) "RTN","MAGDTR01",179,0) S TRIGGER=$P(X,"^",6),TIUNOTE=$P(X,"^",7) "RTN","MAGDTR01",180,0) Q XREF "RTN","MAGDTR01",181,0) ; "RTN","MAGDTR03") 0^2^B74736131 "RTN","MAGDTR03",1,0) MAGDTR03 ;WOIFO/PMK/NST - Read a DICOM image file ; 12 Apr 2012 1:24 PM "RTN","MAGDTR03",2,0) ;;3.0;IMAGING;**46,54,127**;Mar 19, 2002;Build 4231;Apr 01, 2013 "RTN","MAGDTR03",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGDTR03",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGDTR03",5,0) ;; | Property of the US Government. | "RTN","MAGDTR03",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGDTR03",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGDTR03",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGDTR03",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGDTR03",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGDTR03",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGDTR03",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGDTR03",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGDTR03",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGDTR03",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGDTR03",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGDTR03",17,0) ;; "RTN","MAGDTR03",18,0) ; "RTN","MAGDTR03",19,0) ADD(OUT,GMRCIEN,EVENT,IMAGECNT) ; add an entry to the read/unread list "RTN","MAGDTR03",20,0) N ACQSITE ;-- the site where the images were acquired "RTN","MAGDTR03",21,0) N IFCIEN ;--- the IEN of the IFC consult at the reading site "RTN","MAGDTR03",22,0) N IFCSITE ;-- 0 if not IFC "RTN","MAGDTR03",23,0) N ISPECIDX ;- index to specialties - read/unread list sort key "RTN","MAGDTR03",24,0) N IPROCIDX ;- index to procedures - read/unread list sort key (may be null) "RTN","MAGDTR03",25,0) N STATUS ;--- status of unread list entry (Unread or Waiting) "RTN","MAGDTR03",26,0) N TIMESTMP ;- FM date/time "RTN","MAGDTR03",27,0) N TRIGGER ;-- create unread list trigger: Forward, Image, or Order "RTN","MAGDTR03",28,0) N UNREAD ;-- pointer to entry in unread list "RTN","MAGDTR03",29,0) N X "RTN","MAGDTR03",30,0) ; should this consult be added to the Unread List? "RTN","MAGDTR03",31,0) S OUT=0 ; return variable "RTN","MAGDTR03",32,0) Q:$G(EVENT)="" ; nope, an event F, I, or O must be specified "RTN","MAGDTR03",33,0) Q:$$FINDLIST^MAGDTR01(GMRCIEN,.ISPECIDX,.IPROCIDX,.ACQSITE,.TRIGGER)<1 "RTN","MAGDTR03",34,0) S IMAGECNT=+$G(IMAGECNT) ; count of images "RTN","MAGDTR03",35,0) ; "RTN","MAGDTR03",36,0) S UNREAD=$$UNREAD^MAGDTR02(GMRCIEN) "RTN","MAGDTR03",37,0) I UNREAD="",EVENT'[TRIGGER Q ; nope, don't create it now "RTN","MAGDTR03",38,0) ; "RTN","MAGDTR03",39,0) I UNREAD="",((ISPECIDX="")!(IPROCIDX="")!(ACQSITE="")) Q ; required fields are blank "RTN","MAGDTR03",40,0) ; "RTN","MAGDTR03",41,0) ; get IFC information "RTN","MAGDTR03",42,0) S IFCSITE=$$GET1^DIQ(123,GMRCIEN,.07,"I") ; Routing Facility "RTN","MAGDTR03",43,0) S IFCIEN=$$GET1^DIQ(123,GMRCIEN,.06,"I") ; remote consult file entry "RTN","MAGDTR03",44,0) ; "RTN","MAGDTR03",45,0) I UNREAD="" D ; add record to the unread list "RTN","MAGDTR03",46,0) . N X "RTN","MAGDTR03",47,0) . L +^MAG(2006.5849,0):1E9 ; serial generation "RTN","MAGDTR03",48,0) . S UNREAD=$O(^MAG(2006.5849," "),-1)+1 ; get next IEN "RTN","MAGDTR03",49,0) . L +^MAG(2006.5849,UNREAD):1E9 "RTN","MAGDTR03",50,0) . S X=$G(^MAG(2006.5849,0)) "RTN","MAGDTR03",51,0) . S X="TELEREADER READ/UNREAD LIST^2006.5849^"_UNREAD_"^"_($P(X,"^",4)+1) "RTN","MAGDTR03",52,0) . S ^MAG(2006.5849,0)=X "RTN","MAGDTR03",53,0) . S ^MAG(2006.5849,UNREAD,0)=GMRCIEN_"^"_ACQSITE_"^"_ISPECIDX_"^"_IPROCIDX "RTN","MAGDTR03",54,0) . L -^MAG(2006.5849,0) ; end serial generation "RTN","MAGDTR03",55,0) . S TIMESTMP=$$TIMESTMP^MAGDTR02(UNREAD) "RTN","MAGDTR03",56,0) . S $P(^MAG(2006.5849,UNREAD,0),"^",7)=TIMESTMP ; acquisition start d/t "RTN","MAGDTR03",57,0) . S ^MAG(2006.5849,"B",GMRCIEN,UNREAD)="" "RTN","MAGDTR03",58,0) . ; "RTN","MAGDTR03",59,0) . ; set status -- if unpaired IFC, status="Waiting", otherwise "Unread" "RTN","MAGDTR03",60,0) . S STATUS=$S(IFCSITE&'IFCIEN:"W",1:"U") "RTN","MAGDTR03",61,0) . S $P(^MAG(2006.5849,UNREAD,0),"^",11)=STATUS "RTN","MAGDTR03",62,0) . S ^MAG(2006.5849,"D",ACQSITE,ISPECIDX,IPROCIDX,STATUS,UNREAD)="" "RTN","MAGDTR03",63,0) . L -^MAG(2006.5849,UNREAD) "RTN","MAGDTR03",64,0) . Q "RTN","MAGDTR03",65,0) E D "RTN","MAGDTR03",66,0) . S TIMESTMP=$$TIMESTMP^MAGDTR02(UNREAD) ; update d/t piece of last activity "RTN","MAGDTR03",67,0) . Q "RTN","MAGDTR03",68,0) ; "RTN","MAGDTR03",69,0) I IFCSITE D ; record the IFC remote site times, if they are not set "RTN","MAGDTR03",70,0) . ; save time the entry is added to the unread list, if not set "RTN","MAGDTR03",71,0) . I $P($G(^MAG(2006.5849,UNREAD,0)),"^",5)="" S $P(^(0),"^",5)=TIMESTMP "RTN","MAGDTR03",72,0) . I IFCIEN D "RTN","MAGDTR03",73,0) . . ; IFC remote consult already created - save same time, if not set "RTN","MAGDTR03",74,0) . . I $P($G(^MAG(2006.5849,UNREAD,0)),"^",6)="" S $P(^(0),"^",6)=TIMESTMP "RTN","MAGDTR03",75,0) . . Q "RTN","MAGDTR03",76,0) . Q "RTN","MAGDTR03",77,0) ; "RTN","MAGDTR03",78,0) I IMAGECNT D "RTN","MAGDTR03",79,0) . S $P(^MAG(2006.5849,UNREAD,0),"^",8)=TIMESTMP ; last acquisition d/t "RTN","MAGDTR03",80,0) . S $P(^(0),"^",10)=$P(^MAG(2006.5849,UNREAD,0),"^",10)+IMAGECNT "RTN","MAGDTR03",81,0) . Q "RTN","MAGDTR03",82,0) ; "RTN","MAGDTR03",83,0) S OUT=UNREAD "RTN","MAGDTR03",84,0) Q "RTN","MAGDTR03",85,0) ; "RTN","MAGDTR03",86,0) COMPLETE ; entry point from ^MAGDTR01 & ^MAGDTRLU for COMPLETED consults "RTN","MAGDTR03",87,0) N LOCATION,MAGPTR,TIMESTMP,UNREAD "RTN","MAGDTR03",88,0) S UNREAD=$$UNREAD^MAGDTR02(GMRCIEN) "RTN","MAGDTR03",89,0) S TIMESTMP=$$STATUPDT^MAGDTR02(UNREAD,"R") "RTN","MAGDTR03",90,0) I TIMESTMP D ; changed status to Resulted "RTN","MAGDTR03",91,0) . D FINISH ; record who updated the consult "RTN","MAGDTR03",92,0) . ; check if there is an image "RTN","MAGDTR03",93,0) . S MAGPTR=$O(^MAG(2006.5839,"C",123,GMRCIEN,0)) "RTN","MAGDTR03",94,0) . I MAGPTR,'$$TIULAST^MAGDGMRC(GMRCIEN) D "RTN","MAGDTR03",95,0) . . ; there is an image but no TIU note "RTN","MAGDTR03",96,0) . . D TIUNOTE ; create a TIU note for the image "RTN","MAGDTR03",97,0) . . Q "RTN","MAGDTR03",98,0) . Q "RTN","MAGDTR03",99,0) Q "RTN","MAGDTR03",100,0) ; "RTN","MAGDTR03",101,0) CANCEL ; entry point from ^MAGDTR01 & ^MAGDTRLU for CANCELLED consults "RTN","MAGDTR03",102,0) N TIMESTMP,UNREAD "RTN","MAGDTR03",103,0) S UNREAD=$$UNREAD^MAGDTR02(GMRCIEN) "RTN","MAGDTR03",104,0) S TIMESTMP=$$STATUPDT^MAGDTR02(UNREAD,"C") "RTN","MAGDTR03",105,0) I TIMESTMP D ; changed status to Cancelled "RTN","MAGDTR03",106,0) . ; remove any old data about the reading activities "RTN","MAGDTR03",107,0) . S $P(^MAG(2006.5849,UNREAD,0),"^",12,16)="^^^^" "RTN","MAGDTR03",108,0) . D FINISH ; record who cancelled the consult "RTN","MAGDTR03",109,0) . Q "RTN","MAGDTR03",110,0) Q "RTN","MAGDTR03",111,0) ; "RTN","MAGDTR03",112,0) FINISH ; finalize resulted or cancelled consult "RTN","MAGDTR03",113,0) N DUZACQ,FULLNAME,INITIALS,LOCKNAME,X "RTN","MAGDTR03",114,0) ; record who resulted or cancelled the consult "RTN","MAGDTR03",115,0) ; "RTN","MAGDTR03",116,0) I $G(MODE)="REPAIR" G REPAIR ; set in ^MAGDTRLU "RTN","MAGDTR03",117,0) ; "RTN","MAGDTR03",118,0) ; process the transaction "RTN","MAGDTR03",119,0) I $D(HLNEXT) D ; IFC - data comes from HL7 message "RTN","MAGDTR03",120,0) . D GETHL7B^MAGDTR01(.FULLNAME,.LOCATION) "RTN","MAGDTR03",121,0) . ; if resulter is not the person who locked the study, update name "RTN","MAGDTR03",122,0) . S LOCKNAME=$P(^MAG(2006.5849,UNREAD,0),"^",12) "RTN","MAGDTR03",123,0) . I LOCKNAME'=FULLNAME,FULLNAME'="" D ; not the same person, update "RTN","MAGDTR03",124,0) . . ; look up resulter in file 200 - check for >1 people with same name "RTN","MAGDTR03",125,0) . . S DUZACQ=$$FIND1^DIC(200,"","BX",FULLNAME) ; IA # 10060 "RTN","MAGDTR03",126,0) . . S INITIALS=$$GET1^DIQ(200,DUZACQ,1) ; initial "RTN","MAGDTR03",127,0) . . ; DUZread (piece 4) is not known - set to null "RTN","MAGDTR03",128,0) . . S X=FULLNAME_"^"_INITIALS_"^"_DUZACQ_"^^"_LOCATION "RTN","MAGDTR03",129,0) . . S $P(^MAG(2006.5849,UNREAD,0),"^",12,16)=X ; reader identification "RTN","MAGDTR03",130,0) . . Q "RTN","MAGDTR03",131,0) . Q "RTN","MAGDTR03",132,0) E D ; local consult - FULLNAME array is for IFCs only "RTN","MAGDTR03",133,0) . ; record the id of the resulter - DUZ comes from RPC session "RTN","MAGDTR03",134,0) . ; assumes that the results were entered directly, not via IFC/HL7 "RTN","MAGDTR03",135,0) . S FULLNAME=$$GET1^DIQ(200,DUZ,.01) "RTN","MAGDTR03",136,0) . S INITIALS=$$GET1^DIQ(200,DUZ,1) ; initial "RTN","MAGDTR03",137,0) . S X=FULLNAME_"^"_INITIALS_"^"_DUZ_"^"_DUZ_"^"_DUZ(2) ; DUZacq=DUZread "RTN","MAGDTR03",138,0) . S $P(^MAG(2006.5849,UNREAD,0),"^",12,16)=X ; reader identification "RTN","MAGDTR03",139,0) . Q "RTN","MAGDTR03",140,0) ; "RTN","MAGDTR03",141,0) D EXREF(UNREAD,TIMESTMP) ; set "E" cross-reference "RTN","MAGDTR03",142,0) Q "RTN","MAGDTR03",143,0) ; "RTN","MAGDTR03",144,0) EXREF(UNREAD,TIMESTMP) ; set cancellation or reading stop date/time and "E" cross-reference "RTN","MAGDTR03",145,0) N ACQSITE ;-- acquisition site "RTN","MAGDTR03",146,0) N LISTDATA ;- read/unread list data "RTN","MAGDTR03",147,0) Q:UNREAD="" Q:TIMESTMP="" "RTN","MAGDTR03",148,0) S LISTDATA=^MAG(2006.5849,UNREAD,0) "RTN","MAGDTR03",149,0) S ACQSITE=$P(LISTDATA,"^",2) Q:ACQSITE="" "RTN","MAGDTR03",150,0) S $P(^MAG(2006.5849,UNREAD,0),"^",18)=TIMESTMP "RTN","MAGDTR03",151,0) S ^MAG(2006.5849,"E",ACQSITE,TIMESTMP\1,UNREAD)="" "RTN","MAGDTR03",152,0) Q "RTN","MAGDTR03",153,0) ; "RTN","MAGDTR03",154,0) REPAIR ; code to repair a defective unread list entry "RTN","MAGDTR03",155,0) N ACTIVITY,DUZACQ,FULLNAME,HIT,I,IFCSITE,INITIALS,LOCATION,SUBFILE,TIMESTMP "RTN","MAGDTR03",156,0) S IFCSITE=$$GET1^DIQ(123,GMRCIEN,.07,"I") ; routing facility "RTN","MAGDTR03",157,0) ; "RTN","MAGDTR03",158,0) ; first find the consult request tracking "completion" activity in CPRS "RTN","MAGDTR03",159,0) S HIT=0 F I=1:1 D Q:HIT Q:ACTIVITY="" "RTN","MAGDTR03",160,0) . S SUBFILE=I_","_GMRCIEN ; format: , "RTN","MAGDTR03",161,0) . S ACTIVITY=$$GET1^DIQ(123.02,SUBFILE,1) ; activity - from ^GMR(123.1) "RTN","MAGDTR03",162,0) . I ACTIVITY="COMPLETE/UPDATE" S HIT=1 "RTN","MAGDTR03",163,0) . E I ACTIVITY="CANCELLED" S HIT=2 "RTN","MAGDTR03",164,0) . E I ACTIVITY="DISCONTINUED" S HIT=3 "RTN","MAGDTR03",165,0) . Q "RTN","MAGDTR03",166,0) I 'HIT S SUBFILE=(I-1)_","_GMRCIEN ; use the last entry "RTN","MAGDTR03",167,0) ; "RTN","MAGDTR03",168,0) ; now make the corrections "RTN","MAGDTR03",169,0) S TIMESTMP=$$GET1^DIQ(123.02,SUBFILE,2,"I") ; date/time of actual activity "RTN","MAGDTR03",170,0) S DUZACQ=$$GET1^DIQ(123.02,SUBFILE,3,"I") ; who's responsible for activity "RTN","MAGDTR03",171,0) I DUZACQ D ; action was performed locally "RTN","MAGDTR03",172,0) . S FULLNAME=$$GET1^DIQ(200,DUZACQ,.01) ; name "RTN","MAGDTR03",173,0) . S INITIALS=$$GET1^DIQ(200,DUZACQ,1) ; initials "RTN","MAGDTR03",174,0) . S LOCATION=ACQSITE "RTN","MAGDTR03",175,0) . S X=FULLNAME_"^"_INITIALS_"^"_DUZACQ_"^"_DUZACQ_"^"_ACQSITE ; DUZacq=DUZread "RTN","MAGDTR03",176,0) . Q "RTN","MAGDTR03",177,0) E I IFCSITE D ; remotely completed IFC "RTN","MAGDTR03",178,0) . S FULLNAME=$$GET1^DIQ(123.02,SUBFILE,.22) ; remote responsible person "RTN","MAGDTR03",179,0) . ; look up resulter in file 200 - check for >1 people with same name "RTN","MAGDTR03",180,0) . S DUZACQ=$$FIND1^DIC(200,"","BX",FULLNAME) ; IA # 10060 "RTN","MAGDTR03",181,0) . S INITIALS=$$GET1^DIQ(200,DUZACQ,1) ; initials "RTN","MAGDTR03",182,0) . ; DUZread (piece 4) is not known - set to null "RTN","MAGDTR03",183,0) . S X=FULLNAME_"^"_INITIALS_"^"_DUZACQ_"^^"_IFCSITE "RTN","MAGDTR03",184,0) . Q "RTN","MAGDTR03",185,0) E S X="^^^^" ; problem with CPRS consult "RTN","MAGDTR03",186,0) S $P(^MAG(2006.5849,UNREAD,0),"^",12,16)=X ; reader identification "RTN","MAGDTR03",187,0) S $P(^MAG(2006.5849,UNREAD,0),"^",19)=$$NOW^XLFDT() ; Record Repair TimeStamp in piece 19 Field #18 "RTN","MAGDTR03",188,0) D EXREF(UNREAD,TIMESTMP) ; set "E" cross-reference "RTN","MAGDTR03",189,0) Q "RTN","MAGDTR03",190,0) ; "RTN","MAGDTR03",191,0) TIUNOTE ; create a TIU result note, if one is not present "RTN","MAGDTR03",192,0) N DUZ ; this is called by the HL7 - DUZ and DUZ(2) are not set "RTN","MAGDTR03",193,0) N MAGDFN,MAGTEXT,MAGTITLE,UNREAD,XECUTE,ZZ "RTN","MAGDTR03",194,0) Q:'$D(HLNEXT) ; only create TIU result note for IFCs "RTN","MAGDTR03",195,0) Q:'$$FINDLIST^MAGDTR01(GMRCIEN,,,,,.MAGTITLE) "RTN","MAGDTR03",196,0) S UNREAD=$$UNREAD^MAGDTR02(GMRCIEN) Q:'UNREAD "RTN","MAGDTR03",197,0) S MAGTEXT(1)="Please refer to Inter-facility Consult for results." "RTN","MAGDTR03",198,0) S MAGTEXT(2)="" "RTN","MAGDTR03",199,0) S MAGTEXT(3)="Automatically generated note - signature not required." "RTN","MAGDTR03",200,0) S DUZ=$P(^MAG(2006.5849,UNREAD,0),"^",14) Q:'DUZ ; get DUZacq "RTN","MAGDTR03",201,0) S DUZ(0)="@",DUZ(2)=LOCATION ; get reading site ien "RTN","MAGDTR03",202,0) S MAGDFN=$$GET1^DIQ(123,GMRCIEN,.02,"I") "RTN","MAGDTR03",203,0) D NEW^MAGGNTI1(.ZZ,MAGDFN,MAGTITLE,1,"E",,DUZ,,,GMRCIEN,.MAGTEXT) "RTN","MAGDTR03",204,0) Q "RTN","MAGDTR03",205,0) ; "RTN","MAGDTR04") 0^3^B23585241 "RTN","MAGDTR04",1,0) MAGDTR04 ;WOIFO/PMK/NST - Read a DICOM image file ; 13 Feb 2007 11:36 AM "RTN","MAGDTR04",2,0) ;;3.0;IMAGING;**46,127**;Mar 19, 2002;Build 4231;Apr 01, 2013 "RTN","MAGDTR04",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGDTR04",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGDTR04",5,0) ;; | Property of the US Government. | "RTN","MAGDTR04",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGDTR04",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGDTR04",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGDTR04",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGDTR04",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGDTR04",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGDTR04",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGDTR04",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGDTR04",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGDTR04",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGDTR04",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGDTR04",17,0) ;; "RTN","MAGDTR04",18,0) LOCK(RETURN,UNREAD,LOCKFLAG,FULLNAME,INITIALS,DUZACQ,DUZREAD,DUZREAD2,DUZRDSTN) ; RPC = MAG DICOM CON UNREADLIST LOCK "RTN","MAGDTR04",19,0) ; "RTN","MAGDTR04",20,0) ; DUZREAD -- User's DUZ at the Reading Site "RTN","MAGDTR04",21,0) ; DUZREAD2 -- DIC(4) pointer to Reading Site "RTN","MAGDTR04",22,0) ; DUZRDSTN -- Station Number to Reading Site "RTN","MAGDTR04",23,0) ; "RTN","MAGDTR04",24,0) ; DUZRDSTN (Station Number, e.g. 660AA) and DUZREAD2 (IEN in INSTITUTION file (#4), e.g. 6001) describe same site "RTN","MAGDTR04",25,0) ; "RTN","MAGDTR04",26,0) ; Cannot switch to Station Number only. Old GUI clients, before P127, send only Site IEN "RTN","MAGDTR04",27,0) S DUZREAD2=$$SITEIEN^MAGDTR05($G(DUZREAD2),$G(DUZRDSTN)) ; Use Station number to get IEN of the site "RTN","MAGDTR04",28,0) N ACQSITE,LISTDATA,IPROCIDX,ISPECIDX,STATUS,X "RTN","MAGDTR04",29,0) S DUZACQ=DUZ ; DUZ at the acquisition site is the DUZ for the RPC "RTN","MAGDTR04",30,0) S STATUS="" "RTN","MAGDTR04",31,0) ; "RTN","MAGDTR04",32,0) I '$G(UNREAD) D "RTN","MAGDTR04",33,0) . S RETURN="-1|No UNREAD parameter set" "RTN","MAGDTR04",34,0) . Q "RTN","MAGDTR04",35,0) ; "RTN","MAGDTR04",36,0) E I '$D(^MAG(2006.5849,UNREAD,0)) D "RTN","MAGDTR04",37,0) . S RETURN="-2|UNREAD parameter wrong -- ^MAG(2006.5849,"_UNREAD_",0) is undefined" "RTN","MAGDTR04",38,0) . Q "RTN","MAGDTR04",39,0) ; "RTN","MAGDTR04",40,0) E D ; try to lock or unlock the study "RTN","MAGDTR04",41,0) . S LISTDATA=^MAG(2006.5849,UNREAD,0) "RTN","MAGDTR04",42,0) . S ACQSITE=$P(LISTDATA,"^",2),ISPECIDX=$P(LISTDATA,"^",3) "RTN","MAGDTR04",43,0) . S IPROCIDX=$P(LISTDATA,"^",4),STATUS=$P(LISTDATA,"^",11) "RTN","MAGDTR04",44,0) . I $G(LOCKFLAG) D ; try to lock the study "RTN","MAGDTR04",45,0) . . I STATUS="U" D "RTN","MAGDTR04",46,0) . . . S (STATUS,$P(^MAG(2006.5849,UNREAD,0),"^",11))="L" "RTN","MAGDTR04",47,0) . . . K ^MAG(2006.5849,"D",ACQSITE,ISPECIDX,IPROCIDX,"U",UNREAD) "RTN","MAGDTR04",48,0) . . . S ^MAG(2006.5849,"D",ACQSITE,ISPECIDX,IPROCIDX,"L",UNREAD)="" "RTN","MAGDTR04",49,0) . . . S X=FULLNAME_"^"_INITIALS_"^"_DUZACQ_"^"_DUZREAD_"^"_DUZREAD2 "RTN","MAGDTR04",50,0) . . . S $P(^MAG(2006.5849,UNREAD,0),"^",12,16)=X ; reader identification "RTN","MAGDTR04",51,0) . . . S X=$$TIMESTMP^MAGDTR02(UNREAD) ; update time stamp piece of last activity "RTN","MAGDTR04",52,0) . . . S $P(^MAG(2006.5849,UNREAD,0),"^",17,18)=X_"^" ; start reading timestamp "RTN","MAGDTR04",53,0) . . . S RETURN="0|Successful Lock" "RTN","MAGDTR04",54,0) . . . Q "RTN","MAGDTR04",55,0) . . E I STATUS="L" D "RTN","MAGDTR04",56,0) . . . I $P(^MAG(2006.5849,UNREAD,0),"^",12)=FULLNAME D "RTN","MAGDTR04",57,0) . . . . S RETURN="1|Already locked by same user" "RTN","MAGDTR04",58,0) . . . . Q "RTN","MAGDTR04",59,0) . . . E D "RTN","MAGDTR04",60,0) . . . . S RETURN="-3|Already locked by a different user" "RTN","MAGDTR04",61,0) . . . . Q "RTN","MAGDTR04",62,0) . . . Q "RTN","MAGDTR04",63,0) . . E I STATUS?1"R".E D "RTN","MAGDTR04",64,0) . . . S RETURN="-4|Already resulted and can't be locked" "RTN","MAGDTR04",65,0) . . . Q "RTN","MAGDTR04",66,0) . . E I STATUS?1"C".E D "RTN","MAGDTR04",67,0) . . . S RETURN="-5|Already cancelled and can't be locked" "RTN","MAGDTR04",68,0) . . . Q "RTN","MAGDTR04",69,0) . . E I STATUS?1"W".E D "RTN","MAGDTR04",70,0) . . . S RETURN="-6|Waiting and can't be locked" "RTN","MAGDTR04",71,0) . . . Q "RTN","MAGDTR04",72,0) . . E D "RTN","MAGDTR04",73,0) . . . S RETURN="-7|Can't be locked because of Unknown Status" "RTN","MAGDTR04",74,0) . . . Q "RTN","MAGDTR04",75,0) . . Q "RTN","MAGDTR04",76,0) . ; "RTN","MAGDTR04",77,0) . E D ; try to unlock the study "RTN","MAGDTR04",78,0) . . I STATUS="L" D "RTN","MAGDTR04",79,0) . . . I $P(^MAG(2006.5849,UNREAD,0),"^",12)=FULLNAME D "RTN","MAGDTR04",80,0) . . . . D UNLOCK(UNREAD,.STATUS) "RTN","MAGDTR04",81,0) . . . . S RETURN="0|Successful Unlock" "RTN","MAGDTR04",82,0) . . . . Q "RTN","MAGDTR04",83,0) . . . E D "RTN","MAGDTR04",84,0) . . . . S RETURN="-8|Locked by different user, can't be unlocked" "RTN","MAGDTR04",85,0) . . . . Q "RTN","MAGDTR04",86,0) . . . Q "RTN","MAGDTR04",87,0) . . E I STATUS="U" D "RTN","MAGDTR04",88,0) . . . S RETURN="2|Already unlocked" "RTN","MAGDTR04",89,0) . . . Q "RTN","MAGDTR04",90,0) . . E I STATUS?1"R".E D "RTN","MAGDTR04",91,0) . . . S RETURN="-9|Already resulted and can't be unlocked" "RTN","MAGDTR04",92,0) . . . Q "RTN","MAGDTR04",93,0) . . E I STATUS?1"C".E D "RTN","MAGDTR04",94,0) . . . S RETURN="-10|Already cancelled and can't be unlocked" "RTN","MAGDTR04",95,0) . . . Q "RTN","MAGDTR04",96,0) . . E I STATUS?1"W".E D "RTN","MAGDTR04",97,0) . . . S RETURN="-11|Waiting and can't be unlocked" "RTN","MAGDTR04",98,0) . . . Q "RTN","MAGDTR04",99,0) . . E D "RTN","MAGDTR04",100,0) . . . S RETURN="-12|Can't be unlocked because of Unknown Status" "RTN","MAGDTR04",101,0) . . . Q "RTN","MAGDTR04",102,0) . . Q "RTN","MAGDTR04",103,0) . Q "RTN","MAGDTR04",104,0) S RETURN=RETURN_"|"_STATUS "RTN","MAGDTR04",105,0) Q "RTN","MAGDTR04",106,0) ; "RTN","MAGDTR04",107,0) UNLOCK(UNREAD,STATUS) ; unlock the study - called by ^MAGDTR06 "RTN","MAGDTR04",108,0) N ACQSITE,LISTDATA,IPROCIDX,ISPECIDX,X "RTN","MAGDTR04",109,0) S LISTDATA=^MAG(2006.5849,UNREAD,0) "RTN","MAGDTR04",110,0) S ACQSITE=$P(LISTDATA,"^",2),ISPECIDX=$P(LISTDATA,"^",3) "RTN","MAGDTR04",111,0) S IPROCIDX=$P(LISTDATA,"^",4) "RTN","MAGDTR04",112,0) S (STATUS,$P(^MAG(2006.5849,UNREAD,0),"^",11))="U" "RTN","MAGDTR04",113,0) K ^MAG(2006.5849,"D",ACQSITE,ISPECIDX,IPROCIDX,"L",UNREAD) "RTN","MAGDTR04",114,0) S ^MAG(2006.5849,"D",ACQSITE,ISPECIDX,IPROCIDX,"U",UNREAD)="" "RTN","MAGDTR04",115,0) S X=$$TIMESTMP^MAGDTR02(UNREAD) ; update time stamp piece of last activity "RTN","MAGDTR04",116,0) S $P(^MAG(2006.5849,UNREAD,0),"^",12,18)="^^^^^^" "RTN","MAGDTR04",117,0) Q "RTN","MAGDTR05") 0^4^B54928780 "RTN","MAGDTR05",1,0) MAGDTR05 ;WOIFO/PMK,JSL,SAF,NST - Read a DICOM image file ; 18 Jan 2013 10:44 AM "RTN","MAGDTR05",2,0) ;;3.0;IMAGING;**46,54,123,127**;Mar 19, 2002;Build 4231;Apr 01, 2013 "RTN","MAGDTR05",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGDTR05",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGDTR05",5,0) ;; | Property of the US Government. | "RTN","MAGDTR05",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGDTR05",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGDTR05",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGDTR05",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGDTR05",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGDTR05",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGDTR05",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGDTR05",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGDTR05",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGDTR05",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGDTR05",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGDTR05",17,0) ;; "RTN","MAGDTR05",18,0) LOOKUP(OUT,STATNUMB,ISPECIDX,IPROCS,STARTING,DUZREAD,DUZREAD2,LOCKTIME,STATLIST,DUZRDSTN) ; RPC = MAG DICOM CON UNREADLIST GET "RTN","MAGDTR05",19,0) ; entry point to lookup entries in file "RTN","MAGDTR05",20,0) ; "RTN","MAGDTR05",21,0) ; OUT ------- Return array "RTN","MAGDTR05",22,0) ; STATNUMB -- Acquisition Station Number "RTN","MAGDTR05",23,0) ; ISPECIDX -- Index to Specialties (2005.84) "RTN","MAGDTR05",24,0) ; IPROCS ---- Indexes to Procedures (2005.85) - this is a comma-delimited list "RTN","MAGDTR05",25,0) ; STARTING -- Fileman date/time to begin sequential search "RTN","MAGDTR05",26,0) ; DUZREAD --- User's DUZ at the Reading Site "RTN","MAGDTR05",27,0) ; DUZREAD2 -- DIC(4) pointer to Reading Site "RTN","MAGDTR05",28,0) ; LOCKTIME -- timeout value for LOCKTIME "RTN","MAGDTR05",29,0) ; STATLIST -- status of entry (C, L, R, U, or W, in any combination) "RTN","MAGDTR05",30,0) ; DUZRDSTN -- Station Number to Reading Site "RTN","MAGDTR05",31,0) ; "RTN","MAGDTR05",32,0) ; DUZRDSTN (Station Number, e.g. 660AA) and DUZREAD2 (IEN in INSTITUTION file (#4), e.g. 6001) describe same site "RTN","MAGDTR05",33,0) ; Cannot switch to Station Number only. Old GUI client, before P127, sends DUZREAD2 (Site IEN) only "RTN","MAGDTR05",34,0) N ACQSITE ;- site index in Unread List "RTN","MAGDTR05",35,0) N ISTATUS ;-- counter to the status in STATLIST "RTN","MAGDTR05",36,0) N IPROC ;---- counter to IPROCS "RTN","MAGDTR05",37,0) N IPROCIDX ;- index to procedures (2005.85) "RTN","MAGDTR05",38,0) N TIMESTMP ;- last activity date/time for the entry "RTN","MAGDTR05",39,0) N SITENAME ;- name of acquisition site "RTN","MAGDTR05",40,0) N STATUS1 ;-- one status out of the STATLIST "RTN","MAGDTR05",41,0) N UNREAD ;--- pointer to entry in unread list "RTN","MAGDTR05",42,0) ; "RTN","MAGDTR05",43,0) S DUZREAD=$G(DUZREAD,0) "RTN","MAGDTR05",44,0) S DUZREAD2=$$SITEIEN^MAGDTR05($G(DUZREAD2),$G(DUZRDSTN)) ; Resolve the Reading Site Station number "RTN","MAGDTR05",45,0) S LOCKTIME=$G(LOCKTIME,0) "RTN","MAGDTR05",46,0) S STATLIST=$$UP^MAGDFCNV($G(STATLIST)) "RTN","MAGDTR05",47,0) I STATLIST="" S STATLIST="CDLRUW" ; default to all STATUS values "RTN","MAGDTR05",48,0) ; "RTN","MAGDTR05",49,0) S ACQSITE=$$ACQSITE^MAGDTR06(STATNUMB) "RTN","MAGDTR05",50,0) I ACQSITE<0 S OUT="-1, ACQUISITION STATION NUMBER "_STATNUMB_" IS NOT DEFINED IN FILE 4" Q "RTN","MAGDTR05",51,0) S SITENAME=$P(ACQSITE,"^",2),ACQSITE=$P(ACQSITE,"^",1) "RTN","MAGDTR05",52,0) ; "RTN","MAGDTR05",53,0) I LOCKTIME,DUZREAD2 D UNLOCKER ; automatically unlock timed out studies "RTN","MAGDTR05",54,0) ; "RTN","MAGDTR05",55,0) K OUT "RTN","MAGDTR05",56,0) I STARTING=0 D ; loop through the STATUS index because it is faster "RTN","MAGDTR05",57,0) . S STATLIST=$TR(STATLIST,"D") ; remove the DELETED status from STATLIST "RTN","MAGDTR05",58,0) . F ISTATUS=1:1:$L(STATLIST) S STATUS1=$E(STATLIST,ISTATUS) D "RTN","MAGDTR05",59,0) . . F IPROC=1:1:$L(IPROCS,",") S IPROCIDX=$P(IPROCS,",",IPROC) D "RTN","MAGDTR05",60,0) . . . S UNREAD="" "RTN","MAGDTR05",61,0) . . . F S UNREAD=$O(^MAG(2006.5849,"D",ACQSITE,ISPECIDX,IPROCIDX,STATUS1,UNREAD)) Q:UNREAD="" D "RTN","MAGDTR05",62,0) . . . . D LOOKUP1(UNREAD) "RTN","MAGDTR05",63,0) . . . . Q "RTN","MAGDTR05",64,0) . . . Q "RTN","MAGDTR05",65,0) . . Q "RTN","MAGDTR05",66,0) . Q "RTN","MAGDTR05",67,0) E D ; retrieve just the latest events "RTN","MAGDTR05",68,0) . F IPROC=1:1:$L(IPROCS,",") S IPROCIDX=$P(IPROCS,",",IPROC) D "RTN","MAGDTR05",69,0) . . S TIMESTMP=STARTING ; reinitialize the starting date & time for each index to procedures "RTN","MAGDTR05",70,0) . . F S TIMESTMP=$O(^MAG(2006.5849,"AC",ACQSITE,ISPECIDX,IPROCIDX,TIMESTMP)) Q:TIMESTMP="" D "RTN","MAGDTR05",71,0) . . . S UNREAD="" "RTN","MAGDTR05",72,0) . . . F S UNREAD=$O(^MAG(2006.5849,"AC",ACQSITE,ISPECIDX,IPROCIDX,TIMESTMP,UNREAD)) Q:UNREAD="" D "RTN","MAGDTR05",73,0) . . . . D LOOKUP1(UNREAD) "RTN","MAGDTR05",74,0) . . . . Q "RTN","MAGDTR05",75,0) . . . Q "RTN","MAGDTR05",76,0) . . Q "RTN","MAGDTR05",77,0) . Q "RTN","MAGDTR05",78,0) Q "RTN","MAGDTR05",79,0) ; "RTN","MAGDTR05",80,0) LOOKUP1(UNREAD) ; retrieve one entry from the unread list "RTN","MAGDTR05",81,0) N GMRCIEN "RTN","MAGDTR05",82,0) N DFN "RTN","MAGDTR05",83,0) N VADM "RTN","MAGDTR05",84,0) N ICN "RTN","MAGDTR05",85,0) N IFCSITE,IFCSITSN,IFCIEN,IFCSITEA,IFCRTIME,IFCLTIME,IFCETIME "RTN","MAGDTR05",86,0) N LISTDATA ;- read/unread list data "RTN","MAGDTR05",87,0) N QUIT "RTN","MAGDTR05",88,0) N READER "RTN","MAGDTR05",89,0) N SHORTID "RTN","MAGDTR05",90,0) N STATUS "RTN","MAGDTR05",91,0) N VA,VADM,VAERR "RTN","MAGDTR05",92,0) N VIPSTS ; VIP status "RTN","MAGDTR05",93,0) N I,LAST,X,Z "RTN","MAGDTR05",94,0) ; "RTN","MAGDTR05",95,0) S LISTDATA=$G(^MAG(2006.5849,UNREAD,0)) "RTN","MAGDTR05",96,0) S STATUS=$P(LISTDATA,"^",11) ; status "RTN","MAGDTR05",97,0) Q:STATLIST'[STATUS ; skip the entry if it is not the right STATUS "RTN","MAGDTR05",98,0) ; "RTN","MAGDTR05",99,0) S GMRCIEN=$P(LISTDATA,"^",1) "RTN","MAGDTR05",100,0) S IFCSITE=$$GET1^DIQ(123,GMRCIEN,.07,"I") ; Routing Facility "RTN","MAGDTR05",101,0) ; "RTN","MAGDTR05",102,0) ; check if this consult can it be displayed to the reader "RTN","MAGDTR05",103,0) S QUIT=0 "RTN","MAGDTR05",104,0) I DUZREAD D Q:QUIT "RTN","MAGDTR05",105,0) . I IFCSITE D Q:QUIT ; IFC reading site "RTN","MAGDTR05",106,0) . . I IFCSITE'=DUZREAD2 S QUIT=1 "RTN","MAGDTR05",107,0) . . Q "RTN","MAGDTR05",108,0) . I STATUS="W" S QUIT=2 Q "RTN","MAGDTR05",109,0) . I STATUS="L" D Q:QUIT "RTN","MAGDTR05",110,0) . . S READER=$P(LISTDATA,"^",15) ; reader "RTN","MAGDTR05",111,0) . . I READER,READER'=DUZREAD S QUIT=3 "RTN","MAGDTR05",112,0) . . Q "RTN","MAGDTR05",113,0) . Q "RTN","MAGDTR05",114,0) ; "RTN","MAGDTR05",115,0) ; acquisition site identification "RTN","MAGDTR05",116,0) S Z=UNREAD_"|"_GMRCIEN_"|"_STATNUMB_"|"_SITENAME "RTN","MAGDTR05",117,0) ; patient information "RTN","MAGDTR05",118,0) S DFN=$$GET1^DIQ(123,GMRCIEN,.02,"I") "RTN","MAGDTR05",119,0) D DEM^VADPT ; Supported IA (#10061) "RTN","MAGDTR05",120,0) D PTSEC^DGSEC4(.VIPSTS,DFN) ; IA #3027 "RTN","MAGDTR05",121,0) S ICN=$S($T(GETICN^MPIF001)'="":$$GETICN^MPIF001(DFN),1:"-1^NO MPI") ; IA #2701 "RTN","MAGDTR05",122,0) S X=$TR(VA("PID"),"-",""),SHORTID=$E(VADM(1),1)_$E(X,$L(X)-3,$L(X)) ;P123 "RTN","MAGDTR05",123,0) S Z=Z_"|"_VADM(1)_"|"_VA("PID")_"|"_ICN_"|"_SHORTID ;P123 "RTN","MAGDTR05",124,0) S Z=Z_"|"_VIPSTS(1) ; VIP status "RTN","MAGDTR05",125,0) S Z=Z_"|"_$P(^MAG(2005.84,ISPECIDX,0),"^",1)_"|"_$P(^MAG(2005.84,ISPECIDX,2),"^",1) "RTN","MAGDTR05",126,0) S Z=Z_"|"_$P(^MAG(2005.85,IPROCIDX,0),"^",1)_"|"_$P(^MAG(2005.85,IPROCIDX,2),"^",1) "RTN","MAGDTR05",127,0) ; time stamps and image acquisition statistics "RTN","MAGDTR05",128,0) S Z=Z_"|"_$P(LISTDATA,"^",7) ; time of first image "RTN","MAGDTR05",129,0) S Z=Z_"|"_$P(LISTDATA,"^",8) ; time of last image "RTN","MAGDTR05",130,0) S Z=Z_"|"_$P(LISTDATA,"^",9) ; time of last activity "RTN","MAGDTR05",131,0) S Z=Z_"|"_(+$P(LISTDATA,"^",10)) ; #images "RTN","MAGDTR05",132,0) S Z=Z_"|"_STATUS "RTN","MAGDTR05",133,0) S Z=Z_"|"_$$GET1^DIQ(123,GMRCIEN,13,"I") ; consult/procedure flag "RTN","MAGDTR05",134,0) S Z=Z_"|"_$P($$GET1^DIQ(123,GMRCIEN,5)," - ",2) ; GMRC urgency "RTN","MAGDTR05",135,0) ; "RTN","MAGDTR05",136,0) ; get inter-facility consult data "RTN","MAGDTR05",137,0) S IFCSITE=$$GET1^DIQ(123,GMRCIEN,.07,"I") ; Routing Facility "RTN","MAGDTR05",138,0) S IFCSITSN=$S(IFCSITE>0:$$STA^XUAF4(IFCSITE),1:"") ; Routing Facility Station Number ; Supported IA #2171 "RTN","MAGDTR05",139,0) I IFCSITE D ; inter-facility consult "RTN","MAGDTR05",140,0) . S IFCIEN=$$GET1^DIQ(123,GMRCIEN,.06,"I") ; remote consult file entry "RTN","MAGDTR05",141,0) . ; get IFC site abbreviation "RTN","MAGDTR05",142,0) . S IFCSITEA=$S(IFCSITSN'="":IFCSITSN,1:"("_IFCSITE_")") ; Station Number or (site IEN) "RTN","MAGDTR05",143,0) . S IFCLTIME=$P(LISTDATA,"^",5),IFCRTIME=$P(LISTDATA,"^",6) "RTN","MAGDTR05",144,0) . I IFCLTIME,IFCRTIME S IFCETIME=$$FMDIFF^XLFDT(IFCRTIME,IFCLTIME,2) "RTN","MAGDTR05",145,0) . E S IFCETIME="" "RTN","MAGDTR05",146,0) . Q "RTN","MAGDTR05",147,0) E D ; local consult "RTN","MAGDTR05",148,0) . S (IFCIEN,IFCSITEA,IFCRTIME,IFCLTIME,IFCETIME)="" "RTN","MAGDTR05",149,0) . Q "RTN","MAGDTR05",150,0) S Z=Z_"|"_IFCSITE_"|"_IFCSITEA_"|"_IFCIEN "RTN","MAGDTR05",151,0) S Z=Z_"|"_IFCLTIME_"|"_IFCRTIME_"|"_IFCETIME "RTN","MAGDTR05",152,0) F I=12:1:16 S Z=Z_"|"_$P(LISTDATA,"^",I) ; reader identification "RTN","MAGDTR05",153,0) S Z=Z_"|"_$P(LISTDATA,"^",17) ; start of reading "RTN","MAGDTR05",154,0) S Z=Z_"|"_$P(LISTDATA,"^",18) ; end of reading "RTN","MAGDTR05",155,0) S Z=Z_"|"_IFCSITSN ; "RTN","MAGDTR05",156,0) S LAST=$G(OUT(1),1) ; first element in the array is the counter "RTN","MAGDTR05",157,0) S LAST=LAST+1,OUT(LAST)=Z,OUT(1)=LAST "RTN","MAGDTR05",158,0) Q "RTN","MAGDTR05",159,0) ; "RTN","MAGDTR05",160,0) UNLOCKER ; automatically unlock any timed out studies "RTN","MAGDTR05",161,0) N GMRCIEN "RTN","MAGDTR05",162,0) N IFCSITE "RTN","MAGDTR05",163,0) N SECONDS ;-- date/time in seconds "RTN","MAGDTR05",164,0) N STATUS "RTN","MAGDTR05",165,0) N UNLOCKTM ;- earliest date/time for a lock (FM format) "RTN","MAGDTR05",166,0) N UNREAD ;--- pointer to entry in unread list "RTN","MAGDTR05",167,0) N X "RTN","MAGDTR05",168,0) ; "RTN","MAGDTR05",169,0) ; calculate the earliest automatic unlock date/time "RTN","MAGDTR05",170,0) S SECONDS=86400*$H+$P($H,",",2)-(60*LOCKTIME) "RTN","MAGDTR05",171,0) ; convert to FM format "RTN","MAGDTR05",172,0) S UNLOCKTM=$$HTFM^XLFDT((SECONDS\86400)_","_(SECONDS#86400),0) "RTN","MAGDTR05",173,0) ; "RTN","MAGDTR05",174,0) ; traverse the "lock list" and unlock those that have timed out "RTN","MAGDTR05",175,0) F IPROC=1:1:$L(IPROCS,",") S IPROCIDX=$P(IPROCS,",",IPROC) D "RTN","MAGDTR05",176,0) . S UNREAD="" "RTN","MAGDTR05",177,0) . F S UNREAD=$O(^MAG(2006.5849,"D",ACQSITE,ISPECIDX,IPROCIDX,"L",UNREAD)) Q:UNREAD="" D "RTN","MAGDTR05",178,0) . . S LISTDATA=$G(^MAG(2006.5849,UNREAD,0)) "RTN","MAGDTR05",179,0) . . ; check for a lock timeout "RTN","MAGDTR05",180,0) . . I $P(LISTDATA,"^",17)0:SITEIEN,1:$G(IEN,0)) "RTN","MAGGTU4T") 0^5^B5296933 "RTN","MAGGTU4T",1,0) MAGGTU4T ;WOIFO/SG/NST/JSL - VERSION CONTROL (TELEREADER) ; 01 Apr 2013 10:20 AM "RTN","MAGGTU4T",2,0) ;;3.0;IMAGING;**93,94,106,117,122,127**;Mar 19, 2002;Build 4231;Apr 01, 2013 "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.127 | 9 | 60 | Apr 2013 | "RTN","MAGGTU4T",27,0) ;;| 3.0.122 | 15 | 55 | Jul 2012 | "RTN","MAGGTU4T",28,0) ;;| 3.0.117 | 8 | 45 | Jul 2011 | "RTN","MAGGTU4T",29,0) ;;| 3.0.106 | 13 | 40 | Feb 2011 | "RTN","MAGGTU4T",30,0) ;;| 3.0.94 | 12 | 35 | May 2010 | "RTN","MAGGTU4T",31,0) ;;================================================================== "RTN","MAGGTU4T",32,0) ; "RTN","MAGGTU4T",33,0) ; Each row of the version control table contains the version and "RTN","MAGGTU4T",34,0) ; build number of a supported client. Released patches must also "RTN","MAGGTU4T",35,0) ; indicate the sequential numbers. "RTN","MAGGTU4T",36,0) ; "RTN","MAGGTU4T",37,0) ; Sort order of the rows does not matter. However, the reversed "RTN","MAGGTU4T",38,0) ; order of patch sequential numbers is recommended. "RTN","MAGGTU4T",39,0) ; "RTN","MAGGTU4T",40,0) Q "RTN","MAGGTU4T",41,0) ; "RTN","MAGGTU4T",42,0) ;***** ADDS A CLIENT-SPECIFIC WARNING (IF NECESSARY) "RTN","MAGGTU4T",43,0) ; "RTN","MAGGTU4T",44,0) ; .MAGBUF Reference to a local array that the warning text "RTN","MAGGTU4T",45,0) ; is returned to. It is appended to the RPC result "RTN","MAGGTU4T",46,0) ; array by the caller (WARNING^MAGGTU41). "RTN","MAGGTU4T",47,0) ; "RTN","MAGGTU4T",48,0) ; CLVER Client application version (Major.Minor.Patch.Build) "RTN","MAGGTU4T",49,0) ; "RTN","MAGGTU4T",50,0) ; CVRC Version check code returned by the $$CHKVER1^MAGGTU41 "RTN","MAGGTU4T",51,0) ; "RTN","MAGGTU4T",52,0) ; Notes "RTN","MAGGTU4T",53,0) ; ===== "RTN","MAGGTU4T",54,0) ; "RTN","MAGGTU4T",55,0) ; If the RPC result array already contains an error message that "RTN","MAGGTU4T",56,0) ; will terminate the client, application, this procedure is not "RTN","MAGGTU4T",57,0) ; called. "RTN","MAGGTU4T",58,0) ; "RTN","MAGGTU4T",59,0) WARNING(MAGBUF,CLVER,CVRC) ; "RTN","MAGGTU4T",60,0) Q "RTN","MAGIP127") 0^6^B9198493 "RTN","MAGIP127",1,0) MAGIP127 ;WOIFO/NST - Install code for MAG*3.0*127 ; 27 Feb 2013 09:15 AM "RTN","MAGIP127",2,0) ;;3.0;IMAGING;**127**;Mar 19, 2002;Build 4231;Apr 01, 2013 "RTN","MAGIP127",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGIP127",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGIP127",5,0) ;; | Property of the US Government. | "RTN","MAGIP127",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGIP127",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGIP127",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGIP127",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGIP127",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGIP127",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGIP127",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGIP127",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGIP127",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGIP127",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGIP127",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGIP127",17,0) ;; "RTN","MAGIP127",18,0) ; There are no environment checks here but the MAGIP118 has to be "RTN","MAGIP127",19,0) ; referenced by the "Environment Check Routine" field of the KIDS "RTN","MAGIP127",20,0) ; build so that entry points of the routine are available to the "RTN","MAGIP127",21,0) ; KIDS during all installation phases. "RTN","MAGIP127",22,0) Q "RTN","MAGIP127",23,0) ; "RTN","MAGIP127",24,0) ;+++++ INSTALLATION ERROR HANDLING "RTN","MAGIP127",25,0) ERROR ; "RTN","MAGIP127",26,0) S:$D(XPDNM) XPDABORT=1 "RTN","MAGIP127",27,0) ;--- Display the messages and store them to the INSTALL file "RTN","MAGIP127",28,0) D DUMP^MAGUERR1(),ABTMSG^MAGKIDS() "RTN","MAGIP127",29,0) Q "RTN","MAGIP127",30,0) ; "RTN","MAGIP127",31,0) ;***** POST-INSTALL CODE "RTN","MAGIP127",32,0) POS ; "RTN","MAGIP127",33,0) N CALLBACK "RTN","MAGIP127",34,0) D CLEAR^MAGUERR(1) "RTN","MAGIP127",35,0) ; "RTN","MAGIP127",36,0) ;--- Link new remote procedures to the Broker context option. "RTN","MAGIP127",37,0) S CALLBACK="$$ADDRPCS^"_$NA(MAGKIDS1("RPCLST^"_$T(+0),"MAG WINDOWS")) "RTN","MAGIP127",38,0) I $$CP^MAGKIDS("MAG ATTACH RPCS P127 WIN",CALLBACK)<0 D ERROR Q "RTN","MAGIP127",39,0) ; "RTN","MAGIP127",40,0) ;--- Various Updates "RTN","MAGIP127",41,0) I $$CP^MAGKIDS("MAG P127 UPDATE","$$UPDATE^"_$T(+0))<0 D ERROR Q "RTN","MAGIP127",42,0) ; "RTN","MAGIP127",43,0) ;--- Send the notification e-mail "RTN","MAGIP127",44,0) D BMES^XPDUTL("Post Install Mail Message: "_$$FMTE^XLFDT($$NOW^XLFDT)) "RTN","MAGIP127",45,0) D INS^MAGQBUT4(XPDNM,DUZ,$$NOW^XLFDT,XPDA) "RTN","MAGIP127",46,0) Q "RTN","MAGIP127",47,0) ; "RTN","MAGIP127",48,0) ;***** PRE-INSTALL CODE "RTN","MAGIP127",49,0) PRE ; "RTN","MAGIP127",50,0) ; Delete PROCEDURE field (#2006.5841,1). The field will be reloaded with the install. "RTN","MAGIP127",51,0) ; In this way we don't need to have IA for deletion of ^DD(2006.5841,0,"ID") "RTN","MAGIP127",52,0) D DELFLDS^MAGKIDS(2006.5841,1) "RTN","MAGIP127",53,0) Q "RTN","MAGIP127",54,0) ; "RTN","MAGIP127",55,0) ;+++++ LIST OF NEW REMOTE PROCEDURES "RTN","MAGIP127",56,0) ; have a list in format ;;MAG4 IMAGE LIST "RTN","MAGIP127",57,0) RPCLST ; "RTN","MAGIP127",58,0) ;;MAG3 TELEREADER TIU TITLES LST "RTN","MAGIP127",59,0) ;;MAG3 TELEREADER CLONE READER "RTN","MAGIP127",60,0) Q 0 "RTN","MAGIP127",61,0) ; "RTN","MAGIP127",62,0) ;+++++ Various updates "RTN","MAGIP127",63,0) UPDATE() ; "RTN","MAGIP127",64,0) D CLEANAC ; Clean up bogus "AC" cross-reference "RTN","MAGIP127",65,0) Q 0 "RTN","MAGIP127",66,0) ; "RTN","MAGIP127",67,0) CLEANAC ; Clean up bogus "AC" cross-reference in TELEREADER ACQUISITION SERVICE file (#2006.5841) "RTN","MAGIP127",68,0) N DIK "RTN","MAGIP127",69,0) L +^MAG(2006.5841):1E9 "RTN","MAGIP127",70,0) K ^MAG(2006.5841,"AC") ; delete "AC" cross-reference "RTN","MAGIP127",71,0) K ^MAG(2006.5841,"B") ; delete "B" cross-reference "RTN","MAGIP127",72,0) S DIK="^MAG(2006.5841," "RTN","MAGIP127",73,0) D IXALL^DIK ; Rebuild all cross-references in TELEREADER ACQUISITION SERVICE file (#2006.5841) "RTN","MAGIP127",74,0) L -^MAG(2006.5841) "RTN","MAGIP127",75,0) D MES^MAGKIDS("Rebuild of cross-references in TELEREADER ACQUISITION SERVICE file (#2006.5841) has been completed.") "RTN","MAGIP127",76,0) Q "RTN","MAGNTLR2") 0^7^B33178370 "RTN","MAGNTLR2",1,0) MAGNTLR2 ;WOIFO/NST - TeleReader Configuration ; 21 Jun 2010 12:19 PM "RTN","MAGNTLR2",2,0) ;;3.0;IMAGING;**114,127**;Mar 19, 2002;Build 4231;Apr 01, 2013 "RTN","MAGNTLR2",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGNTLR2",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGNTLR2",5,0) ;; | Property of the US Government. | "RTN","MAGNTLR2",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGNTLR2",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGNTLR2",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGNTLR2",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGNTLR2",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGNTLR2",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGNTLR2",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGNTLR2",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGNTLR2",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGNTLR2",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGNTLR2",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGNTLR2",17,0) ;; "RTN","MAGNTLR2",18,0) Q "RTN","MAGNTLR2",19,0) ;***** Return all records in TELEREADER READER file (#2006.5843) "RTN","MAGNTLR2",20,0) ; RPC: MAG3 TELEREADER READER LIST "RTN","MAGNTLR2",21,0) ; "RTN","MAGNTLR2",22,0) ; Input Parameters "RTN","MAGNTLR2",23,0) ; ================ "RTN","MAGNTLR2",24,0) ; No input parameters "RTN","MAGNTLR2",25,0) ; "RTN","MAGNTLR2",26,0) ; Return Values "RTN","MAGNTLR2",27,0) ; ============= "RTN","MAGNTLR2",28,0) ; if error found during execution "RTN","MAGNTLR2",29,0) ; MAGRY(0) = "0^Error" "RTN","MAGNTLR2",30,0) ; if success "RTN","MAGNTLR2",31,0) ; MAGRY(0) = "1^#CNT" - where #CNT is a number of records returned "RTN","MAGNTLR2",32,0) ; MAGRY(1) = "Reader ID^Reader Name^AQ Site ID^AQ Site^AQ Status^ "RTN","MAGNTLR2",33,0) ; Specialty ID^Specialty^Specialty Status^ "RTN","MAGNTLR2",34,0) ; Procedure ID^Procedure^Procedure Status^Procedure User Pref" "RTN","MAGNTLR2",35,0) ; MAGRY(2..n) = "^" delimited string with values of fields listed in MAGRY(1) "RTN","MAGNTLR2",36,0) ; "RTN","MAGNTLR2",37,0) LREADER(MAGRY) ;RPC [MAG3 TELEREADER READER LIST] "RTN","MAGNTLR2",38,0) ; "RTN","MAGNTLR2",39,0) N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR" "RTN","MAGNTLR2",40,0) ; "RTN","MAGNTLR2",41,0) N D0,D1,D2 "RTN","MAGNTLR2",42,0) N I0,I1,I2,I3 "RTN","MAGNTLR2",43,0) N OUT0,OUT1,OUT2,OUT3 "RTN","MAGNTLR2",44,0) N MSG0,MSG1,MSG2,MSG3,ERR "RTN","MAGNTLR2",45,0) N CNT "RTN","MAGNTLR2",46,0) N RVAL,RNAME "RTN","MAGNTLR2",47,0) N ACQSITE,ACQSITES,ACQSITEN,ACQSITST "RTN","MAGNTLR2",48,0) N SPECIDX,SPECIDXS,SPECIDXN "RTN","MAGNTLR2",49,0) N PROCIDX,PROCIDXS,PROCIDXU,PROCIDXN "RTN","MAGNTLR2",50,0) ; "RTN","MAGNTLR2",51,0) S MAGRY(0)="0^Error" "RTN","MAGNTLR2",52,0) S MAGRY(1)="Reader ID^Reader Name^AQ Site ID^AQ Site^AQ Station^AQ Status^" "RTN","MAGNTLR2",53,0) S MAGRY(1)=MAGRY(1)_"Specialty ID^Specialty^Specialty Status^" "RTN","MAGNTLR2",54,0) S MAGRY(1)=MAGRY(1)_"Procedure ID^Procedure^Procedure Status^Procedure User Pref" "RTN","MAGNTLR2",55,0) S CNT=1 ; Will skip 0 and 1 "RTN","MAGNTLR2",56,0) S ERR=0 "RTN","MAGNTLR2",57,0) S I0=0 "RTN","MAGNTLR2",58,0) D LIST^DIC(2006.5843,"","@;.01I;.01",,,,,,,,"OUT0","MSG0") "RTN","MAGNTLR2",59,0) I $$ISERROR(.MAGRY,.MSG0) Q ; Set MAGRY and quit if error exists "RTN","MAGNTLR2",60,0) F S I0=$O(OUT0("DILIST","ID",I0)) Q:'I0 D Q:ERR "RTN","MAGNTLR2",61,0) . S RVAL=OUT0("DILIST","ID",I0,".01","I") "RTN","MAGNTLR2",62,0) . S RNAME=OUT0("DILIST","ID",I0,".01","E") "RTN","MAGNTLR2",63,0) . S D0=OUT0("DILIST","2",I0) "RTN","MAGNTLR2",64,0) . D LIST^DIC(2006.58431,","_D0_",","@;.01I;.01;.5I",,,,,,,,"OUT1","MSG1") "RTN","MAGNTLR2",65,0) . I $$ISERROR(.MAGRY,.MSG1) S ERR=1 Q ; Set MAGRY and quit if error exists "RTN","MAGNTLR2",66,0) . S I1=0 "RTN","MAGNTLR2",67,0) . F S I1=$O(OUT1("DILIST","ID",I1)) Q:'I1 D Q:ERR "RTN","MAGNTLR2",68,0) . . S ACQSITE=OUT1("DILIST","ID",I1,".01","I") "RTN","MAGNTLR2",69,0) . . S ACQSITEN=OUT1("DILIST","ID",I1,".01","E") "RTN","MAGNTLR2",70,0) . . S ACQSITST=$$GET1^DIQ(4,ACQSITE,99) "RTN","MAGNTLR2",71,0) . . S ACQSITES=OUT1("DILIST","ID",I1,".5") "RTN","MAGNTLR2",72,0) . . S D1=OUT1("DILIST","2",I1) "RTN","MAGNTLR2",73,0) . . D LIST^DIC(2006.584311,","_D1_","_D0_",","@;.01I;.01;.5I",,,,,,,,"OUT2","MSG2") "RTN","MAGNTLR2",74,0) . . I $$ISERROR(.MAGRY,.MSG2) S ERR=1 Q ; Set MAGRY and quit if error exists "RTN","MAGNTLR2",75,0) . . S I2=0 "RTN","MAGNTLR2",76,0) . . F S I2=$O(OUT2("DILIST","ID",I2)) Q:'I2 D Q:ERR "RTN","MAGNTLR2",77,0) . . . S SPECIDX=OUT2("DILIST","ID",I2,".01","I") "RTN","MAGNTLR2",78,0) . . . S SPECIDXN=OUT2("DILIST","ID",I2,".01","E") "RTN","MAGNTLR2",79,0) . . . S SPECIDXS=OUT2("DILIST","ID",I2,".5") "RTN","MAGNTLR2",80,0) . . . S D2=OUT2("DILIST","2",I2) "RTN","MAGNTLR2",81,0) . . . D LIST^DIC(2006.5843111,","_D2_","_D1_","_D0_",","@;.01I;.01;.5I;1I",,,,,,,,"OUT3","MSG3") "RTN","MAGNTLR2",82,0) . . . I $$ISERROR(.MAGRY,.MSG3) S ERR=1 Q ; Set MAGRY and quit if error exists "RTN","MAGNTLR2",83,0) . . . S I3=0 "RTN","MAGNTLR2",84,0) . . . F S I3=$O(OUT3("DILIST","ID",I3)) Q:'I3 D "RTN","MAGNTLR2",85,0) . . . . S PROCIDX=OUT3("DILIST","ID",I3,".01","I") "RTN","MAGNTLR2",86,0) . . . . S PROCIDXN=OUT3("DILIST","ID",I3,".01","E") "RTN","MAGNTLR2",87,0) . . . . S PROCIDXS=OUT3("DILIST","ID",I3,".5") "RTN","MAGNTLR2",88,0) . . . . S PROCIDXU=OUT3("DILIST","ID",I3,"1") "RTN","MAGNTLR2",89,0) . . . . S CNT=CNT+1 "RTN","MAGNTLR2",90,0) . . . . S MAGRY(CNT)=RVAL_U_RNAME_U_ACQSITE_U_ACQSITEN_U_ACQSITST_U_ACQSITES "RTN","MAGNTLR2",91,0) . . . . S MAGRY(CNT)=MAGRY(CNT)_U_SPECIDX_U_SPECIDXN_U_SPECIDXS "RTN","MAGNTLR2",92,0) . . . . S MAGRY(CNT)=MAGRY(CNT)_U_PROCIDX_U_PROCIDXN_U_PROCIDXS_U_PROCIDXU "RTN","MAGNTLR2",93,0) . . . . Q "RTN","MAGNTLR2",94,0) . . . Q "RTN","MAGNTLR2",95,0) . . Q "RTN","MAGNTLR2",96,0) . Q "RTN","MAGNTLR2",97,0) I ERR Q "RTN","MAGNTLR2",98,0) S MAGRY(0)="1^"_(CNT-1) "RTN","MAGNTLR2",99,0) Q "RTN","MAGNTLR2",100,0) ; "RTN","MAGNTLR2",101,0) ;***** Return all records in DICOM HEALTHCARE PROVIDER SERVICE file (#2006.5831) "RTN","MAGNTLR2",102,0) ; RPC: MAG3 TELEREADER DHPS LIST "RTN","MAGNTLR2",103,0) ; "RTN","MAGNTLR2",104,0) ; Input Parameters "RTN","MAGNTLR2",105,0) ; ================ "RTN","MAGNTLR2",106,0) ; No input parameters "RTN","MAGNTLR2",107,0) ; "RTN","MAGNTLR2",108,0) ; Return Values "RTN","MAGNTLR2",109,0) ; ============= "RTN","MAGNTLR2",110,0) ; if error found during execution "RTN","MAGNTLR2",111,0) ; MAGRY(0) = "0^Error" "RTN","MAGNTLR2",112,0) ; if success "RTN","MAGNTLR2",113,0) ; MAGRY(0) = "1^#CNT" - where #CNT is a number of records returned "RTN","MAGNTLR2",114,0) ; MAGRY(1) = "IEN^Requested Service ID^Requested Service^Service Group ID^Service Group ID^ "RTN","MAGNTLR2",115,0) ; Service Division ID^Service Division ID^Clinic" "RTN","MAGNTLR2",116,0) ; "RTN","MAGNTLR2",117,0) ; MAGRY(2..n) = "^" delimited string with values of fields listed in MAGRY(1) "RTN","MAGNTLR2",118,0) ; "RTN","MAGNTLR2",119,0) ; Clinic column is tilda delimited - Clinic ID~Clinic~.... "RTN","MAGNTLR2",120,0) ; "RTN","MAGNTLR2",121,0) LDHSP(MAGRY) ;RPC [MAG3 TELEREADER DHPS LIST] "RTN","MAGNTLR2",122,0) ; "RTN","MAGNTLR2",123,0) N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR" "RTN","MAGNTLR2",124,0) ; "RTN","MAGNTLR2",125,0) N I0,I1,D0 "RTN","MAGNTLR2",126,0) N CNT,DEL,DEL1,MLTPL "RTN","MAGNTLR2",127,0) N OUT,OUT1,MSG,MSG1 "RTN","MAGNTLR2",128,0) K MAGRY,OUT,MSG "RTN","MAGNTLR2",129,0) S MAGRY(0)="0^Error" "RTN","MAGNTLR2",130,0) S MAGRY(1)="Requested Service ID^Requested Service^Service Group ID^Service Group ID^" "RTN","MAGNTLR2",131,0) S MAGRY(1)=MAGRY(1)_"Service Division ID^Service Division ID^Clinic" "RTN","MAGNTLR2",132,0) D LIST^DIC(2006.5831,"","@;.01I;.01;2I;2;3I;3",,,,,,,,"OUT","MSG") "RTN","MAGNTLR2",133,0) Q:$$ISERROR(.MAGRY,.MSG) ; Set MAGRY and quit if error exists "RTN","MAGNTLR2",134,0) S CNT=1 ; Will skip 0 and 1 "RTN","MAGNTLR2",135,0) S I0=0 "RTN","MAGNTLR2",136,0) F S I0=$O(OUT("DILIST","ID",I0)) Q:'I0 D "RTN","MAGNTLR2",137,0) . S D0=OUT("DILIST",2,I0) "RTN","MAGNTLR2",138,0) . S CNT=CNT+1 "RTN","MAGNTLR2",139,0) . S MAGRY(CNT)=D0 "RTN","MAGNTLR2",140,0) . S MAGRY(CNT)=MAGRY(CNT)_U_OUT("DILIST","ID",I0,".01","I")_U_OUT("DILIST","ID",I0,".01","E") "RTN","MAGNTLR2",141,0) . S MAGRY(CNT)=MAGRY(CNT)_U_OUT("DILIST","ID",I0,"2","I")_U_OUT("DILIST","ID",I0,"2","E") "RTN","MAGNTLR2",142,0) . S MAGRY(CNT)=MAGRY(CNT)_U_OUT("DILIST","ID",I0,"3","I")_U_OUT("DILIST","ID",I0,"3","E") "RTN","MAGNTLR2",143,0) . K OUT1,MSG1 "RTN","MAGNTLR2",144,0) . D LIST^DIC(2006.58314,","_D0_",","@;.01I;.01",,,,,,,,"OUT1","MSG1") "RTN","MAGNTLR2",145,0) . S I1=0 "RTN","MAGNTLR2",146,0) . S MLTPL="" "RTN","MAGNTLR2",147,0) . S DEL="",DEL1="~" "RTN","MAGNTLR2",148,0) . F S I1=$O(OUT1("DILIST","ID",I1)) Q:'I1 D "RTN","MAGNTLR2",149,0) . . S MLTPL=MLTPL_DEL_OUT1("DILIST","ID",I1,".01","I")_DEL1_OUT1("DILIST","ID",I1,".01","E") "RTN","MAGNTLR2",150,0) . . S DEL=DEL1 "RTN","MAGNTLR2",151,0) . . Q "RTN","MAGNTLR2",152,0) . S MAGRY(CNT)=MAGRY(CNT)_U_MLTPL "RTN","MAGNTLR2",153,0) . Q "RTN","MAGNTLR2",154,0) S MAGRY(0)="1^"_(CNT-1) "RTN","MAGNTLR2",155,0) Q "RTN","MAGNTLR2",156,0) ; "RTN","MAGNTLR2",157,0) ; Input Parameters "RTN","MAGNTLR2",158,0) ; ================ "RTN","MAGNTLR2",159,0) ; MSG = VA FileMan error array "RTN","MAGNTLR2",160,0) ; "RTN","MAGNTLR2",161,0) ; Return Values "RTN","MAGNTLR2",162,0) ; ============= "RTN","MAGNTLR2",163,0) ; MAGRY = "0^Error Message" "RTN","MAGNTLR2",164,0) ; "RTN","MAGNTLR2",165,0) ; Return 1 = error in MSG array "RTN","MAGNTLR2",166,0) ; 0 = no error in MSG array "RTN","MAGNTLR2",167,0) ISERROR(MAGRY,MSG) ; Check for error message "RTN","MAGNTLR2",168,0) I '$D(MSG("DIERR")) Q 0 ; No error "RTN","MAGNTLR2",169,0) ; "RTN","MAGNTLR2",170,0) N MAGRESA "RTN","MAGNTLR2",171,0) D MSG^DIALOG("A",.MAGRESA,245,5,"MSG") "RTN","MAGNTLR2",172,0) S MAGRY(0)="0^"_MAGRESA(1) "RTN","MAGNTLR2",173,0) Q 1 "RTN","MAGNTLR4") 0^8^B12125415 "RTN","MAGNTLR4",1,0) MAGNTLR4 ;WOIFO/NST - TeleReader Configuration utilities ; 23 Apr 2012 11:19 AM "RTN","MAGNTLR4",2,0) ;;3.0;IMAGING;**127**;Mar 19, 2002;Build 4231;Apr 01, 2013 "RTN","MAGNTLR4",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGNTLR4",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGNTLR4",5,0) ;; | Property of the US Government. | "RTN","MAGNTLR4",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGNTLR4",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGNTLR4",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGNTLR4",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGNTLR4",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGNTLR4",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGNTLR4",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGNTLR4",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGNTLR4",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGNTLR4",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGNTLR4",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGNTLR4",17,0) ;; "RTN","MAGNTLR4",18,0) Q "RTN","MAGNTLR4",19,0) ; "RTN","MAGNTLR4",20,0) ;***** Clone a Reader in TELEREADER READER file (#2006.5843) "RTN","MAGNTLR4",21,0) ; RPC: MAG3 TELEREADER CLONE READER "RTN","MAGNTLR4",22,0) ; "RTN","MAGNTLR4",23,0) ; Input Parameters "RTN","MAGNTLR4",24,0) ; ================ "RTN","MAGNTLR4",25,0) ; MAGFROM = Source reader (a pointer to NEW PERSON file (#200)) to be cloned "RTN","MAGNTLR4",26,0) ; MAGTO = An array with target readers (pointers to NEW PERSON file (#200)) "RTN","MAGNTLR4",27,0) ; "RTN","MAGNTLR4",28,0) ; Return Values "RTN","MAGNTLR4",29,0) ; ============= "RTN","MAGNTLR4",30,0) ; MAGRY = An array with results per cloned reader "RTN","MAGNTLR4",31,0) ; if error "RTN","MAGNTLR4",32,0) ; MAGRY(0) = 0 ^ Error message "RTN","MAGNTLR4",33,0) ; if success "RTN","MAGNTLR4",34,0) ; MAGRY(0) = 1 ^ Number of processed readers "RTN","MAGNTLR4",35,0) ; MAGRY(1..n) = 0|1 ^ Message "RTN","MAGNTLR4",36,0) ; 0 failure "RTN","MAGNTLR4",37,0) ; 1 success "RTN","MAGNTLR4",38,0) ; "RTN","MAGNTLR4",39,0) ; Note: ^TMP("MAGNTLR4",$J) is used during cloning process to store "RTN","MAGNTLR4",40,0) ; the privileges of the source reader. All the privileges are in "RTN","MAGNTLR4",41,0) ; multiple ACQUISITION SITE field (#2006.5843,1) "RTN","MAGNTLR4",42,0) ; "RTN","MAGNTLR4",43,0) CLONE(MAGRY,MAGFROM,MAGTO) ;RPC [MAG3 TELEREADER CLONE READER] "RTN","MAGNTLR4",44,0) N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR" "RTN","MAGNTLR4",45,0) N FROMIEN,IEN,I,MAGRES "RTN","MAGNTLR4",46,0) N MAGPRIV ; Reader's privileges "RTN","MAGNTLR4",47,0) ; "RTN","MAGNTLR4",48,0) I $G(MAGFROM)'>0 S MAGRY(0)="0^The source reader is not provided." Q "RTN","MAGNTLR4",49,0) ; Verify input parameters "RTN","MAGNTLR4",50,0) S FROMIEN=$O(^MAG(2006.5843,"B",MAGFROM,"")) "RTN","MAGNTLR4",51,0) I FROMIEN'>0 S MAGRY(0)="0^Reader #"_MAGFROM_" profile is not defined." Q "RTN","MAGNTLR4",52,0) ; "RTN","MAGNTLR4",53,0) ; Get the source reader profile "RTN","MAGNTLR4",54,0) L +^MAG(2006.5843,FROMIEN):10 "RTN","MAGNTLR4",55,0) E S MAGRY(0)="0^Cannot lock source reader profile" Q "RTN","MAGNTLR4",56,0) ; Store source reader privileges in temp global "RTN","MAGNTLR4",57,0) K ^TMP("MAGNTLR4",$J) "RTN","MAGNTLR4",58,0) M ^TMP("MAGNTLR4",$J,FROMIEN,1)=^MAG(2006.5843,FROMIEN,1) "RTN","MAGNTLR4",59,0) L -^MAG(2006.5843,FROMIEN) "RTN","MAGNTLR4",60,0) S MAGPRIV=$NA(^TMP("MAGNTLR4",$J,FROMIEN,1)) "RTN","MAGNTLR4",61,0) ; "RTN","MAGNTLR4",62,0) S IEN="" "RTN","MAGNTLR4",63,0) S I=0 "RTN","MAGNTLR4",64,0) F S IEN=$O(MAGTO(IEN)) Q:IEN="" D "RTN","MAGNTLR4",65,0) . ; Clone the reader IEN "RTN","MAGNTLR4",66,0) . D CLONE1R^MAGNTLR4(.MAGRES,MAGFROM,IEN,MAGPRIV) "RTN","MAGNTLR4",67,0) . S I=I+1,MAGRY(I)=MAGRES "RTN","MAGNTLR4",68,0) . Q "RTN","MAGNTLR4",69,0) K ^TMP("MAGNTLR4",$J) "RTN","MAGNTLR4",70,0) S MAGRY(0)="1^"_I "RTN","MAGNTLR4",71,0) Q "RTN","MAGNTLR4",72,0) ; "RTN","MAGNTLR4",73,0) ;+++++ Clone reader MAGFROM to MAGREADR "RTN","MAGNTLR4",74,0) ; "RTN","MAGNTLR4",75,0) ; Input Parameters "RTN","MAGNTLR4",76,0) ; ================ "RTN","MAGNTLR4",77,0) ; MAGFROM = Source reader "RTN","MAGNTLR4",78,0) ; MAGREADR = Target reader "RTN","MAGNTLR4",79,0) ; MAGPRIV = A source temp global with a profile configured "RTN","MAGNTLR4",80,0) ; "RTN","MAGNTLR4",81,0) ; Return Values "RTN","MAGNTLR4",82,0) ; ============= "RTN","MAGNTLR4",83,0) ; 0|1 ^ Message "RTN","MAGNTLR4",84,0) ; where "RTN","MAGNTLR4",85,0) ; 0 - failure "RTN","MAGNTLR4",86,0) ; 1 - success "RTN","MAGNTLR4",87,0) CLONE1R(MAGRY,MAGFROM,MAGREADR,MAGPRIV) ; Clone one reader "RTN","MAGNTLR4",88,0) N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR" "RTN","MAGNTLR4",89,0) N MAGNFDA,MAGNIEN,MAGNXE,MAGRESA "RTN","MAGNTLR4",90,0) N IEN,DIK,DA "RTN","MAGNTLR4",91,0) ; "RTN","MAGNTLR4",92,0) I MAGFROM=MAGREADR S MAGRY="0^Source and target readers are the same" Q "RTN","MAGNTLR4",93,0) ; Delete the target reader privileges first "RTN","MAGNTLR4",94,0) S DA=$O(^MAG(2006.5843,"B",MAGREADR,"")) "RTN","MAGNTLR4",95,0) I DA>0 D "RTN","MAGNTLR4",96,0) . S DIK="^MAG(2006.5843," "RTN","MAGNTLR4",97,0) . D ^DIK "RTN","MAGNTLR4",98,0) . Q "RTN","MAGNTLR4",99,0) ; "RTN","MAGNTLR4",100,0) ; Clone the reader "RTN","MAGNTLR4",101,0) ; Add the new reader first "RTN","MAGNTLR4",102,0) S MAGNFDA(2006.5843,"+1,",.01)=MAGREADR "RTN","MAGNTLR4",103,0) D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE") "RTN","MAGNTLR4",104,0) ; "RTN","MAGNTLR4",105,0) I $D(MAGNXE("DIERR","E")) D Q "RTN","MAGNTLR4",106,0) . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE") "RTN","MAGNTLR4",107,0) . S MAGRY="0^"_MAGRESA(1) "RTN","MAGNTLR4",108,0) . Q "RTN","MAGNTLR4",109,0) ; "RTN","MAGNTLR4",110,0) S IEN=MAGNIEN(1) ; New reader IEN "RTN","MAGNTLR4",111,0) ; Update the privileges for the reader "RTN","MAGNTLR4",112,0) M ^MAG(2006.5843,IEN,1)=@MAGPRIV "RTN","MAGNTLR4",113,0) S MAGRY="1^Reader #"_MAGREADR_" profile has been created" "RTN","MAGNTLR4",114,0) Q "RTN","MAGNTLR5") 0^9^B7485097 "RTN","MAGNTLR5",1,0) MAGNTLR5 ;WOIFO/NST - TeleReader Configuration utilities ; 11 Apr 2012 11:19 AM "RTN","MAGNTLR5",2,0) ;;3.0;IMAGING;**127**;Mar 19, 2002;Build 4231;Apr 01, 2013 "RTN","MAGNTLR5",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGNTLR5",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGNTLR5",5,0) ;; | Property of the US Government. | "RTN","MAGNTLR5",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGNTLR5",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGNTLR5",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGNTLR5",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGNTLR5",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGNTLR5",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGNTLR5",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGNTLR5",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGNTLR5",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGNTLR5",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGNTLR5",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGNTLR5",17,0) ;; "RTN","MAGNTLR5",18,0) Q "RTN","MAGNTLR5",19,0) ; "RTN","MAGNTLR5",20,0) ;***** Get TIU Note Titles list "RTN","MAGNTLR5",21,0) ; "RTN","MAGNTLR5",22,0) ; RPC: MAG3 TELEREADER TIU TITLES LST "RTN","MAGNTLR5",23,0) ; "RTN","MAGNTLR5",24,0) ; .MAGRY Reference to a local variable where the results are returned to. "RTN","MAGNTLR5",25,0) ; "RTN","MAGNTLR5",26,0) ; Input Parameters "RTN","MAGNTLR5",27,0) ; ================ "RTN","MAGNTLR5",28,0) ; N/A "RTN","MAGNTLR5",29,0) ; "RTN","MAGNTLR5",30,0) ; Return Values "RTN","MAGNTLR5",31,0) ; ============= "RTN","MAGNTLR5",32,0) ; A list with TIU NOTE TITLES for consult and clinical procedure classes "RTN","MAGNTLR5",33,0) ; "RTN","MAGNTLR5",34,0) ; if error "RTN","MAGNTLR5",35,0) ; MAGRY(0) = 0 ^ Error message "RTN","MAGNTLR5",36,0) ; if success "RTN","MAGNTLR5",37,0) ; MAGRY(0) = 1 ^ Number of records return "RTN","MAGNTLR5",38,0) ; MAGRY(1..n) = IEN of TIU NOTE TITLE ^ Long description of TIU NOTE TITLE "RTN","MAGNTLR5",39,0) ; "RTN","MAGNTLR5",40,0) ; Notes "RTN","MAGNTLR5",41,0) ; ===== "RTN","MAGNTLR5",42,0) ; Temporary global nodes ^TMP("MAGNTLR5",$J) is used by this procedure. "RTN","MAGNTLR5",43,0) ; "RTN","MAGNTLR5",44,0) TIUTLST(MAGRY) ; RPC [MAG3 TELEREADER TIU TITLES LST] "RTN","MAGNTLR5",45,0) N $ETRAP,$ESTACK S $ETRAP="D AERRA^MAGGTERR" "RTN","MAGNTLR5",46,0) N TARR,CLASSNUM,FROM "RTN","MAGNTLR5",47,0) K ^TMP("MAGNTLR5",$J) "RTN","MAGNTLR5",48,0) S MAGRY=$NA(^TMP("MAGNTLR5",$J)) "RTN","MAGNTLR5",49,0) ; Get TIU NOTE Consult titles "RTN","MAGNTLR5",50,0) D CNSLCLAS^TIUSRVD(.CLASSNUM) ; IA #2876 "RTN","MAGNTLR5",51,0) D BUILDONE^MAGNTLR5(MAGRY,CLASSNUM) ; append the TIU NOTE Consult titles "RTN","MAGNTLR5",52,0) ; Get TIU NOTE CP titles "RTN","MAGNTLR5",53,0) D CPCLASS^TIUCP(.CLASSNUM) ; IA #3568 "RTN","MAGNTLR5",54,0) D BUILDONE^MAGNTLR5(MAGRY,CLASSNUM) ; append the TIU NOTE CP titles "RTN","MAGNTLR5",55,0) Q "RTN","MAGNTLR5",56,0) ; "RTN","MAGNTLR5",57,0) BUILDONE(MAGARR,CLASSNUM) ; Get all TIU NOTE TITLES per a TIU CLASS "RTN","MAGNTLR5",58,0) ; MAGARR = The name of the result array "RTN","MAGNTLR5",59,0) ; MAGARR(0)= current number of records in MAGARR "RTN","MAGNTLR5",60,0) ; MAGARR(n) = TIU NOTE TITLE IEN ^ Name of the Title "RTN","MAGNTLR5",61,0) ; CLASSNUM = TIU CLASS IEN "RTN","MAGNTLR5",62,0) N CNT,TARR,FROM,DONE,I "RTN","MAGNTLR5",63,0) S FROM="" "RTN","MAGNTLR5",64,0) S DONE=0 "RTN","MAGNTLR5",65,0) S CNT=$P($G(@MAGARR@(0),0),"^",2) "RTN","MAGNTLR5",66,0) F Q:DONE D "RTN","MAGNTLR5",67,0) . K TARR "RTN","MAGNTLR5",68,0) . D LONGLIST^TIUSRVD(.TARR,CLASSNUM,FROM,1) ; IA #2876 "RTN","MAGNTLR5",69,0) . ; TARR(n)="647^OPHTHALMOLOGY " "RTN","MAGNTLR5",70,0) . I '$D(TARR) S DONE=1 Q ; No more titles "RTN","MAGNTLR5",71,0) . S I=0 "RTN","MAGNTLR5",72,0) . F S I=$O(TARR(I)) Q:I="" D "RTN","MAGNTLR5",73,0) . . S CNT=CNT+1 "RTN","MAGNTLR5",74,0) . . S @MAGARR@(CNT)=TARR(I) "RTN","MAGNTLR5",75,0) . . Q "RTN","MAGNTLR5",76,0) . S FROM=$P(@MAGARR@(CNT),U,2) "RTN","MAGNTLR5",77,0) . Q "RTN","MAGNTLR5",78,0) S @MAGARR@(0)=1_"^"_CNT "RTN","MAGNTLR5",79,0) Q "RTN","MAGNTLR6") 0^10^B14484847 "RTN","MAGNTLR6",1,0) MAGNTLR6 ;WOIFO/NST - TeleReader Configuration ; 23 Apr 2012 2:30 PM "RTN","MAGNTLR6",2,0) ;;3.0;IMAGING;**127**;Mar 19, 2002;Build 4231;Apr 01, 2013 "RTN","MAGNTLR6",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGNTLR6",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGNTLR6",5,0) ;; | Property of the US Government. | "RTN","MAGNTLR6",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGNTLR6",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGNTLR6",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGNTLR6",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGNTLR6",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGNTLR6",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGNTLR6",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGNTLR6",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGNTLR6",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGNTLR6",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGNTLR6",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGNTLR6",17,0) ;; "RTN","MAGNTLR6",18,0) Q "RTN","MAGNTLR6",19,0) ; "RTN","MAGNTLR6",20,0) ;***** Add/Update/Delete a service in TELEREADER ACQUISITION SERVICE file (#2006.5841) "RTN","MAGNTLR6",21,0) ; RPC: MAG3 TELEREADER ACQ SRVC SETUP "RTN","MAGNTLR6",22,0) ; "RTN","MAGNTLR6",23,0) ; Input Parameters "RTN","MAGNTLR6",24,0) ; ================ "RTN","MAGNTLR6",25,0) ; Delete action: "RTN","MAGNTLR6",26,0) ; MAGPARAM("ACTION") = "DELETE" "RTN","MAGNTLR6",27,0) ; MAGPARAM("IEN") = IEN of the record that will be deleted "RTN","MAGNTLR6",28,0) ; Add or Update action: "RTN","MAGNTLR6",29,0) ; MAGPARAM("ACTION") = "ADD" or "UPDATE" "RTN","MAGNTLR6",30,0) ; MAGPARAM("NAME") = A pointer to REQUEST SERVICES file (#123.5) "RTN","MAGNTLR6",31,0) ; MAGPARAM("PROCEDURE") = A pointer to GMRC PROCEDURE file (#123.3) "RTN","MAGNTLR6",32,0) ; MAGPARAM("SPECIALTY INDEX") = A pointer to the SPECIALTY file (#2005.84) "RTN","MAGNTLR6",33,0) ; MAGPARAM("PROCEDURE INDEX") = A pointer to the PROCEDURE/EVENT file (#2005.85) "RTN","MAGNTLR6",34,0) ; MAGPARAM("ACQUISITION SITE") = A pointer to the INSTITUTION file (#4) "RTN","MAGNTLR6",35,0) ; MAGPARAM("UNREAD LIST CREATION TRIGGER") = I/O/F "RTN","MAGNTLR6",36,0) ; MAGPARAM("TIU NOTE FILE") = A pointer to TIU DOCUMENT file (#8925.1) "RTN","MAGNTLR6",37,0) ; "RTN","MAGNTLR6",38,0) ; Return Values "RTN","MAGNTLR6",39,0) ; ============= "RTN","MAGNTLR6",40,0) ; if error MAGRY = "0^Error" "RTN","MAGNTLR6",41,0) ; if success MAGRY = "1^IEN" - IEN of the record that is updated "RTN","MAGNTLR6",42,0) ; or IEN of the added record "RTN","MAGNTLR6",43,0) ; "RTN","MAGNTLR6",44,0) UASRVC(MAGRY,MAGPARAM) ;RPC [MAG3 TELEREADER ACQ SRVC SETUP] "RTN","MAGNTLR6",45,0) ; "RTN","MAGNTLR6",46,0) N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR" "RTN","MAGNTLR6",47,0) ; "RTN","MAGNTLR6",48,0) N MAGNFDA,MAGNIEN,MAGNXE,IENS,MAGRESA "RTN","MAGNTLR6",49,0) N DA,DIK "RTN","MAGNTLR6",50,0) ; "RTN","MAGNTLR6",51,0) ;^MAG(2006.5841,D0,0)=1=NAME, 2=PROCEDURE, 3=SPECIALTY INDEX, 4=PROCEDURE INDEX, "RTN","MAGNTLR6",52,0) ; 5=ACQUISITION SITE, 6=UNREAD LIST CREATION TRIGGER, 7=TIU NOTE FILE "RTN","MAGNTLR6",53,0) ; "RTN","MAGNTLR6",54,0) I MAGPARAM("ACTION")="DELETE" D Q ; Delete an entry IEN and exit "RTN","MAGNTLR6",55,0) . S DIK="^MAG(2006.5841," "RTN","MAGNTLR6",56,0) . S DA=MAGPARAM("IEN") "RTN","MAGNTLR6",57,0) . D ^DIK "RTN","MAGNTLR6",58,0) . S MAGRY=1 "RTN","MAGNTLR6",59,0) . Q "RTN","MAGNTLR6",60,0) ; "RTN","MAGNTLR6",61,0) S MAGRY="" "RTN","MAGNTLR6",62,0) I MAGPARAM("ACTION")="ADD" D Q:MAGRY'="" ; Quit if a (Service, Procedure) pair already exists "RTN","MAGNTLR6",63,0) . I $$FINDSRVC^MAGNTLR6(MAGPARAM("NAME"),MAGPARAM("PROCEDURE")) S MAGRY="0^(Service, Procedure) pair already exists." Q "RTN","MAGNTLR6",64,0) . S IENS="+1," "RTN","MAGNTLR6",65,0) . Q "RTN","MAGNTLR6",66,0) E S IENS=MAGPARAM("IEN")_",",MAGNIEN(1)=MAGPARAM("IEN") "RTN","MAGNTLR6",67,0) ; "RTN","MAGNTLR6",68,0) ; A new record is created in two steps because of "AC" cross-reference definition for PROCEDURE field (#1). "RTN","MAGNTLR6",69,0) ; First create a record with empty procedure, then update the record if the procedure is not blank. "RTN","MAGNTLR6",70,0) S MAGNFDA(2006.5841,IENS,.01)=MAGPARAM("NAME") "RTN","MAGNTLR6",71,0) S:MAGPARAM("ACTION")'="ADD" MAGNFDA(2006.5841,IENS,1)=MAGPARAM("PROCEDURE") "RTN","MAGNTLR6",72,0) S MAGNFDA(2006.5841,IENS,2)=MAGPARAM("SPECIALTY INDEX") "RTN","MAGNTLR6",73,0) S MAGNFDA(2006.5841,IENS,3)=MAGPARAM("PROCEDURE INDEX") "RTN","MAGNTLR6",74,0) S MAGNFDA(2006.5841,IENS,4)=MAGPARAM("ACQUISITION SITE") "RTN","MAGNTLR6",75,0) S MAGNFDA(2006.5841,IENS,5)=MAGPARAM("UNREAD LIST CREATION TRIGGER") "RTN","MAGNTLR6",76,0) S MAGNFDA(2006.5841,IENS,6)=MAGPARAM("TIU NOTE FILE") "RTN","MAGNTLR6",77,0) ; "RTN","MAGNTLR6",78,0) D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE") "RTN","MAGNTLR6",79,0) ; "RTN","MAGNTLR6",80,0) I $D(MAGNXE("DIERR","E")) D Q "RTN","MAGNTLR6",81,0) . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE") "RTN","MAGNTLR6",82,0) . S MAGRY="0^"_MAGRESA(1) "RTN","MAGNTLR6",83,0) . Q "RTN","MAGNTLR6",84,0) ; "RTN","MAGNTLR6",85,0) I (MAGPARAM("ACTION")'="ADD")!(MAGPARAM("PROCEDURE")="") S MAGRY="1^"_MAGNIEN(1) Q ; Edit is done or procedure is blank "RTN","MAGNTLR6",86,0) ; "RTN","MAGNTLR6",87,0) ; Update procedure if it not blank "RTN","MAGNTLR6",88,0) K MAGNFDA "RTN","MAGNTLR6",89,0) S IENS=MAGNIEN(1)_"," "RTN","MAGNTLR6",90,0) S MAGNFDA(2006.5841,IENS,1)=MAGPARAM("PROCEDURE") "RTN","MAGNTLR6",91,0) D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE") "RTN","MAGNTLR6",92,0) ; "RTN","MAGNTLR6",93,0) I $D(MAGNXE("DIERR","E")) D Q "RTN","MAGNTLR6",94,0) . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE") "RTN","MAGNTLR6",95,0) . S MAGRY="0^"_MAGRESA(1) "RTN","MAGNTLR6",96,0) . Q "RTN","MAGNTLR6",97,0) S MAGRY="1^"_MAGNIEN(1) "RTN","MAGNTLR6",98,0) Q "RTN","MAGNTLR6",99,0) ; "RTN","MAGNTLR6",100,0) ;+++++ Finds if a (Service, Procedure) pair is defined in "RTN","MAGNTLR6",101,0) ; TELEREADER ACQUISITION SERVICE file (#2006.5841) "RTN","MAGNTLR6",102,0) ; "RTN","MAGNTLR6",103,0) ; Input Parameters "RTN","MAGNTLR6",104,0) ; ================ "RTN","MAGNTLR6",105,0) ; TOSERV = A pointer to REQUEST SERVICES file (#123.5) "RTN","MAGNTLR6",106,0) ; PROC = A pointer to GMRC PROCEDURE file (#123.3) "RTN","MAGNTLR6",107,0) ; "RTN","MAGNTLR6",108,0) ; Return Values "RTN","MAGNTLR6",109,0) ; ============= "RTN","MAGNTLR6",110,0) ; 1 if a pair (Service, Procedure) is defined in "RTN","MAGNTLR6",111,0) ; TELEREADER ACQUISITION SERVICE file (#2006.5841) "RTN","MAGNTLR6",112,0) ; 0 Otherwise "RTN","MAGNTLR6",113,0) ; "RTN","MAGNTLR6",114,0) FINDSRVC(TOSERV,PROC) ; Is (Service, Procedure) pair defined "RTN","MAGNTLR6",115,0) N IEN "RTN","MAGNTLR6",116,0) S TOSERV=+$G(TOSERV) "RTN","MAGNTLR6",117,0) S PROC=+$G(PROC) "RTN","MAGNTLR6",118,0) S IEN=$O(^MAG(2006.5841,"AC",TOSERV,PROC,"")) "RTN","MAGNTLR6",119,0) Q IEN>0 "RTN","MAGNTLRS") 0^11^B146515363 "RTN","MAGNTLRS",1,0) MAGNTLRS ;WOIFO/NST - TeleReader Configuration ; 23 Apr 2012 2:30 PM "RTN","MAGNTLRS",2,0) ;;3.0;IMAGING;**114,127**;Mar 19, 2002;Build 4231;Apr 01, 2013 "RTN","MAGNTLRS",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGNTLRS",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGNTLRS",5,0) ;; | Property of the US Government. | "RTN","MAGNTLRS",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGNTLRS",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGNTLRS",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGNTLRS",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGNTLRS",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGNTLRS",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGNTLRS",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGNTLRS",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGNTLRS",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGNTLRS",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGNTLRS",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGNTLRS",17,0) ;; "RTN","MAGNTLRS",18,0) Q "RTN","MAGNTLRS",19,0) ; "RTN","MAGNTLRS",20,0) ;***** Add/Update/Delete a service in DICOM HEALTHCARE PROVIDER SERVICE file (#2006.5831) "RTN","MAGNTLRS",21,0) ; RPC: MAG3 TELEREADER PDR SRVC SETUP "RTN","MAGNTLRS",22,0) ; "RTN","MAGNTLRS",23,0) ; Input Parameters "RTN","MAGNTLRS",24,0) ; ================ "RTN","MAGNTLRS",25,0) ; Delete action: "RTN","MAGNTLRS",26,0) ; MAGPARAM("ACTION") = "DELETE" "RTN","MAGNTLRS",27,0) ; MAGPARAM("IEN") = IEN of the record that will be deleted "RTN","MAGNTLRS",28,0) ; Add or Update action: "RTN","MAGNTLRS",29,0) ; MAGPARAM("ACTION") = "ADD" or "UPDATE" "RTN","MAGNTLRS",30,0) ; MAGPARAM("REQUESTED SERVICE") = A pointer to the "Request Services" file (#123.5) "RTN","MAGNTLRS",31,0) ; MAGPARAM("SERVICE GROUP") = A pointer to the SPECIALTY file (#2005.84) "RTN","MAGNTLRS",32,0) ; MAGPARAM("SERVICE DIVISION") = A pointer to the INSTITUTION file (#4) "RTN","MAGNTLRS",33,0) ; MAGPARAM("CLINIC") = "^" delimited string with clinics IENS in file (#44) "RTN","MAGNTLRS",34,0) ; "RTN","MAGNTLRS",35,0) ; Return Values "RTN","MAGNTLRS",36,0) ; ============= "RTN","MAGNTLRS",37,0) ; if error MAGRY = "0^Error" "RTN","MAGNTLRS",38,0) ; if success MAGRY = "1^IEN" - IEN of the record that is updated "RTN","MAGNTLRS",39,0) ; or IEN of the added record "RTN","MAGNTLRS",40,0) ; "RTN","MAGNTLRS",41,0) UPSRVC(MAGRY,MAGPARAM) ;RPC [MAG3 TELEREADER PDR SRVC SETUP] "RTN","MAGNTLRS",42,0) ; "RTN","MAGNTLRS",43,0) N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR" "RTN","MAGNTLRS",44,0) ; "RTN","MAGNTLRS",45,0) N X,MAGNFDA,MAGNIEN,MAGNXE,IENS,IEN,MAGRESA "RTN","MAGNTLRS",46,0) N DA,DIK "RTN","MAGNTLRS",47,0) ; "RTN","MAGNTLRS",48,0) ;^MAG(2006.5831,D0,0)=1=REQUESTED SERVICE, 2=SERVICE GROUP, 3=SERVICE DIVISION "RTN","MAGNTLRS",49,0) ; "RTN","MAGNTLRS",50,0) I MAGPARAM("ACTION")="DELETE" D Q ; Delete an entry IEN and exit "RTN","MAGNTLRS",51,0) . S DIK="^MAG(2006.5831," "RTN","MAGNTLRS",52,0) . S DA=MAGPARAM("IEN") "RTN","MAGNTLRS",53,0) . D ^DIK "RTN","MAGNTLRS",54,0) . S MAGRY=1 "RTN","MAGNTLRS",55,0) . Q "RTN","MAGNTLRS",56,0) ; "RTN","MAGNTLRS",57,0) S MAGRY="" "RTN","MAGNTLRS",58,0) I MAGPARAM("ACTION")="ADD" D Q:MAGRY'="" ; Quit if a service already exists "RTN","MAGNTLRS",59,0) . D FIND^DIC(2006.5831,"","@;IX","PQX",MAGPARAM("REQUESTED SERVICE"),"1","","","","X") "RTN","MAGNTLRS",60,0) . I $D(X("DILIST","1",0)) S MAGRY="0^Service already exists" "RTN","MAGNTLRS",61,0) . S IENS="+1," "RTN","MAGNTLRS",62,0) . S MAGNIEN(1)=MAGPARAM("REQUESTED SERVICE") ; if you add a new item using P^DI the new IEN will be value of field "NAME" (#.01) "RTN","MAGNTLRS",63,0) . Q "RTN","MAGNTLRS",64,0) E S IENS=MAGPARAM("IEN")_",",MAGNIEN(1)=MAGPARAM("IEN") "RTN","MAGNTLRS",65,0) ; "RTN","MAGNTLRS",66,0) S MAGNFDA(2006.5831,IENS,.01)=MAGPARAM("REQUESTED SERVICE") "RTN","MAGNTLRS",67,0) S MAGNFDA(2006.5831,IENS,2)=MAGPARAM("SERVICE GROUP") "RTN","MAGNTLRS",68,0) S MAGNFDA(2006.5831,IENS,3)=MAGPARAM("SERVICE DIVISION") "RTN","MAGNTLRS",69,0) ; "RTN","MAGNTLRS",70,0) D UPDATE^DIE("SK","MAGNFDA","MAGNIEN","MAGNXE") "RTN","MAGNTLRS",71,0) ; "RTN","MAGNTLRS",72,0) I $D(MAGNXE("DIERR","E")) D Q "RTN","MAGNTLRS",73,0) . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE") "RTN","MAGNTLRS",74,0) . S MAGRY="0^"_MAGRESA(1) "RTN","MAGNTLRS",75,0) . Q "RTN","MAGNTLRS",76,0) ; "RTN","MAGNTLRS",77,0) I $D(MAGPARAM("CLINIC")) I '$$UCLINIC^MAGNTLRS(.MAGRY,MAGPARAM("CLINIC"),MAGNIEN(1)) Q "RTN","MAGNTLRS",78,0) ; "RTN","MAGNTLRS",79,0) S MAGRY="1^"_MAGNIEN(1) "RTN","MAGNTLRS",80,0) Q "RTN","MAGNTLRS",81,0) ; ####################### "RTN","MAGNTLRS",82,0) ; UCLINIC - Update Clinic multiple field in file #2006.5831 "RTN","MAGNTLRS",83,0) ; "RTN","MAGNTLRS",84,0) ; Returns 0 if failed "RTN","MAGNTLRS",85,0) ; 1 success "RTN","MAGNTLRS",86,0) ; Input parameters "RTN","MAGNTLRS",87,0) ; CLINS = "^" delimited string with clinics IENS "RTN","MAGNTLRS",88,0) ; IEN = IEN in file #2006.5831 "RTN","MAGNTLRS",89,0) ; "RTN","MAGNTLRS",90,0) ; Output parameters "RTN","MAGNTLRS",91,0) ; RES = "0^Error" "RTN","MAGNTLRS",92,0) ; "RTN","MAGNTLRS",93,0) UCLINIC(RES,CLINS,IEN) ; Update Clinic field in file #2006.58314 "RTN","MAGNTLRS",94,0) N CLIN,CLINA,OUT,MSG,I "RTN","MAGNTLRS",95,0) N DA,DIK "RTN","MAGNTLRS",96,0) N MAGNFDA,MAGNXE,MAGNIEN "RTN","MAGNTLRS",97,0) S RES="" "RTN","MAGNTLRS",98,0) D LIST^DIC(2006.58314,","_IEN_",","@;.01I","",,,,,,,"OUT","MSG") "RTN","MAGNTLRS",99,0) I $D(MSG("DIERR","E")) S RES="0^Error updating CLINIC field" Q 0 "RTN","MAGNTLRS",100,0) ; "RTN","MAGNTLRS",101,0) S DA(1)=IEN ; set the variables so we can perform deletion of multiple if needed "RTN","MAGNTLRS",102,0) S DIK="^MAG(2006.5831,"_IEN_",1," "RTN","MAGNTLRS",103,0) ; "RTN","MAGNTLRS",104,0) F I=1:1 S CLIN=$P(CLINS,"^",I) Q:CLIN="" S CLINA(CLIN)="" "RTN","MAGNTLRS",105,0) ; "RTN","MAGNTLRS",106,0) ; delete multiple if they are not present in CLINA (CLINS) "RTN","MAGNTLRS",107,0) S I=0 "RTN","MAGNTLRS",108,0) F S I=$O(OUT("DILIST","ID",I)) Q:'I D "RTN","MAGNTLRS",109,0) . S CLIN=OUT("DILIST","ID",I,".01") "RTN","MAGNTLRS",110,0) . I $D(CLINA(CLIN)) K CLINA(CLIN) Q ; The Clin ID exists in multiple. Delete from CLINA and continue "RTN","MAGNTLRS",111,0) . S DA=OUT("DILIST","2",I) "RTN","MAGNTLRS",112,0) . D ^DIK "RTN","MAGNTLRS",113,0) . Q "RTN","MAGNTLRS",114,0) ; "RTN","MAGNTLRS",115,0) ; insert the new multiples "RTN","MAGNTLRS",116,0) S CLIN="" "RTN","MAGNTLRS",117,0) F S CLIN=$O(CLINA(CLIN)) Q:CLIN="" Q:RES'="" D "RTN","MAGNTLRS",118,0) . K MAGNFDA,MAGNXE,MAGNIEN "RTN","MAGNTLRS",119,0) . S MAGNFDA(2006.58314,"+1,"_IEN_",",.01)=CLIN "RTN","MAGNTLRS",120,0) . D UPDATE^DIE("","MAGNFDA","","MAGNXE") "RTN","MAGNTLRS",121,0) . I $D(MAGNXE("DIERR","E")) S RES="0^Error inserting CLINIC field " Q "RTN","MAGNTLRS",122,0) . Q "RTN","MAGNTLRS",123,0) Q $S(RES="":1,1:0) ; return "RTN","MAGNTLRS",124,0) ; "RTN","MAGNTLRS",125,0) ;***** Add/Update/Delete a site in TELEREADER ACQUISITION SITE file (#2006.5842) "RTN","MAGNTLRS",126,0) ; RPC: MAG3 TELEREADER SITE SETUP "RTN","MAGNTLRS",127,0) ; "RTN","MAGNTLRS",128,0) ; Input Parameters "RTN","MAGNTLRS",129,0) ; ================ "RTN","MAGNTLRS",130,0) ; Delete action: "RTN","MAGNTLRS",131,0) ; MAGPARAM("ACTION") = "DELETE" "RTN","MAGNTLRS",132,0) ; MAGPARAM("IEN") = IEN of the record that will be deleted "RTN","MAGNTLRS",133,0) ; Add or Update action: "RTN","MAGNTLRS",134,0) ; MAGPARAM("ACTION") = "ADD" or "UPDATE" "RTN","MAGNTLRS",135,0) ; MAGPARAM("NAME") = A pointer to the INSTITUTION file (#4) "RTN","MAGNTLRS",136,0) ; MAGPARAM("PRIMARY SITE") = A pointer to the INSTITUTION file (#4) "RTN","MAGNTLRS",137,0) ; MAGPARAM("STATUS") = 0 or 1 (Active or Inactive) "RTN","MAGNTLRS",138,0) ; MAGPARAM("LOCK TIMEOUT IN MINUTES") = value of field #3 of file (#2006.5842) "RTN","MAGNTLRS",139,0) ; "RTN","MAGNTLRS",140,0) ; Return Values "RTN","MAGNTLRS",141,0) ; ============= "RTN","MAGNTLRS",142,0) ; if error MAGRY = "0^Error" "RTN","MAGNTLRS",143,0) ; if success MAGRY = "1^IEN" - IEN of the record that is updated "RTN","MAGNTLRS",144,0) ; or IEN of the added record "RTN","MAGNTLRS",145,0) ; "RTN","MAGNTLRS",146,0) USITE(MAGRY,MAGPARAM) ;RPC [MAG3 TELEREADER SITE SETUP] "RTN","MAGNTLRS",147,0) ; "RTN","MAGNTLRS",148,0) N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR" "RTN","MAGNTLRS",149,0) ; "RTN","MAGNTLRS",150,0) N X,MAGNFDA,MAGNIEN,MAGNXE,IENS,MAGRESA "RTN","MAGNTLRS",151,0) N DA,DIK "RTN","MAGNTLRS",152,0) ; "RTN","MAGNTLRS",153,0) ;^MAG(2006.5842,D0,0)=1=NAME,2=PRIMARY SITE,3=STATUS,4=LOCK TIMEOUT IN MINUTES "RTN","MAGNTLRS",154,0) ; "RTN","MAGNTLRS",155,0) I MAGPARAM("ACTION")="DELETE" D Q ; Delete an entry IEN and exit "RTN","MAGNTLRS",156,0) . S DIK="^MAG(2006.5842," "RTN","MAGNTLRS",157,0) . S DA=MAGPARAM("IEN") "RTN","MAGNTLRS",158,0) . D ^DIK "RTN","MAGNTLRS",159,0) . S MAGRY=1 "RTN","MAGNTLRS",160,0) . Q "RTN","MAGNTLRS",161,0) ; "RTN","MAGNTLRS",162,0) S MAGRY="" "RTN","MAGNTLRS",163,0) I MAGPARAM("ACTION")="ADD" D Q:MAGRY'="" ; Quit if a record already exists "RTN","MAGNTLRS",164,0) . D FIND^DIC(2006.5842,"","@;IX","PQX",MAGPARAM("NAME"),"1","B","","","X") "RTN","MAGNTLRS",165,0) . I $D(X("DILIST","1",0)) S MAGRY="0^Record already exists" "RTN","MAGNTLRS",166,0) . S IENS="+1," "RTN","MAGNTLRS",167,0) E S IENS=MAGPARAM("IEN")_"," "RTN","MAGNTLRS",168,0) ; "RTN","MAGNTLRS",169,0) S MAGNIEN(1)=MAGPARAM("NAME") ; if you add a new item using P^DI the new IEN will be value of field "NAME" (#.01) "RTN","MAGNTLRS",170,0) S MAGNFDA(2006.5842,IENS,.01)=MAGPARAM("NAME") "RTN","MAGNTLRS",171,0) S MAGNFDA(2006.5842,IENS,1)=MAGPARAM("PRIMARY SITE") "RTN","MAGNTLRS",172,0) S MAGNFDA(2006.5842,IENS,2)=MAGPARAM("STATUS") "RTN","MAGNTLRS",173,0) S MAGNFDA(2006.5842,IENS,3)=MAGPARAM("LOCK TIMEOUT IN MINUTES") "RTN","MAGNTLRS",174,0) ; "RTN","MAGNTLRS",175,0) D UPDATE^DIE("SK","MAGNFDA","MAGNIEN","MAGNXE") "RTN","MAGNTLRS",176,0) ; "RTN","MAGNTLRS",177,0) I $D(MAGNXE("DIERR","E")) D Q "RTN","MAGNTLRS",178,0) . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE") "RTN","MAGNTLRS",179,0) . S MAGRY="0^"_MAGRESA(1) "RTN","MAGNTLRS",180,0) . Q "RTN","MAGNTLRS",181,0) E S MAGRY="1^"_MAGNIEN(1) "RTN","MAGNTLRS",182,0) Q "RTN","MAGNTLRS",183,0) ; "RTN","MAGNTLRS",184,0) ;***** Add/Update/Delete TELEREADER READER file (#2006.5843) "RTN","MAGNTLRS",185,0) ; RPC: MAG3 TELEREADER READER SETUP "RTN","MAGNTLRS",186,0) ; "RTN","MAGNTLRS",187,0) ; Input Parameters "RTN","MAGNTLRS",188,0) ; ================ "RTN","MAGNTLRS",189,0) ; Delete actions: "RTN","MAGNTLRS",190,0) ; Reader "RTN","MAGNTLRS",191,0) ; MAGPARAM("ACTION") = "DELETE READER" "RTN","MAGNTLRS",192,0) ; MAGPARAM("READER") = Reader internal value "RTN","MAGNTLRS",193,0) ; Acquisition Site "RTN","MAGNTLRS",194,0) ; MAGPARAM("ACTION") = "DELETE SITE" "RTN","MAGNTLRS",195,0) ; MAGPARAM("READER") = Reader internal value "RTN","MAGNTLRS",196,0) ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value "RTN","MAGNTLRS",197,0) ; Specialty "RTN","MAGNTLRS",198,0) ; MAGPARAM("ACTION") = "DELETE SPECIALTY" "RTN","MAGNTLRS",199,0) ; MAGPARAM("READER") = Reader internal value "RTN","MAGNTLRS",200,0) ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value "RTN","MAGNTLRS",201,0) ; MAGPARAM("SPECIALTY INDEX") = Specialty Index internal value "RTN","MAGNTLRS",202,0) ; Procedure "RTN","MAGNTLRS",203,0) ; MAGPARAM("ACTION") = "DELETE PROCEDURE" "RTN","MAGNTLRS",204,0) ; MAGPARAM("READER") = Reader internal value "RTN","MAGNTLRS",205,0) ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value "RTN","MAGNTLRS",206,0) ; MAGPARAM("SPECIALTY INDEX") = Specialty Index internal value "RTN","MAGNTLRS",207,0) ; MAGPARAM("PROCEDURE INDEX") = Procedure Index internal value "RTN","MAGNTLRS",208,0) ; Update Status field: "RTN","MAGNTLRS",209,0) ; Acquisition Site "RTN","MAGNTLRS",210,0) ; MAGPARAM("ACTION") = "SET SITE STATUS" "RTN","MAGNTLRS",211,0) ; MAGPARAM("READER") = Reader internal value "RTN","MAGNTLRS",212,0) ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value "RTN","MAGNTLRS",213,0) ; MAGPARAM("ACQUISITION SITE STATUS") = 0 or 1 (Active or Inactive) "RTN","MAGNTLRS",214,0) ; Specialty "RTN","MAGNTLRS",215,0) ; MAGPARAM("ACTION") = "SET SPECIALTY STATUS" "RTN","MAGNTLRS",216,0) ; MAGPARAM("READER") = Reader internal value "RTN","MAGNTLRS",217,0) ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value "RTN","MAGNTLRS",218,0) ; MAGPARAM("SPECIALTY INDEX") = Specialty Index internal value "RTN","MAGNTLRS",219,0) ; MAGPARAM("SPECIALTY INDEX STATUS") = 0 or 1 (Active or Inactive) "RTN","MAGNTLRS",220,0) ; Procedure "RTN","MAGNTLRS",221,0) ; MAGPARAM("ACTION") = "SET PROCEDURE STATUS" "RTN","MAGNTLRS",222,0) ; MAGPARAM("READER") = Reader internal value "RTN","MAGNTLRS",223,0) ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value "RTN","MAGNTLRS",224,0) ; MAGPARAM("SPECIALTY INDEX") = Specialty Index internal value "RTN","MAGNTLRS",225,0) ; MAGPARAM("PROCEDURE INDEX") = Procedure Index internal value "RTN","MAGNTLRS",226,0) ; MAGPARAM("PROCEDURE STATUS") = 0 or 1 (Active or Inactive) "RTN","MAGNTLRS",227,0) ; Add action: "RTN","MAGNTLRS",228,0) ; MAGPARAM("ACTION") = "ADD" "RTN","MAGNTLRS",229,0) ; MAGPARAM("READER") = Reader internal value "RTN","MAGNTLRS",230,0) ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value "RTN","MAGNTLRS",231,0) ; MAGPARAM("ACQUISITION SITE STATUS") = Acquisition Site Status "RTN","MAGNTLRS",232,0) ; MAGPARAM("SPECIALTY INDEX") = Specialty Index internal value "RTN","MAGNTLRS",233,0) ; MAGPARAM("SPECIALTY INDEX STATUS") = Specialty Index Status "RTN","MAGNTLRS",234,0) ; MAGPARAM("PROCEDURE INDEX") = Procedure Index internal value "RTN","MAGNTLRS",235,0) ; MAGPARAM("PROCEDURE INDEX STATUS") = 0 or 1 (Active or Inactive) "RTN","MAGNTLRS",236,0) ; MAGPARAM("PROCEDURE INDEX USER PREFERENCE") = 0 or 1 (Active or Inactive) "RTN","MAGNTLRS",237,0) ; "RTN","MAGNTLRS",238,0) ; Return Values "RTN","MAGNTLRS",239,0) ; ============= "RTN","MAGNTLRS",240,0) ; if error MAGRY = "0^Error" "RTN","MAGNTLRS",241,0) ; if success MAGRY = "1^IEN" - IEN of the record that is updated "RTN","MAGNTLRS",242,0) ; or IEN of the added record "RTN","MAGNTLRS",243,0) ; "RTN","MAGNTLRS",244,0) UREADER(MAGRY,MAGPARAM) ;RPC [MAG3 TELEREADER READER SETUP] "RTN","MAGNTLRS",245,0) ; "RTN","MAGNTLRS",246,0) N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR" "RTN","MAGNTLRS",247,0) ; "RTN","MAGNTLRS",248,0) N MAGNFDA,MAGNIEN,MAGNXE,MAGRESA "RTN","MAGNTLRS",249,0) ; "RTN","MAGNTLRS",250,0) I MAGPARAM("ACTION")="DELETE READER" D Q ; Delete an entry and exit "RTN","MAGNTLRS",251,0) . D DREADER(.MAGPARAM) "RTN","MAGNTLRS",252,0) . S MAGRY=1 "RTN","MAGNTLRS",253,0) . Q "RTN","MAGNTLRS",254,0) ; "RTN","MAGNTLRS",255,0) I MAGPARAM("ACTION")="DELETE SITE" D Q ; Delete an entry and exit "RTN","MAGNTLRS",256,0) . D DACQSITE(.MAGPARAM) "RTN","MAGNTLRS",257,0) . S MAGRY=1 "RTN","MAGNTLRS",258,0) . Q "RTN","MAGNTLRS",259,0) ; "RTN","MAGNTLRS",260,0) I MAGPARAM("ACTION")="DELETE SPECIALTY" D Q ; Delete an entry and exit "RTN","MAGNTLRS",261,0) . D DSPECIDX(.MAGPARAM) "RTN","MAGNTLRS",262,0) . S MAGRY=1 "RTN","MAGNTLRS",263,0) . Q "RTN","MAGNTLRS",264,0) ; "RTN","MAGNTLRS",265,0) I MAGPARAM("ACTION")="DELETE PROCEDURE" D Q ; Delete an entry and exit "RTN","MAGNTLRS",266,0) . D DPROCIDX(.MAGPARAM) "RTN","MAGNTLRS",267,0) . S MAGRY=1 "RTN","MAGNTLRS",268,0) . Q "RTN","MAGNTLRS",269,0) ; "RTN","MAGNTLRS",270,0) I MAGPARAM("ACTION")="SET SITE STATUS" D Q ; Exit "RTN","MAGNTLRS",271,0) . S MAGRY=$$USITEST(.MAGPARAM) "RTN","MAGNTLRS",272,0) . Q "RTN","MAGNTLRS",273,0) ; "RTN","MAGNTLRS",274,0) I MAGPARAM("ACTION")="SET SPECIALTY STATUS" D Q ; Exit "RTN","MAGNTLRS",275,0) . S MAGRY=$$USPECST(.MAGPARAM) "RTN","MAGNTLRS",276,0) . Q "RTN","MAGNTLRS",277,0) ; "RTN","MAGNTLRS",278,0) I MAGPARAM("ACTION")="SET PROCEDURE STATUS" D Q ; Exit "RTN","MAGNTLRS",279,0) . S MAGRY=$$UPROCST(.MAGPARAM) "RTN","MAGNTLRS",280,0) . Q "RTN","MAGNTLRS",281,0) ; "RTN","MAGNTLRS",282,0) ; Add "RTN","MAGNTLRS",283,0) S MAGNFDA(2006.5843,"?+1,",.01)=MAGPARAM("READER") "RTN","MAGNTLRS",284,0) S MAGNFDA(2006.58431,"?+2,?+1,",.01)=MAGPARAM("ACQUISITION SITE") "RTN","MAGNTLRS",285,0) S MAGNFDA(2006.58431,"?+2,?+1,",.5)=MAGPARAM("ACQUISITION SITE STATUS") "RTN","MAGNTLRS",286,0) S MAGNFDA(2006.584311,"?+3,?+2,?+1,",.01)=MAGPARAM("SPECIALTY INDEX") "RTN","MAGNTLRS",287,0) S MAGNFDA(2006.584311,"?+3,?+2,?+1,",.5)=MAGPARAM("SPECIALTY INDEX STATUS") "RTN","MAGNTLRS",288,0) S MAGNFDA(2006.5843111,"?+4,?+3,?+2,?+1,",.01)=MAGPARAM("PROCEDURE INDEX") "RTN","MAGNTLRS",289,0) S MAGNFDA(2006.5843111,"?+4,?+3,?+2,?+1,",.5)=MAGPARAM("PROCEDURE INDEX STATUS") "RTN","MAGNTLRS",290,0) S MAGNFDA(2006.5843111,"?+4,?+3,?+2,?+1,",1)=MAGPARAM("PROCEDURE INDEX USER PREFERENCE") "RTN","MAGNTLRS",291,0) ; "RTN","MAGNTLRS",292,0) D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE") "RTN","MAGNTLRS",293,0) ; "RTN","MAGNTLRS",294,0) I $D(MAGNXE("DIERR","E")) D Q "RTN","MAGNTLRS",295,0) . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE") "RTN","MAGNTLRS",296,0) . S MAGRY="0^"_MAGRESA(1) "RTN","MAGNTLRS",297,0) . Q "RTN","MAGNTLRS",298,0) E S MAGRY="1^OK" "RTN","MAGNTLRS",299,0) Q "RTN","MAGNTLRS",300,0) ; "RTN","MAGNTLRS",301,0) DREADER(MAGPARAM) ; Delete a reader "RTN","MAGNTLRS",302,0) N MAGD0,DA,DIK "RTN","MAGNTLRS",303,0) S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),"")) "RTN","MAGNTLRS",304,0) S DA=MAGD0 "RTN","MAGNTLRS",305,0) S DIK="^MAG(2006.5843," "RTN","MAGNTLRS",306,0) D ^DIK "RTN","MAGNTLRS",307,0) Q "RTN","MAGNTLRS",308,0) ; "RTN","MAGNTLRS",309,0) DACQSITE(MAGPARAM) ; Delete acquisition site "RTN","MAGNTLRS",310,0) N MAGD0,MAGD1,DA,DIK "RTN","MAGNTLRS",311,0) S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),"")) "RTN","MAGNTLRS",312,0) S MAGD1=$O(^MAG(2006.5843,MAGD0,1,"B",MAGPARAM("ACQUISITION SITE"),"")) "RTN","MAGNTLRS",313,0) S DA=MAGD1 "RTN","MAGNTLRS",314,0) S DA(1)=MAGD0 "RTN","MAGNTLRS",315,0) S DIK="^MAG(2006.5843,"_MAGD0_",1," "RTN","MAGNTLRS",316,0) D ^DIK "RTN","MAGNTLRS",317,0) I $O(^MAG(2006.5843,MAGD0,1,"B",""))="" D DREADER(.MAGPARAM) Q ; no more sites "RTN","MAGNTLRS",318,0) Q "RTN","MAGNTLRS",319,0) ; "RTN","MAGNTLRS",320,0) DSPECIDX(MAGPARAM) ; Delete specialty "RTN","MAGNTLRS",321,0) N MAGD0,MAGD1,MAGD2,DA,DIK "RTN","MAGNTLRS",322,0) S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),"")) "RTN","MAGNTLRS",323,0) S MAGD1=$O(^MAG(2006.5843,MAGD0,1,"B",MAGPARAM("ACQUISITION SITE"),"")) "RTN","MAGNTLRS",324,0) S MAGD2=$O(^MAG(2006.5843,MAGD0,1,MAGD1,1,"B",MAGPARAM("SPECIALTY INDEX"),"")) "RTN","MAGNTLRS",325,0) S DA=MAGD2 "RTN","MAGNTLRS",326,0) S DA(1)=MAGD1 "RTN","MAGNTLRS",327,0) S DA(2)=MAGD0 "RTN","MAGNTLRS",328,0) S DIK="^MAG(2006.5843,"_MAGD0_",1,"_MAGD1_",1," "RTN","MAGNTLRS",329,0) D ^DIK "RTN","MAGNTLRS",330,0) I $O(^MAG(2006.5843,MAGD0,1,MAGD1,1,"B",""))="" D DACQSITE(.MAGPARAM) Q ; no more specialties "RTN","MAGNTLRS",331,0) Q "RTN","MAGNTLRS",332,0) ; "RTN","MAGNTLRS",333,0) DPROCIDX(MAGPARAM) ; Delete Procedure index from file #2006.5843 "RTN","MAGNTLRS",334,0) N MAGD0,MAGD1,MAGD2,MAGD3,DA,DIK "RTN","MAGNTLRS",335,0) S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),"")) "RTN","MAGNTLRS",336,0) S MAGD1=$O(^MAG(2006.5843,MAGD0,1,"B",MAGPARAM("ACQUISITION SITE"),"")) "RTN","MAGNTLRS",337,0) S MAGD2=$O(^MAG(2006.5843,MAGD0,1,MAGD1,1,"B",MAGPARAM("SPECIALTY INDEX"),"")) "RTN","MAGNTLRS",338,0) S MAGD3=$O(^MAG(2006.5843,MAGD0,1,MAGD1,1,MAGD2,1,"B",MAGPARAM("PROCEDURE INDEX"),"")) "RTN","MAGNTLRS",339,0) S DA=MAGD3 "RTN","MAGNTLRS",340,0) S DA(1)=MAGD2 "RTN","MAGNTLRS",341,0) S DA(2)=MAGD1 "RTN","MAGNTLRS",342,0) S DA(3)=MAGD0 "RTN","MAGNTLRS",343,0) S DIK="^MAG(2006.5843,"_MAGD0_",1,"_MAGD1_",1,"_MAGD2_",1," "RTN","MAGNTLRS",344,0) D ^DIK "RTN","MAGNTLRS",345,0) I $O(^MAG(2006.5843,MAGD0,1,MAGD1,1,MAGD2,1,"B",""))="" D DSPECIDX(.MAGPARAM) Q ; no more procedures "RTN","MAGNTLRS",346,0) Q "RTN","MAGNTLRS",347,0) ; "RTN","MAGNTLRS",348,0) USITEST(MAGPARAM) ; Update Acquisition Site Status "RTN","MAGNTLRS",349,0) N MAGNFDA,MAGNIEN,MAGNXE,MAGRESA "RTN","MAGNTLRS",350,0) N MAGD0,MAGD1 "RTN","MAGNTLRS",351,0) S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),"")) "RTN","MAGNTLRS",352,0) S MAGD1=$O(^MAG(2006.5843,MAGD0,1,"B",MAGPARAM("ACQUISITION SITE"),"")) "RTN","MAGNTLRS",353,0) S MAGNFDA(2006.58431,MAGD1_","_MAGD0_",",.5)=MAGPARAM("ACQUISITION SITE STATUS") "RTN","MAGNTLRS",354,0) D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE") "RTN","MAGNTLRS",355,0) I $D(MAGNXE("DIERR","E")) D Q "0^"_MAGRESA(1) "RTN","MAGNTLRS",356,0) . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE") "RTN","MAGNTLRS",357,0) . Q "RTN","MAGNTLRS",358,0) E Q "1^OK" "RTN","MAGNTLRS",359,0) Q "RTN","MAGNTLRS",360,0) ; "RTN","MAGNTLRS",361,0) USPECST(MAGPARAM) ; Update Specialty Index Status "RTN","MAGNTLRS",362,0) N MAGNFDA,MAGNIEN,MAGNXE,MAGRESA "RTN","MAGNTLRS",363,0) N MAGD0,MAGD1,MAGD2 "RTN","MAGNTLRS",364,0) S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),"")) "RTN","MAGNTLRS",365,0) S MAGD1=$O(^MAG(2006.5843,MAGD0,1,"B",MAGPARAM("ACQUISITION SITE"),"")) "RTN","MAGNTLRS",366,0) S MAGD2=$O(^MAG(2006.5843,MAGD0,1,MAGD1,1,"B",MAGPARAM("SPECIALTY INDEX"),"")) "RTN","MAGNTLRS",367,0) S MAGNFDA(2006.584311,MAGD2_","_MAGD1_","_MAGD0_",",.5)=MAGPARAM("SPECIALTY INDEX STATUS") "RTN","MAGNTLRS",368,0) D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE") "RTN","MAGNTLRS",369,0) I $D(MAGNXE("DIERR","E")) D Q "0^"_MAGRESA(1) "RTN","MAGNTLRS",370,0) . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE") "RTN","MAGNTLRS",371,0) . Q "RTN","MAGNTLRS",372,0) E Q "1^OK" "RTN","MAGNTLRS",373,0) Q "RTN","MAGNTLRS",374,0) ; "RTN","MAGNTLRS",375,0) UPROCST(MAGPARAM) ; Update Procedure Index Status "RTN","MAGNTLRS",376,0) N MAGNFDA,MAGNIEN,MAGNXE,MAGRESA "RTN","MAGNTLRS",377,0) N MAGD0,MAGD1,MAGD2,MAGD3 "RTN","MAGNTLRS",378,0) S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),"")) "RTN","MAGNTLRS",379,0) S MAGD1=$O(^MAG(2006.5843,MAGD0,1,"B",MAGPARAM("ACQUISITION SITE"),"")) "RTN","MAGNTLRS",380,0) S MAGD2=$O(^MAG(2006.5843,MAGD0,1,MAGD1,1,"B",MAGPARAM("SPECIALTY INDEX"),"")) "RTN","MAGNTLRS",381,0) S MAGD3=$O(^MAG(2006.5843,MAGD0,1,MAGD1,1,MAGD2,1,"B",MAGPARAM("PROCEDURE INDEX"),"")) "RTN","MAGNTLRS",382,0) S MAGNFDA(2006.5843111,MAGD3_","_MAGD2_","_MAGD1_","_MAGD0_",",.5)=MAGPARAM("PROCEDURE INDEX STATUS") "RTN","MAGNTLRS",383,0) D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE") "RTN","MAGNTLRS",384,0) I $D(MAGNXE("DIERR","E")) D Q "0^"_MAGRESA(1) "RTN","MAGNTLRS",385,0) . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE") "RTN","MAGNTLRS",386,0) . Q "RTN","MAGNTLRS",387,0) E Q "1^OK" "RTN","MAGNTLRS",388,0) Q "RTN","MAGNTLRS",389,0) ; "RTN","MAGNTLRS",390,0) ;***** Set Time Out for an application "RTN","MAGNTLRS",391,0) ; RPC: MAG3 SET TIMEOUT "RTN","MAGNTLRS",392,0) ; "RTN","MAGNTLRS",393,0) ; Input Parameters "RTN","MAGNTLRS",394,0) ; ================ "RTN","MAGNTLRS",395,0) ; MAGAPP is "DISPLAY", "CAPTURE", "VISTARAD", or "TELEREADER" "RTN","MAGNTLRS",396,0) ; MAGTIME is time out value "RTN","MAGNTLRS",397,0) ; "RTN","MAGNTLRS",398,0) ; Return Values "RTN","MAGNTLRS",399,0) ; ============= "RTN","MAGNTLRS",400,0) ; if error MAGRY = first "^" piece is zero if record is not found or "RTN","MAGNTLRS",401,0) ; updating error "RTN","MAGNTLRS",402,0) ; if success MAGRY = "1^IEN" - IEN of the record that is updated "RTN","MAGNTLRS",403,0) ; "RTN","MAGNTLRS",404,0) TIMEOUT(MAGRY,MAGAPP,MAGTIME) ;RPC [MAG3 SET TIMEOUT] "RTN","MAGNTLRS",405,0) ; Set the timeout for the APP from IMAGING SITE PARAMETERS File "RTN","MAGNTLRS",406,0) ; MAGAPP is either 'DISPLAY', 'CAPTURE','VISTARAD', or 'TELEREADER' "RTN","MAGNTLRS",407,0) ; "RTN","MAGNTLRS",408,0) N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR" "RTN","MAGNTLRS",409,0) ; "RTN","MAGNTLRS",410,0) N MAGNFDA,MAGNIEN,MAGNXE,MAGPLC,IEN,MAGFLD "RTN","MAGNTLRS",411,0) N MAGRESA "RTN","MAGNTLRS",412,0) ; "RTN","MAGNTLRS",413,0) S MAGRY="" "RTN","MAGNTLRS",414,0) S MAGPLC=$$PLACE^MAGBAPI(DUZ(2)) "RTN","MAGNTLRS",415,0) I 'MAGPLC S MAGRY="0^No record found" Q "RTN","MAGNTLRS",416,0) ; "RTN","MAGNTLRS",417,0) S IEN=MAGPLC_"," "RTN","MAGNTLRS",418,0) I MAGAPP="DISPLAY" S MAGFLD=121 "RTN","MAGNTLRS",419,0) I MAGAPP="CAPTURE" S MAGFLD=122 "RTN","MAGNTLRS",420,0) I MAGAPP="VISTARAD" S MAGFLD=123 "RTN","MAGNTLRS",421,0) I MAGAPP="TELEREADER" S MAGFLD=131 "RTN","MAGNTLRS",422,0) ; "RTN","MAGNTLRS",423,0) S MAGNFDA(2006.1,IEN,MAGFLD)=MAGTIME "RTN","MAGNTLRS",424,0) D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE") "RTN","MAGNTLRS",425,0) I $D(MAGNXE("DIERR","E")) D Q "RTN","MAGNTLRS",426,0) . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE") "RTN","MAGNTLRS",427,0) . S MAGRY="0^"_MAGRESA(1) "RTN","MAGNTLRS",428,0) . Q "RTN","MAGNTLRS",429,0) E S MAGRY="1^"_MAGPLC "RTN","MAGNTLRS",430,0) Q "VER") 8.0^22.0 "^DD",2006.5841,2006.5841,1,0) PROCEDURE^P123.3'^GMR(123.3,^0;2^Q "^DD",2006.5841,2006.5841,1,3) Enter a Consult based procedure "^DD",2006.5841,2006.5841,1,21,0) ^^2^2^3100122^ "^DD",2006.5841,2006.5841,1,21,1,0) A specific CONSULT based procedure associated with a given service. "^DD",2006.5841,2006.5841,1,21,2,0) Example: Bone Marrow Biopsy. "^DD",2006.5841,2006.5841,1,"DT") 3100304 **END** **END**