Released RA*5*145 SEQ #130 Extracted from mail message **KIDS**:RA*5.0*145^ **INSTALL NAME** RA*5.0*145 "BLD",10715,0) RA*5.0*145^RADIOLOGY/NUCLEAR MEDICINE^0^3180607^y "BLD",10715,1,0) ^^2^2^3180607^ "BLD",10715,1,1,0) This patch will address the following issue: "BLD",10715,1,2,0) RA18589477FY18 - Multiple errors in error trap. EN1+63^RAO7RO "BLD",10715,4,0) ^9.64PA^^ "BLD",10715,6.3) 5 "BLD",10715,"ABPKG") n "BLD",10715,"KRN",0) ^9.67PA^779.2^20 "BLD",10715,"KRN",.4,0) .4 "BLD",10715,"KRN",.401,0) .401 "BLD",10715,"KRN",.402,0) .402 "BLD",10715,"KRN",.403,0) .403 "BLD",10715,"KRN",.5,0) .5 "BLD",10715,"KRN",.84,0) .84 "BLD",10715,"KRN",3.6,0) 3.6 "BLD",10715,"KRN",3.8,0) 3.8 "BLD",10715,"KRN",9.2,0) 9.2 "BLD",10715,"KRN",9.8,0) 9.8 "BLD",10715,"KRN",9.8,"NM",0) ^9.68A^1^1 "BLD",10715,"KRN",9.8,"NM",1,0) RAO7RO^^0^B39607884 "BLD",10715,"KRN",9.8,"NM","B","RAO7RO",1) "BLD",10715,"KRN",19,0) 19 "BLD",10715,"KRN",19.1,0) 19.1 "BLD",10715,"KRN",101,0) 101 "BLD",10715,"KRN",409.61,0) 409.61 "BLD",10715,"KRN",771,0) 771 "BLD",10715,"KRN",779.2,0) 779.2 "BLD",10715,"KRN",870,0) 870 "BLD",10715,"KRN",8989.51,0) 8989.51 "BLD",10715,"KRN",8989.52,0) 8989.52 "BLD",10715,"KRN",8994,0) 8994 "BLD",10715,"KRN","B",.4,.4) "BLD",10715,"KRN","B",.401,.401) "BLD",10715,"KRN","B",.402,.402) "BLD",10715,"KRN","B",.403,.403) "BLD",10715,"KRN","B",.5,.5) "BLD",10715,"KRN","B",.84,.84) "BLD",10715,"KRN","B",3.6,3.6) "BLD",10715,"KRN","B",3.8,3.8) "BLD",10715,"KRN","B",9.2,9.2) "BLD",10715,"KRN","B",9.8,9.8) "BLD",10715,"KRN","B",19,19) "BLD",10715,"KRN","B",19.1,19.1) "BLD",10715,"KRN","B",101,101) "BLD",10715,"KRN","B",409.61,409.61) "BLD",10715,"KRN","B",771,771) "BLD",10715,"KRN","B",779.2,779.2) "BLD",10715,"KRN","B",870,870) "BLD",10715,"KRN","B",8989.51,8989.51) "BLD",10715,"KRN","B",8989.52,8989.52) "BLD",10715,"KRN","B",8994,8994) "BLD",10715,"QDEF") ^^^^NO^^^^NO^^NO "BLD",10715,"QUES",0) ^9.62^^ "BLD",10715,"REQB",0) ^9.611^1^1 "BLD",10715,"REQB",1,0) RA*5.0*75^1 "BLD",10715,"REQB","B","RA*5.0*75",1) "MBREQ") 0 "PKG",31,-1) 1^1 "PKG",31,0) RADIOLOGY/NUCLEAR MEDICINE^RA^REGISTERS PATIENTS,RECORDS EXAMS,PROFILES,AMIS REPORTS "PKG",31,20,0) ^9.402P^^ "PKG",31,22,0) ^9.49I^1^1 "PKG",31,22,1,0) 5.0^2980317^2980805^1 "PKG",31,22,1,"PAH",1,0) 145^3180607 "PKG",31,22,1,"PAH",1,1,0) ^^2^2^3180607 "PKG",31,22,1,"PAH",1,1,1,0) This patch will address the following issue: "PKG",31,22,1,"PAH",1,1,2,0) RA18589477FY18 - Multiple errors in error trap. EN1+63^RAO7RO "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") 1 "RTN","RAO7RO") 0^1^B39607884^B38944723 "RTN","RAO7RO",1,0) RAO7RO ;HISC/GJC,FPT-Request message from OE/RR. ;9/11/98 11:56 "RTN","RAO7RO",2,0) ;;5.0;Radiology/Nuclear Medicine;**1,2,13,15,75,145**;Mar 16, 1998;Build 5 "RTN","RAO7RO",3,0) ; "RTN","RAO7RO",4,0) ;------------------------- Variable List ------------------------------- "RTN","RAO7RO",5,0) ; RAFLG=flag indicates ORC reached RAHLFS="|" "RTN","RAO7RO",6,0) ; RAMSG=HL7 message passed in RAORD=ORC-1 (Order control) "RTN","RAO7RO",7,0) ; RAPLCHLD=Tracks place holder values for adding entries to sub-files "RTN","RAO7RO",8,0) ; in the Rad/Nuc Med Orders file. "RTN","RAO7RO",9,0) ; RASEG=specific HL7 node X=subscript of HL7 node "RTN","RAO7RO",10,0) ; ---------------------------------------------------------------------- "RTN","RAO7RO",11,0) ; "RTN","RAO7RO",12,0) EN1(RAMSG) ; Pass in the message from OE/RR. Decipher information. "RTN","RAO7RO",13,0) ; new variables for RAO7RO processing "RTN","RAO7RO",14,0) N A,AAH,ARR,CHAR,CNT,DFN,ERR,FLG,GMTSTYP,I,J,L,LEN,MSG,RA,RA0 "RTN","RAO7RO",15,0) N RA7003,RA71,RA713,RA783,RAA,RAB,RAC,RACLIN,RACMCODE,RACMNOR "RTN","RAO7RO",16,0) N RACNT,RACOST,RACPT,RACPTIEN,RAD0,RADATA,RADBS,RADC,RADFN,RADUZ "RTN","RAO7RO",17,0) N RAECH,RAEMSG,RAERR,RAFDA,RAFLG,RAFNAME,RAFNUM,RAHDR,RAHLFS "RTN","RAO7RO",18,0) N RAIEN71,RAIL,RAIMGAB,RAIMGTYI,RAINCR,RAION,RAIT,RALDT,RALINEX,RALOC "RTN","RAO7RO",19,0) N RAMFE,RAMODIEN,RAMSH3,RAMULT,RANEW,RANOW,RANSTAT,RAOBR18,RAOBR19 "RTN","RAO7RO",20,0) N RAOBR30,RAOBR4,RAOBX2,RAOBX3,RAOBX5,RAOIFN,RAORC1,RAORC10,RAORC11 "RTN","RAO7RO",21,0) N RAORC12,RAORC15,RAORC16,RAORC2,RAORC3,RAORC7,RAORC7D,RAORC7P "RTN","RAO7RO",22,0) N RAORD,RAPGE,RAPLCHLD,RAPREG,RAPHYAP,RAPID3,RAPID5,RAPRCTY "RTN","RAO7RO",23,0) N RAPV119,RAPV12,RAPV13,RAREA,RARMBED,RASEG,RASTATUS,RASUB "RTN","RAO7RO",24,0) N RATSTMP,RAVAR,RAWARD,RAWP,RAX,RAXIT,RAXT71,RAY,RAZ,T1,T2,T3 "RTN","RAO7RO",25,0) N VAIP,X,Y,Y1,Y2,Y3,Y4,Y5,Z,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE "RTN","RAO7RO",26,0) S X=^%ZOSF("ERRTN"),@^%ZOSF("TRAP") "RTN","RAO7RO",27,0) S (RAFLG,X)=0,RAPLCHLD=1 "RTN","RAO7RO",28,0) D EN1^RAO7UTL ; setup field seperator data (see var list) "RTN","RAO7RO",29,0) S RALDT=$$NOW^XLFDT() ; setup 'Last Activity Date/Time' "RTN","RAO7RO",30,0) F S X=$O(RAMSG(X)) Q:X'>0 D Q:RAFLG "RTN","RAO7RO",31,0) . S RASEG=$G(RAMSG(X)) Q:$P(RASEG,RAHLFS)'="ORC" ; quit if not ORC "RTN","RAO7RO",32,0) . S RAORD=$P(RASEG,RAHLFS,2),RAFLG=1 "RTN","RAO7RO",33,0) . Q "RTN","RAO7RO",34,0) I RAORD'="NW"&(RAORD'="DC")&(RAORD'="NA")&(RAORD'="DE")&(RAORD'="Z@") D BRKOUT^RAO7UTL1,REJ^RAO7OKS("OC","Missing/Invalid Order Control") Q "RTN","RAO7RO",35,0) I RAORD="NW" D EN1^RAO7RON(.RAMSG) D "RTN","RAO7RO",36,0) .I $G(RAERR) D Q "RTN","RAO7RO",37,0) ..S RAERR1="" I RAERR=35 I $G(RANOW) S RAERR1="Now="_RANOW "RTN","RAO7RO",38,0) ..I RAERR=35 S RAERR1=RAERR1_" Req Entered Dt="_$G(RAORC15) "RTN","RAO7RO",39,0) ..S RAERR=$$EN1^RAO7RO1(RAERR)_" "_$G(RAERR1) K RAERR1 "RTN","RAO7RO",40,0) ..D REJ^RAO7OKS("OC",RAERR) Q "RTN","RAO7RO",41,0) .;if CLINICAL HISTORY was passed from CPRS and it failed the CLINICAL HISTORY data "RTN","RAO7RO",42,0) .;requirements, reject the message "RTN","RAO7RO",43,0) .I $P(RACLIN,U)=1,$P(RACLIN,U,2)'=1 S RAERR=$$EN1^RAO7RO1(15) D REJ^RAO7OKS("OC",RAERR) Q "RTN","RAO7RO",44,0) .K ERR "RTN","RAO7RO",45,0) .; Update 'REQUEST STATUS TIMES' multiple if parameter dictates! "RTN","RAO7RO",46,0) .I "Yy"[RADIV(.119) D "RTN","RAO7RO",47,0) ..; make sure that the activity log place holders differ from the "RTN","RAO7RO",48,0) ..; modifiers place holders "RTN","RAO7RO",49,0) ..S RAPLCHLD=RAPLCHLD+1 "RTN","RAO7RO",50,0) ..S RANEW(75.12,"+"_RAPLCHLD_",+1,",.01)=RALDT "RTN","RAO7RO",51,0) ..S RANEW(75.12,"+"_RAPLCHLD_",+1,",2)=5 "RTN","RAO7RO",52,0) ..S RANEW(75.12,"+"_RAPLCHLD_",+1,",3)=+RAORC10 "RTN","RAO7RO",53,0) ..Q "RTN","RAO7RO",54,0) .D UPDATE^DIE("","RANEW","RAORC3","ERR") S RAORC3=+$G(RAORC3(1)) "RTN","RAO7RO",55,0) .S RAORC3=$G(RAORC3)_"^RA" "RTN","RAO7RO",56,0) .I $D(ERR) S RAERR=$$EN1^RAO7RO1(21) D REJ^RAO7OKS("OC",RAERR) Q "RTN","RAO7RO",57,0) .D WP^DIE(75.1,+RAORC3_",",400,"K","^TMP(""RAWP"",$J)","ERR") "RTN","RAO7RO",58,0) .D ACC^RAO7OKS("OK","","","","") "RTN","RAO7RO",59,0) .; Prt request on im'g loc req prtr; if no im'g loc on the HL7 msg "RTN","RAO7RO",60,0) .; check for prtr on first entry in Im'g Loc file; if no prtr on "RTN","RAO7RO",61,0) .; first entry, don't print request "RTN","RAO7RO",62,0) . S RAO751=$G(^RAO(75.1,+RAORC3,0)) "RTN","RAO7RO",63,0) . D:$P(RAO751,"^",6)=1!($P(RAO751,"^",6)=2) OENO^RAUTL19(+RAORC3) "RTN","RAO7RO",64,0) . K RAO751 ; fire off 'stat' or 'urgent' alert if order qualifies "RTN","RAO7RO",65,0) . ; print the request "RTN","RAO7RO",66,0) . I +RAOBR19(3)>0 S RAION=$P($G(^RA(79.1,+RAOBR19(3),0)),U,16) "RTN","RAO7RO",67,0) . ;I +RAOBR19(3)=0 S RAION=$P($G(^RA(79.1,+$O(^RA(79.1,0)),0)),U,16) "RTN","RAO7RO",68,0) . I +RAOBR19(3)=0 D S:RAION="" RAION=$P($G(^RA(79.1,+$O(^RA(79.1,0)),0)),U,16) "RTN","RAO7RO",69,0) .. S (RALOC,RAION)="" "RTN","RAO7RO",70,0) .. ; Get Imaging Type of Procedure.. "RTN","RAO7RO",71,0) .. S RAIMGTYI=$P(^RAMIS(71,RAOBR4(4),0),U,12) Q:RAIMGTYI="" "RTN","RAO7RO",72,0) .. F S RALOC=$O(^RA(79.1,"BIMG",RAIMGTYI,RALOC)) Q:RALOC="" D Q:RAION]"" "RTN","RAO7RO",73,0) ... ; Find Imaging Location within Imaging Type with Request device.. "RTN","RAO7RO",74,0) ... Q:$P(^RA(79.1,RALOC,0),U,16)="" "RTN","RAO7RO",75,0) ...; p.145 MWA missing "DIV" node causes error added $G() "RTN","RAO7RO",76,0) ... Q:$G(^RA(79.1,RALOC,"DIV"))'=+$$KSP^XUPARAM("INST") "RTN","RAO7RO",77,0) ... S RAION=$P(^RA(79.1,RALOC,0),U,16) "RTN","RAO7RO",78,0) . I RAION]"" D "RTN","RAO7RO",79,0) .. D PSETUP Q:RAION']"" "RTN","RAO7RO",80,0) .. S ZTDTH=$H,ZTRTN="PRHS^RAO7RO",ZTIO=RAION "RTN","RAO7RO",81,0) .. S ZTDESC="Rad/Nuc Med Request print - frontdoor (CPRS)" "RTN","RAO7RO",82,0) .. D ^%ZTLOAD,HOME^%ZIS "RTN","RAO7RO",83,0) .. K ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE "RTN","RAO7RO",84,0) .. Q "RTN","RAO7RO",85,0) . Q "RTN","RAO7RO",86,0) ; "RTN","RAO7RO",87,0) I RAORD="Z@" N RAPUROK D EN2^RAO7PURG(.RAMSG) D ; RAPUROK set in "RTN","RAO7RO",88,0) . ; EN2^RAO7PURG. If RAPUROK=1 send ok msg, else send reject msg "RTN","RAO7RO",89,0) . I $G(RAERR) D REJ^RAO7OKS("ZU","") Q "RTN","RAO7RO",90,0) . D:'RAPUROK REJ^RAO7OKS("ZU","") "RTN","RAO7RO",91,0) . D:RAPUROK ACC^RAO7OKS("ZR","","","","") "RTN","RAO7RO",92,0) . Q "RTN","RAO7RO",93,0) I RAORD="DC" D EN1^RAO7RCH(.RAMSG) D "RTN","RAO7RO",94,0) .I $G(RAERR) S RAERR=$$EN1^RAO7RO1(RAERR) D REJ^RAO7OKS("UD",RAERR) Q "RTN","RAO7RO",95,0) .K ERR D FILE^DIE("K","RANEW","ERR") "RTN","RAO7RO",96,0) .I $D(ERR) S RAERR=$$EN1^RAO7RO1(37) D REJ^RAO7OKS("UD",RAERR) Q "RTN","RAO7RO",97,0) .D OE3^RABUL(+RAORC3) ; rad/nuc med request cancelled bulletin "RTN","RAO7RO",98,0) .I "Yy"[RADIV(.119) D Q:$G(RAERR) "RTN","RAO7RO",99,0) ..N ERR "RTN","RAO7RO",100,0) ..S ERR=$$EN5^RAO7VLD(+RAORC3,1,+RAORC10,"") "RTN","RAO7RO",101,0) ..I +$G(ERR) S RAERR=$$EN1^RAO7RO1(30) D REJ^RAO7OKS("UD",RAERR) Q "RTN","RAO7RO",102,0) ..Q "RTN","RAO7RO",103,0) .D ACC^RAO7OKS("DR","","","","") "RTN","RAO7RO",104,0) .; print out the cancelled request "RTN","RAO7RO",105,0) .S RAIMJLOC=+$P($G(^RAO(75.1,+RAORC3,0)),"^",20) "RTN","RAO7RO",106,0) .I RAIMJLOC>0 S RAION=$P($G(^RA(79.1,RAIMJLOC,0)),U,24) "RTN","RAO7RO",107,0) .I RAIMJLOC=0 S RAION=$P($G(^RA(79.1,+$O(^RA(79.1,0)),0)),U,24) "RTN","RAO7RO",108,0) .I RAION]"" D "RTN","RAO7RO",109,0) ..D PSETUP Q:RAION']"" "RTN","RAO7RO",110,0) ..S RACRHD="" ; set the cancelled request flag "RTN","RAO7RO",111,0) ..S ZTDESC="Rad/Nuc Med Cancelled Request print - frontdoor (CPRS)" "RTN","RAO7RO",112,0) ..S ZTIO=RAION,ZTDTH=$H,ZTRTN="PRHS^RAO7RO",ZTSAVE("RACRHD")="" "RTN","RAO7RO",113,0) ..D ^%ZTLOAD,HOME^%ZIS "RTN","RAO7RO",114,0) ..K RACRHD,RAIMJLOC,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE "RTN","RAO7RO",115,0) ..Q "RTN","RAO7RO",116,0) .Q "RTN","RAO7RO",117,0) ; "RTN","RAO7RO",118,0) ;For an order control of: 'NA', we error if one of these three "RTN","RAO7RO",119,0) ;conditions are true: "RTN","RAO7RO",120,0) ;1) if the ien of the Rad/Nuc Med Order is not valid "RTN","RAO7RO",121,0) ;2) patient file pointer (PID3) evaluates to a different "RTN","RAO7RO",122,0) ; patient name than the PID5 value "RTN","RAO7RO",123,0) ;3) cannot file oerr order ien into file 75.1 "RTN","RAO7RO",124,0) ; "RTN","RAO7RO",125,0) I RAORD="NA" D EN1^RAO7OKR(.RAMSG) I $G(RAERR) D "RTN","RAO7RO",126,0) . N RATXT S RATXT="Error for order control: 'NA'" "RTN","RAO7RO",127,0) . S:RAERR'?1N.N RAERR="error not found in our error table" "RTN","RAO7RO",128,0) . S:RAERR?1N.N RAERR=$$EN1^RAO7RO1(RAERR) "RTN","RAO7RO",129,0) . S:$D(XQY0)#2 RAVAR("XQY0")="" S RAVAR("RAERR")="" "RTN","RAO7RO",130,0) . D ERR^RAO7UTL(RATXT,.RAMSG,.RAVAR) "RTN","RAO7RO",131,0) . Q "RTN","RAO7RO",132,0) ;if order control of 'DE', CPRS files data into their OE/RR Errors file "RTN","RAO7RO",133,0) ;I RAORD="DE" "RTN","RAO7RO",134,0) ;purge DBS specific variables before exiting "RTN","RAO7RO",135,0) ; "RTN","RAO7RO",136,0) PURGE ; kill & quit "RTN","RAO7RO",137,0) D CLEAN^DILF "RTN","RAO7RO",138,0) K ^TMP("RAWP",$J) "RTN","RAO7RO",139,0) Q "RTN","RAO7RO",140,0) PRHS ; print request and/or health summary "RTN","RAO7RO",141,0) U IO D ^RAORD5 ; print the request "RTN","RAO7RO",142,0) S:'$D(RACRHD) GMTSTYP=$P($G(^RAMIS(71,+$G(RAOBR4(4)),0)),U,13) "RTN","RAO7RO",143,0) I +$G(GMTSTYP) D ; don't print Health Summary with cancelled requests "RTN","RAO7RO",144,0) . W:$Y @IOF D ENX^GMTSDVR(RADFN,GMTSTYP) "RTN","RAO7RO",145,0) . Q "RTN","RAO7RO",146,0) W ! D CLOSE^RAUTL "RTN","RAO7RO",147,0) Q "RTN","RAO7RO",148,0) PSETUP ; Define the variables needed to print cancelled and non-cancelled "RTN","RAO7RO",149,0) ; requests from the frontdoor (CPRS). "RTN","RAO7RO",150,0) I RAION'?1N.N S RAION=$O(^%ZIS(1,"B",RAION,0)) Q:RAION']"" "RTN","RAO7RO",151,0) S RAION=$P($G(^%ZIS(1,RAION,0)),"^") Q:RAION']"" "RTN","RAO7RO",152,0) S RAOIFN=+RAORC3,RAPAGE=0,RAX="",RADFN=RAPID3 "RTN","RAO7RO",153,0) N RAFOERR S RAFOERR="" ; flag to indicate entry from frontdoor (CPRS) "RTN","RAO7RO",154,0) F RAI="RADFN","RAOIFN","RAX","RAPGE","RAOBR4(","RAFOERR" S ZTSAVE(RAI)="" "RTN","RAO7RO",155,0) S:$D(RAIL) ZTSAVE("RAIL")="" "RTN","RAO7RO",156,0) Q "VER") 8.0^22.2 "BLD",10715,6) ^130 **END** **END**