Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: CIAZPLAB

CIAZPLAB.m

Go to the documentation of this file.
  1. CIAZPLAB ;CIA/PLS - Laboratory Protocol Event API ;23-Apr-2004 11:21;PLS
  1. ;;1.1;VUECENTRIC RPMS SUPPORT;;Sep 14, 2004
  1. ;;Copyright 2000-2004, Clinical Informatics Associates, Inc.
  1. ;=================================================================
  1. ; This routine implements the existing BLRTN logic via Protocols
  1. HOOK ;
  1. N ZMSG
  1. M ZMSG=@XQORMSG
  1. ; Assumes that BLRLOG is already defined
  1. Q:'$G(BLRLOG,1) ;PCC logging is turned off
  1. N SEG,LP,DL1,DL2,ACTION,ORDSTS,TYP,CD,XLRACC,XLRSS,OBR
  1. S LP=0
  1. S SEG=$$SEG(XQORMSG,"MSH",.LP)
  1. Q:'LP
  1. S DL1=$E(SEG,4),DL2=$E(SEG,5)
  1. Q:$P(SEG,DL1,3)'="LABORATORY"
  1. S SEG=$$SEG(XQORMSG,"ORC",.LP)
  1. Q:'LP
  1. S ORDSTS=$P(SEG,DL1,6) ; Order Status
  1. S ACTION=$P(SEG,DL1,2) ; Order Control
  1. S XLRSS=$P($P(SEG,DL1,4),";",4)
  1. S OBR=$$SEG(XQORMSG,"OBR",.LP)
  1. Q:'LP
  1. S XLRACC=$P(OBR,DL1,21) ;Accession Number - Text Format
  1. I ACTION?2U,$L($T(@ACTION)) D
  1. .S TYP=$$GETTYP()
  1. .S CD=","
  1. .D:$L(TYP) @ACTION
  1. Q
  1. ; Return specified segment, starting at line LP
  1. SEG(MSG,TYP,LP) ;
  1. F S LP=$O(@MSG@(LP)) Q:'LP Q:$E(@MSG@(LP),1,$L(TYP))=TYP
  1. Q $S(LP:@MSG@(LP),1:"")
  1. ;
  1. GETTYP() ; Returns message type
  1. Q $S($G(XQORMSG)["LRCH":"CH",$G(XQORMSG)["LRBB":"BB",$G(XQORMSG)["LRAP":"AP",1:"")
  1. ;
  1. SET(N) ;
  1. S $ZE="LRZHOOK LOG_"_N D ^ZTER ;Temporary
  1. Q
  1. FIXAA(XAA) ; Perform lookup on LRUID if LRAA is not defined
  1. Q:+$G(XAA) XAA
  1. I $L($G(LRUID)) Q +$O(^LRO(68,"C",LRUID,0))
  1. Q 0
  1. SN ; New Order
  1. I ORDSTS="IP" D
  1. .D ^BLREVTQ("C","O","MULTI",,$G(LRODT,"")_CD_$G(LRSN,""))
  1. I ORDSTS="SC" D
  1. .D ^BLREVTQ("C","A","ADDACC",,$G(LRODT)_CD_$G(LRSN)_CD_$$FIXAA($G(LRAA))_CD_$G(LRAD)_CD_$G(LRAN))
  1. Q
  1. SC ;
  1. ; Make order
  1. I ORDSTS="IP" D
  1. .D ^BLREVTQ("M","O","",,$G(LRODT,"")_CD_$G(LRSN,""))
  1. ; Make accession
  1. I ORDSTS="SC" D
  1. .N LRTS
  1. .S LRTS=$P($P(OBR,DL1,5),DL2,4) ; Obtain Test IEN for File 60
  1. .D ^BLREVTQ("C","A","ADDACC",,+$G(LRODT)_CD_+$G(LRSN)_CD_$$FIXAA($G(LRAA))_CD_+$G(LRAD)_CD_+$G(LRAN)_CD_$G(LRACC))
  1. Q
  1. OH ; Hold Order
  1. Q
  1. OD ; Order Delete
  1. ;D ^BLREVTQ("M","D","DELORD","ORDER") ;"TESTS",+$G(LRAA)_CD_+$G(LRAD)_CD_+$G(LRAN))
  1. Q
  1. OC ; Order Cancelled
  1. D ^BLREVTQ("M","D","DELACC","TESTS",$G(LRAA)_CD_$G(LRAD)_CD_$G(LRAN))
  1. Q
  1. DC ; Discontinue Order
  1. Q
  1. RE ; Results
  1. I TYP="CH" D Q
  1. .I XLRSS="CH" D ; Chemistry
  1. ..D ^BLREVTQ("M","R","",,$S($L($G(LRACC)):LRACC,1:XLRACC))
  1. .I XLRSS="MI" D ; Microbiology
  1. ..D ^BLREVTQ("M","R","MICRO",,+$G(LRAA)_CD_+$G(LRAD)_CD_+$G(LRAN))
  1. I TYP="BB" D Q
  1. .D ^BLREVTQ("M","R","BBANK",,+$G(LRODT)_CD_+$G(LRSN)_CD_+$G(LRAA)_CD_+$G(LRAD)_CD_+$G(LRAN))
  1. I TYP="AP" Q ; Lab Package messaging is not enabled for AP
  1. Q