OCXDI02E ;SLC/RJS,CLA - OCX PACKAGE DIAGNOSTIC ROUTINES ;SEP 7,1999 at 10:30
;;3.0;ORDER ENTRY/RESULTS REPORTING;**32**;Dec 17,1997
;; ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
;
S ;
;
D DOT^OCXDIAG
;
;
K REMOTE,LOCAL,OPCODE,REF
F LINE=1:1:500 S TEXT=$P($T(DATA+LINE),";",2,999) Q:TEXT I $L(TEXT) D Q:QUIT
.S ^TMP("OCXDIAG",$J,$O(^TMP("OCXDIAG",$J,"A"),-1)+1)=TEXT
;
G ^OCXDI02F
;
Q
;
DATA ;
;
;;R^"860.8:",100,5
;;D^ ; F OCXTERM="SERUM CREATININE","SERUM UREA NITROGEN" D Q:$L(OCXV)
;;R^"860.8:",100,6
;;D^ ; .Q:'$$TERMLKUP(OCXTERM,.OCXTL) ""
;;R^"860.8:",100,7
;;D^ ; .S OCXX=0 F S OCXX=$O(OCXTL(OCXX)) Q:'OCXX D Q:$L(OCXV)
;;R^"860.8:",100,8
;;D^ ; ..S OCXS=0 F S OCXS=$O(OCXSLIST(OCXS)) Q:'OCXS D Q:$L(OCXV)
;;R^"860.8:",100,9
;;D^ ; ...S OCXV=$$OIRES^ORQQLR1(DFN,OCXX,OCXS)
;;R^"860.8:",100,10
;;D^ ; Q OCXV
;;R^"860.8:",100,11
;;D^ ;
;;EOR^
;;KEY^860.8:^DETERMINE IF RENAL LAB RESULTS ARE ABNORMAL HIGH OR LOW
;;R^"860.8:",.01,"E"
;;D^DETERMINE IF RENAL LAB RESULTS ARE ABNORMAL HIGH OR LOW
;;R^"860.8:",.02,"E"
;;D^ABREN
;;R^"860.8:",100,1
;;D^ ;ABREN(DFN) ;
;;R^"860.8:",100,2
;;D^ ; ;
;;R^"860.8:",100,3
;;D^ ; N OCXFLAG,OCXVAL,OCXLIST,OCXTEST,UNAV,OCXTLIST,OCXTERM,OCXSLIST,OCXSPEC
;;R^"860.8:",100,4
;;D^ ; S (OCXLIST,OCXTLIST)="",UNAV="0^<Unavailable>"
;;R^"860.8:",100,5
;;D^ ; S OCXSLIST="" Q:'$$TERMLKUP("SERUM SPECIMEN",.OCXSLIST) UNAV
;;R^"860.8:",100,6
;;D^ ; F OCXTERM="SERUM CREATININE","SERUM UREA NITROGEN" D
;;R^"860.8:",100,7
;;D^ ; .Q:'$$TERMLKUP(OCXTERM,.OCXTLIST)
;;R^"860.8:",100,8
;;D^ ; .S OCXTEST=0 F S OCXTEST=$O(OCXTLIST(OCXTEST)) Q:'OCXTEST D
;;R^"860.8:",100,9
;;D^ ; ..S OCXSPEC=0 F S OCXSPEC=$O(OCXSLIST(OCXSPEC)) Q:'OCXSPEC D
;;R^"860.8:",100,10
;;D^ ; ...S OCXVAL=$$LOCL^ORQQLR1(DFN,OCXTEST,OCXSPEC),OCXFLAG=$P(OCXVAL,U,5)
;;R^"860.8:",100,11
;;D^ ; ...I $L(OCXVAL),((OCXFLAG["H")!(OCXFLAG["L")) D
;;R^"860.8:",100,12
;;D^ ; ....N OCXY S OCXY=""
;;R^"860.8:",100,13
;;D^ ; ....S OCXY=$P(OCXVAL,U,2)_": "_$P(OCXVAL,U,3)_" "_$P(OCXVAL,U,4)
;;R^"860.8:",100,14
;;D^ ; ....S OCXY=OCXY_" "_$S($L(OCXFLAG):"["_OCXFLAG_"]",1:"")
;;R^"860.8:",100,15
;;D^ ; ....S OCXY=OCXY_" "_$$FMTE^XLFDT($P(OCXVAL,U,7),"2P")
;;R^"860.8:",100,16
;;D^ ; ....S:$L(OCXLIST) OCXLIST=OCXLIST_" " S OCXLIST=OCXLIST_OCXY
;;R^"860.8:",100,17
;;D^ ; Q:'$L(OCXLIST) UNAV Q 1_U_OCXLIST
;;R^"860.8:",100,18
;;D^ ; ;
;;EOR^
;;KEY^860.8:^DOES THIS RADIOLOGY PROCEDURE USE A CONTRAST MEDIA
;;R^"860.8:",.01,"E"
;;D^DOES THIS RADIOLOGY PROCEDURE USE A CONTRAST MEDIA
;;R^"860.8:",.02,"E"
;;D^CM
;;R^"860.8:",100,1
;;D^ ;CM(OCXOI) ;
;;R^"860.8:",100,2
;;D^ ; ;
;;R^"860.8:",100,3
;;D^ ; N OCXVAL S OCXVAL=$$CM^ORQQRA(OCXOI) Q:((OCXVAL["B")!(OCXVAL["M")) 1_U_OCXVAL Q 0
;;R^"860.8:",100,4
;;D^ ; ;
;;EOR^
;;KEY^860.8:^IS THIS A CHOLECYSTOGRAM RADIOLOGY PROCEDURE
;;R^"860.8:",.01,"E"
;;D^IS THIS A CHOLECYSTOGRAM RADIOLOGY PROCEDURE
;;R^"860.8:",.02,"E"
;;D^CH
;;R^"860.8:",100,1
;;D^ ;CH(OCXOI) ;
;;R^"860.8:",100,2
;;D^ ; ;
;;R^"860.8:",100,3
;;D^ ; N OCXVAL S OCXVAL=$$CM^ORQQRA(OCXOI) Q:(OCXVAL["C") 1_U_OCXVAL Q 0
;;R^"860.8:",100,4
;;D^ ; ;
;;EOR^
;;KEY^860.8:^GET DATA FROM THE ACTIVE DATA FILE
;;R^"860.8:",.01,"E"
;;D^GET DATA FROM THE ACTIVE DATA FILE
;;R^"860.8:",.02,"E"
;;D^GETDATA
;;R^"860.8:",100,1
;;D^ ;GETDATA(DFN,OCXL,OCXDFI) ; This Local Extrinsic Function returns runtime data
;;R^"860.8:",100,2
;;D^ ; ;
;;R^"860.8:",100,3
;;D^ ; N OCXE,VAL,PC S VAL=""
;;R^"860.8:",100,4
;;D^ ; F PC=1:1:$L(OCXL,U) S OCXE=$P(OCXL,U,PC) I OCXE S VAL=$G(^TMP("OCXCHK",$J,DFN,OCXE,OCXDFI)) Q:$L(VAL)
;;R^"860.8:",100,5
;;D^ ; Q VAL
;;R^"860.8:",100,6
;;D^ ; ;
;;EOR^
;;KEY^860.8:^DATE PATIENT DECEASED
;;R^"860.8:",.01,"E"
;;D^DATE PATIENT DECEASED
;;R^"860.8:",.02,"E"
;;D^DECEASED
;;EOR^
;;KEY^860.8:^SITE FLAGGED ORDER
;;R^"860.8:",.01,"E"
;;D^SITE FLAGGED ORDER
;;R^"860.8:",.02,"E"
;;D^SITEORD
;;R^"860.8:",100,1
;;D^ ;SITEORD(ORNUM) ;Ext. funct return 1 (Yes) or 0 (No) if the site has flagged the
;;R^"860.8:",100,2
;;D^ ; ; orderable item (determined via order number ORNUM) to trigger a
;;R^"860.8:",100,3
;;D^ ; ; notification when ordered
;;R^"860.8:",100,4
;;D^ ; N ORBFLAG,OI S ORBFLAG="",OI=""
;;R^"860.8:",100,5
;;D^T+; W:$G(OCXTRACE) !!,"Site Flagged Order function, ORNUM: ",ORNUM
;;R^"860.8:",100,6
;;D^ ; Q:'$L($G(ORNUM)) ORBFLAG
;;R^"860.8:",100,7
;;D^ ; S OI=$$OI^ORQOR2(ORNUM)
;;R^"860.8:",100,8
;;D^ ; Q:'$L($G(OI)) ORBFLAG
;;R^"860.8:",100,9
;;D^ ; S ORBFLAG=$$GET^XPAR("ALL","ORB ORDERABLE ITEM ORDERED","`"_OI,"Q")
;;R^"860.8:",100,10
;;D^T+; W:$G(OCXTRACE) !," Results (ORBFLAG): ",ORBFLAG,!!
;;R^"860.8:",100,11
;;D^ ; Q ORBFLAG
;;R^"860.8:",100,12
;;D^ ; ;
;;EOR^
;;KEY^860.8:^SITE FLAGGED RESULT
;;R^"860.8:",.01,"E"
;;D^SITE FLAGGED RESULT
;;R^"860.8:",.02,"E"
;;D^SITERES
;;R^"860.8:",100,1
;;D^ ;SITERES(ORNUM) ;Ext. funct return 1 (Yes) if the site has flagged the
;1;
;
OCXDI02E ;SLC/RJS,CLA - OCX PACKAGE DIAGNOSTIC ROUTINES ;SEP 7,1999 at 10:30
+1 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32**;Dec 17,1997
+2 ;; ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
+3 ;
S ;
+1 ;
+2 DO DOT^OCXDIAG
+3 ;
+4 ;
+5 KILL REMOTE,LOCAL,OPCODE,REF
+6 FOR LINE=1:1:500
SET TEXT=$PIECE($TEXT(DATA+LINE),";",2,999)
IF TEXT
QUIT
IF $LENGTH(TEXT)
Begin DoDot:1
+7 SET ^TMP("OCXDIAG",$JOB,$ORDER(^TMP("OCXDIAG",$JOB,"A"),-1)+1)=TEXT
End DoDot:1
IF QUIT
QUIT
+8 ;
+9 GOTO ^OCXDI02F
+10 ;
+11 QUIT
+12 ;
DATA ;
+1 ;
+2 ;;R^"860.8:",100,5
+3 ;;D^ ; F OCXTERM="SERUM CREATININE","SERUM UREA NITROGEN" D Q:$L(OCXV)
+4 ;;R^"860.8:",100,6
+5 ;;D^ ; .Q:'$$TERMLKUP(OCXTERM,.OCXTL) ""
+6 ;;R^"860.8:",100,7
+7 ;;D^ ; .S OCXX=0 F S OCXX=$O(OCXTL(OCXX)) Q:'OCXX D Q:$L(OCXV)
+8 ;;R^"860.8:",100,8
+9 ;;D^ ; ..S OCXS=0 F S OCXS=$O(OCXSLIST(OCXS)) Q:'OCXS D Q:$L(OCXV)
+10 ;;R^"860.8:",100,9
+11 ;;D^ ; ...S OCXV=$$OIRES^ORQQLR1(DFN,OCXX,OCXS)
+12 ;;R^"860.8:",100,10
+13 ;;D^ ; Q OCXV
+14 ;;R^"860.8:",100,11
+15 ;;D^ ;
+16 ;;EOR^
+17 ;;KEY^860.8:^DETERMINE IF RENAL LAB RESULTS ARE ABNORMAL HIGH OR LOW
+18 ;;R^"860.8:",.01,"E"
+19 ;;D^DETERMINE IF RENAL LAB RESULTS ARE ABNORMAL HIGH OR LOW
+20 ;;R^"860.8:",.02,"E"
+21 ;;D^ABREN
+22 ;;R^"860.8:",100,1
+23 ;;D^ ;ABREN(DFN) ;
+24 ;;R^"860.8:",100,2
+25 ;;D^ ; ;
+26 ;;R^"860.8:",100,3
+27 ;;D^ ; N OCXFLAG,OCXVAL,OCXLIST,OCXTEST,UNAV,OCXTLIST,OCXTERM,OCXSLIST,OCXSPEC
+28 ;;R^"860.8:",100,4
+29 ;;D^ ; S (OCXLIST,OCXTLIST)="",UNAV="0^<Unavailable>"
+30 ;;R^"860.8:",100,5
+31 ;;D^ ; S OCXSLIST="" Q:'$$TERMLKUP("SERUM SPECIMEN",.OCXSLIST) UNAV
+32 ;;R^"860.8:",100,6
+33 ;;D^ ; F OCXTERM="SERUM CREATININE","SERUM UREA NITROGEN" D
+34 ;;R^"860.8:",100,7
+35 ;;D^ ; .Q:'$$TERMLKUP(OCXTERM,.OCXTLIST)
+36 ;;R^"860.8:",100,8
+37 ;;D^ ; .S OCXTEST=0 F S OCXTEST=$O(OCXTLIST(OCXTEST)) Q:'OCXTEST D
+38 ;;R^"860.8:",100,9
+39 ;;D^ ; ..S OCXSPEC=0 F S OCXSPEC=$O(OCXSLIST(OCXSPEC)) Q:'OCXSPEC D
+40 ;;R^"860.8:",100,10
+41 ;;D^ ; ...S OCXVAL=$$LOCL^ORQQLR1(DFN,OCXTEST,OCXSPEC),OCXFLAG=$P(OCXVAL,U,5)
+42 ;;R^"860.8:",100,11
+43 ;;D^ ; ...I $L(OCXVAL),((OCXFLAG["H")!(OCXFLAG["L")) D
+44 ;;R^"860.8:",100,12
+45 ;;D^ ; ....N OCXY S OCXY=""
+46 ;;R^"860.8:",100,13
+47 ;;D^ ; ....S OCXY=$P(OCXVAL,U,2)_": "_$P(OCXVAL,U,3)_" "_$P(OCXVAL,U,4)
+48 ;;R^"860.8:",100,14
+49 ;;D^ ; ....S OCXY=OCXY_" "_$S($L(OCXFLAG):"["_OCXFLAG_"]",1:"")
+50 ;;R^"860.8:",100,15
+51 ;;D^ ; ....S OCXY=OCXY_" "_$$FMTE^XLFDT($P(OCXVAL,U,7),"2P")
+52 ;;R^"860.8:",100,16
+53 ;;D^ ; ....S:$L(OCXLIST) OCXLIST=OCXLIST_" " S OCXLIST=OCXLIST_OCXY
+54 ;;R^"860.8:",100,17
+55 ;;D^ ; Q:'$L(OCXLIST) UNAV Q 1_U_OCXLIST
+56 ;;R^"860.8:",100,18
+57 ;;D^ ; ;
+58 ;;EOR^
+59 ;;KEY^860.8:^DOES THIS RADIOLOGY PROCEDURE USE A CONTRAST MEDIA
+60 ;;R^"860.8:",.01,"E"
+61 ;;D^DOES THIS RADIOLOGY PROCEDURE USE A CONTRAST MEDIA
+62 ;;R^"860.8:",.02,"E"
+63 ;;D^CM
+64 ;;R^"860.8:",100,1
+65 ;;D^ ;CM(OCXOI) ;
+66 ;;R^"860.8:",100,2
+67 ;;D^ ; ;
+68 ;;R^"860.8:",100,3
+69 ;;D^ ; N OCXVAL S OCXVAL=$$CM^ORQQRA(OCXOI) Q:((OCXVAL["B")!(OCXVAL["M")) 1_U_OCXVAL Q 0
+70 ;;R^"860.8:",100,4
+71 ;;D^ ; ;
+72 ;;EOR^
+73 ;;KEY^860.8:^IS THIS A CHOLECYSTOGRAM RADIOLOGY PROCEDURE
+74 ;;R^"860.8:",.01,"E"
+75 ;;D^IS THIS A CHOLECYSTOGRAM RADIOLOGY PROCEDURE
+76 ;;R^"860.8:",.02,"E"
+77 ;;D^CH
+78 ;;R^"860.8:",100,1
+79 ;;D^ ;CH(OCXOI) ;
+80 ;;R^"860.8:",100,2
+81 ;;D^ ; ;
+82 ;;R^"860.8:",100,3
+83 ;;D^ ; N OCXVAL S OCXVAL=$$CM^ORQQRA(OCXOI) Q:(OCXVAL["C") 1_U_OCXVAL Q 0
+84 ;;R^"860.8:",100,4
+85 ;;D^ ; ;
+86 ;;EOR^
+87 ;;KEY^860.8:^GET DATA FROM THE ACTIVE DATA FILE
+88 ;;R^"860.8:",.01,"E"
+89 ;;D^GET DATA FROM THE ACTIVE DATA FILE
+90 ;;R^"860.8:",.02,"E"
+91 ;;D^GETDATA
+92 ;;R^"860.8:",100,1
+93 ;;D^ ;GETDATA(DFN,OCXL,OCXDFI) ; This Local Extrinsic Function returns runtime data
+94 ;;R^"860.8:",100,2
+95 ;;D^ ; ;
+96 ;;R^"860.8:",100,3
+97 ;;D^ ; N OCXE,VAL,PC S VAL=""
+98 ;;R^"860.8:",100,4
+99 ;;D^ ; F PC=1:1:$L(OCXL,U) S OCXE=$P(OCXL,U,PC) I OCXE S VAL=$G(^TMP("OCXCHK",$J,DFN,OCXE,OCXDFI)) Q:$L(VAL)
+100 ;;R^"860.8:",100,5
+101 ;;D^ ; Q VAL
+102 ;;R^"860.8:",100,6
+103 ;;D^ ; ;
+104 ;;EOR^
+105 ;;KEY^860.8:^DATE PATIENT DECEASED
+106 ;;R^"860.8:",.01,"E"
+107 ;;D^DATE PATIENT DECEASED
+108 ;;R^"860.8:",.02,"E"
+109 ;;D^DECEASED
+110 ;;EOR^
+111 ;;KEY^860.8:^SITE FLAGGED ORDER
+112 ;;R^"860.8:",.01,"E"
+113 ;;D^SITE FLAGGED ORDER
+114 ;;R^"860.8:",.02,"E"
+115 ;;D^SITEORD
+116 ;;R^"860.8:",100,1
+117 ;;D^ ;SITEORD(ORNUM) ;Ext. funct return 1 (Yes) or 0 (No) if the site has flagged the
+118 ;;R^"860.8:",100,2
+119 ;;D^ ; ; orderable item (determined via order number ORNUM) to trigger a
+120 ;;R^"860.8:",100,3
+121 ;;D^ ; ; notification when ordered
+122 ;;R^"860.8:",100,4
+123 ;;D^ ; N ORBFLAG,OI S ORBFLAG="",OI=""
+124 ;;R^"860.8:",100,5
+125 ;;D^T+; W:$G(OCXTRACE) !!,"Site Flagged Order function, ORNUM: ",ORNUM
+126 ;;R^"860.8:",100,6
+127 ;;D^ ; Q:'$L($G(ORNUM)) ORBFLAG
+128 ;;R^"860.8:",100,7
+129 ;;D^ ; S OI=$$OI^ORQOR2(ORNUM)
+130 ;;R^"860.8:",100,8
+131 ;;D^ ; Q:'$L($G(OI)) ORBFLAG
+132 ;;R^"860.8:",100,9
+133 ;;D^ ; S ORBFLAG=$$GET^XPAR("ALL","ORB ORDERABLE ITEM ORDERED","`"_OI,"Q")
+134 ;;R^"860.8:",100,10
+135 ;;D^T+; W:$G(OCXTRACE) !," Results (ORBFLAG): ",ORBFLAG,!!
+136 ;;R^"860.8:",100,11
+137 ;;D^ ; Q ORBFLAG
+138 ;;R^"860.8:",100,12
+139 ;;D^ ; ;
+140 ;;EOR^
+141 ;;KEY^860.8:^SITE FLAGGED RESULT
+142 ;;R^"860.8:",.01,"E"
+143 ;;D^SITE FLAGGED RESULT
+144 ;;R^"860.8:",.02,"E"
+145 ;;D^SITERES
+146 ;;R^"860.8:",100,1
+147 ;;D^ ;SITERES(ORNUM) ;Ext. funct return 1 (Yes) if the site has flagged the
+148 ;1;
+149 ;