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

BLRTNB.m

Go to the documentation of this file.
  1. BLRTNB ; IHS/HQT/MJL - SET IHS LAB TRANSACTION LOG - BLOOD BANK ;MAY 06, 2009 9:58 AM
  1. ;;5.2T1;IHS LABORATORY;**1010,1018,1025,1026**;NOV 01, 1997
  1. ;;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER ^BLRTNB")
  1. ; S BLRLRDFN=$G(^BLRSITE(BLRQSITE,20,BLRQDH,1,BLRLTP,"LRDFN")),BLRIDT=$G(^("LRIDT")),BLRTEST=$G(^("BLRTEST")),BLRTESTN=$G(^("BLRTESTN")),BLRDR=$G(^("DR")),(BLRRES,BLRANTI,BLRBTN,BLRCMTS)="",BLR60F=0
  1. ; S BLRODT=$P(BLRIDS,","),BLRSEQ=$P(BLRIDS,",",2)
  1. ; S BLRACCN=$P($G(^LR(BLRLRDFN,"BB",BLRIDT,0)),U,6)
  1. ; ----- BEGIN IHS/OIT/MKK LR*5.2*1026 Modifications
  1. ; Quit if variables cannot be set
  1. S BLRLRDFN=$G(^BLRSITE(BLRQSITE,20,BLRQDH,1,BLRLTP,"LRDFN"))
  1. I $G(BLRLRDFN)="" D NOTSETER("BLRLRDFN") Q
  1. ;
  1. S BLRIDT=$G(^BLRSITE(BLRQSITE,20,BLRQDH,1,BLRLTP,"LRIDT"))
  1. I $G(BLRIDT)="" D NOTSETER("LRIDT") Q
  1. ;
  1. S BLRTEST=$G(^BLRSITE(BLRQSITE,20,BLRQDH,1,BLRLTP,"BLRTEST"))
  1. I $G(BLRTEST)="" D NOTSETER("BLRTEST") Q
  1. ;
  1. S BLRTESTN=$G(^BLRSITE(BLRQSITE,20,BLRQDH,1,BLRLTP,"BLRTESTN"))
  1. I $G(BLRTESTN)="" D NOTSETER("BLRTESTN") Q
  1. ;
  1. S BLRDR=$G(^BLRSITE(BLRQSITE,20,BLRQDH,1,BLRLTP,"DR"))
  1. I $G(BLRDR)="" D NOTSETER("BLRDR") Q
  1. ;
  1. S (BLRRES,BLRANTI,BLRBTN,BLRCMTS)=""
  1. S BLR60F=0
  1. ;
  1. S BLRODT=$P(BLRIDS,",")
  1. I $G(BLRODT)="" D NOTSETER("BLRODT") Q
  1. ;
  1. S BLRSEQ=$P(BLRIDS,",",2)
  1. I $G(BLRSEQ)="" D NOTSETER("BLRSEQ") Q
  1. ;
  1. S BLRACCN=$P($G(^LR(BLRLRDFN,"BB",BLRIDT,0)),U,6)
  1. I $G(BLRACCN)="" D NOTSETER("BLRACCN") Q
  1. ;
  1. ; ----- END IHS/OIT/MKK LR*5.2*1026 Modifications
  1. ;
  1. D
  1. .;I BLRDR["CMBS" D COOMBS Q
  1. .I $E(BLRDR,2,5)="LRBL" D COOMBS
  1. .D RHTYP
  1. I BLRBTN'="" S BLRRES="",BLR60F=1 D BLDMSTR
  1. D KILL
  1. Q
  1. ;
  1. ; ----- BEGIN IHS/OIT/MKK LR*5.2*1026 Modifications
  1. ; Set Error Flag & Error Array that will show up in BLRTXLOG. Not Fatal.
  1. NOTSETER(VAR) ; EP
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER NOTSETER^BLRTNB")
  1. S BLRERR=1
  1. S BLRERROR(1)="BLRTNB Error: "_VAR_" is Null/Zero."
  1. Q
  1. ; ----- END IHS/OIT/MKK LR*5.2*1026 Modifications
  1. ;
  1. RHTYP ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER RHTYP^BLRTNB")
  1. S BLRRES=$P($G(^LR(BLRLRDFN,"BB",BLRIDT,10)),U) I BLRRES'="" S BLRBTN="ABO INTERPRETATION" D LOOKBTN
  1. S BLRRES=$P($G(^LR(BLRLRDFN,"BB",BLRIDT,11)),U) I BLRRES'="" S BLRBTN="RH INTERPRETATION" D LOOKBTN
  1. Q
  1. ;
  1. COOMBS ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER COOMBS^BLRTNB")
  1. I $D(^LR(BLRLRDFN,"BB",BLRIDT,2)) D DIRECT
  1. I $D(^LR(BLRLRDFN,"BB",BLRIDT,6)) S BLRRES=$G(^(6)) D INDIR
  1. Q
  1. ;
  1. DIRECT ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER DIRECT^BLRTNB")
  1. S BLRRES=$P($G(^LR(BLRLRDFN,"BB",BLRIDT,2)),U,9)
  1. I BLRRES'="" S BLRBTN="DIRECT INTERPRETATION" D LOOKBTN
  1. Q:BLRRES'="P"
  1. Q:'$D(^LR(BLRLRDFN,"BB",BLRIDT,"EA"))
  1. S BLRPAR=$O(^BLRTXLOG("AOB",BLRACCN,BLRBTN,""),-1)
  1. S BLRANTI=0 F S BLRANTI=$O(^LR(BLRLRDFN,"BB",BLRIDT,"EA",BLRANTI)) Q:BLRANTI="" S BLRRES="POS" D LOOKANT
  1. K BLR("ANTIBODY")
  1. Q
  1. ;
  1. INDIR ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER INDIR^BLRTNB")
  1. S BLRBTN="INDIRECT INTERPRETATION" D LOOKBTN
  1. Q:BLRRES="N"
  1. Q:'$D(^LR(BLRLRDFN,"BB",BLRIDT,5))
  1. S BLRPAR=$O(^BLRTXLOG("AOB",BLRACCN,BLRBTN,""),-1)
  1. S BLRANTI=0 F S BLRANTI=$O(^LR(BLRLRDFN,"BB",BLRIDT,5,BLRANTI)) Q:BLRANTI="" S BLRRES="POS" D LOOKANT
  1. K BLR("ANTIBODY")
  1. Q
  1. LOOKBTN ;
  1. I '$D(^BLRTXLOG("AOB",BLRACCN,BLRBTN)) S BLRPAR=$O(^BLRTXLOG("AAT",BLRACCN,BLRTEST,""),-1) D SET Q
  1. D BLDMSTR
  1. Q
  1. ;
  1. LOOKANT ;
  1. I '$D(^BLRTXLOG("AOA",BLRACCN,BLRBTN,BLRANTI)) D SET Q
  1. D BLDMSTR
  1. Q
  1. ;
  1. BLDMSTR ;
  1. S BLRCMF="M"
  1. I BLR60F S BLRCRSBS="""AAT"",BLRACCN,BLRTEST",BLRDIR=-1,BLROKCK="",BLRBADCK="",BLR("SEQUENCE NUMBER")=$$GETIEN Q:BLRERR
  1. I 'BLR60F D
  1. .S BLRCRSBS=""""_$S(BLRANTI'="":"AOA",1:"AOB")_""",BLRACCN,BLRBTN",BLRDIR=-1,BLROKCK="CHKDT",BLRBADCK=""
  1. .S:BLRANTI'="" BLRCRSBS=BLRCRSBS_",BLRANTI"
  1. .S BLR("SEQUENCE NUMBER")=$$GETIEN Q:BLRERR S BLR("RESULT")=BLRRES,BLR("BB TEST NAME")=BLRBTN
  1. .S:BLRANTI'="" BLR("ANTIBODY")=BLRANTI S:BLRCMTS'="" BLR("COMMENTS")=BLRCMTS
  1. Q:BLRERR D ^BLRNFLTL
  1. S BLRCMTS=""
  1. Q
  1. ;
  1. ;
  1. SET ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER SET^BLRTNB")
  1. S BLRCMF="C"
  1. S BLRCRSBS="""AOT"",BLRODTM,BLRSEQ,BLRTEST1",BLRDIR=1,BLROKCK="",BLRBADCK=""
  1. S BLRVAL=^LRO(69,BLRODT,1,BLRSEQ,0),BLRLRDFN=$P(BLRVAL,U,1),BLRODTM=$P(BLRVAL,U,5)
  1. S BLRDUZ=$P(BLRVAL,U,2),BLRDUZ2=DUZ(2)
  1. S BLRDTC=$P(BLRVAL,U,8),BLRLOCN=$P(BLRVAL,U,7)
  1. S BLRLOC="" I BLRLOCN'="" S BLRLOC=$O(^SC("B",BLRLOCN,"")) S:BLRLOC="" BLRLOC=$O(^SC("C",BLRLOCN,"")) I BLRLOC="" S X=BLRLOCN,DIC=44,DIC(0)="MX" D ^DIC S BLRLOC=+Y I Y=-1 S BLRLOC=""
  1. S BLRCLNC="" I BLRLOC'="" S BLRCLNC=$P($G(^SC(BLRLOC,0)),U,7)
  1. S BLRSPEC=$O(^LAB(61,"B","BLOOD",""))
  1. ;S BLRCAT="A" I $L($G(^DPT(BLRLRDFN,.1))) S BLRCAT="I"
  1. ;----- BEGIN IHS MODIFICATIONS LR*5.2*1018
  1. S BLRCAT="A" S X=$$GET1^DIQ(2,BLRLRDFN,.103) I X]"",X'["OBSERVATION" S BLRCAT="I"
  1. ;----- END IHS MODIFICATIONS MOD SUGGESTED BY LINDA FELS
  1. ; S BLRPROV=$P(BLRVAL,U,6) S:+BLRPROV>0 BLRPROVN=$P($G(^VA(200,$P(BLRVAL,U,6),0)),U) S:BLRPROVN="" BLRPROVN="Unknown Provider"
  1. ;----- BEGIN IHS MODIFICATIONS LR*5.2*1025
  1. S BLRPROV=$P(BLRVAL,U,6) S:+BLRPROV>0 BLRPROVN=$P($G(^VA(200,$P(BLRVAL,U,6),0)),U) S:$G(BLRPROVN)="" BLRPROVN="Unknown Provider"
  1. ;----- END IHS MODIFICATIONS LR*5.2*1025
  1. S BLRDFN=$P($G(^LR(BLRLRDFN,0)),U,3),BLRFILE=$P($G(^LR(BLRLRDFN,0)),U,2),BLRODTM=$G(BLRODTM)
  1. S BLR("LAB MODULE")="BB"
  1. S BLR("LRFILE")=BLRFILE,BLR("LRDFN")=BLRLRDFN,BLR("PATIENT POINTER VALUE")=BLRDFN,BLR("ORDERING PROVIDER POINTER")=BLRPROV,BLR("VERIFIER POINTER")=BLRDUZ
  1. S BLR("ORDER DATE")=$P(BLRVAL,U,5),BLR("ORDER SEQUENCE NUMBER")=BLRSEQ,BLR("ORDER NUMBER")=$G(^LRO(69,BLRODT,1,BLRSEQ,.1))
  1. D NOW^%DTC S BLR("ENTRY DATE/TIME")=%
  1. S BLR("COLLECTION DATE/TIME")=BLRDTC,BLR("CLINIC STOP CODE POINTER")=BLRCLNC
  1. S BLR("ORDERING LOCATION POINTER")=BLRLOC,BLR("DUZ(2)")=BLRDUZ2,BLR("I/O CATEGORY")=BLRCAT,BLR("ACCESSION NUMBER")=BLRACCN,BLR("SITE/SPECIMEN POINTER")=BLRSPEC
  1. S BLRTEST1=BLRTEST D CPTCODE^BLRTN
  1. S BLR("PARENT POINTER")=BLRPAR,BLR("CPT LAB CODE POINTER")=BLRCPTP,BLR("CPT CODE")=BLRCPTS,BLR("RESULT")=BLRRES,BLR("BB TEST NAME")=BLRBTN,BLR("PANEL/TEST POINTER")=BLRTEST
  1. I BLRANTI'="" S BLR("ANTIBODY")=BLRANTI
  1. S BLR("SEQUENCE NUMBER")=$$GETIEN Q:BLRERR
  1. D ^BLRNFLTL
  1. S BLRCMTS=""
  1. Q
  1. ;
  1. GETIEN() ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER GETIEN^BLRTNB")
  1. S BLRERR=0 I BLRCMF="C" D GETNEW Q BLRENT
  1. D
  1. .S BLRCRGL="^BLRTXLOG("_BLRCRSBS_")",BLRENT=$O(@BLRCRGL@(""),BLRDIR)
  1. .S:'BLRENT BLRERR=1
  1. .I BLRENT,BLROKCK'="" D @BLROKCK
  1. .I 'BLRERR,BLRBADCK'="" D @BLRBADCK
  1. .I BLRERR D EMSG Q
  1. .S BLRIEN=BLRENT_"," Q
  1. Q BLRENT
  1. ;
  1. GETNEW ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER GETNEW^BLRTNB")
  1. S BLRENT=$G(^BLRTXLOG("SEQ"))
  1. I 'BLRENT S BLRENT=$O(^BLRTXLOG("@"),-1) I BLRENT,'$D(^BLRTXLOG(1)) S BLRENT=0
  1. F BLRENT=BLRENT+1:1 Q:'$D(^BLRTXLOG(BLRENT))
  1. S BLRENTS="BLRENTS",BLRENTS(1)=BLRENT,^BLRTXLOG("SEQ")=BLRENT,BLRIEN="+1,"
  1. Q
  1. ;
  1. CHKDT ;
  1. S BLRCDT=$P($G(^BLRTXLOG(BLRENT,12)),U)
  1. Q:$E(BLRCDT,1,3)=$E(DT,1,3)
  1. I ($E(BLRCDT,1,3)+1)'=$E(DT,1,3) S BLRERR=1,BLRDTER=1 Q ;MORE THAN 1 YEAR AHEAD
  1. I $E(BLRCDT,4,5)<11 S BLRERR=1,BLRDTER=1 Q
  1. Q
  1. ;
  1. EMSG ;
  1. ; Log an error because the crossreference isn't set.
  1. I 'BLRENT D
  1. .S BLRERR=1,BLRERROR(1)="Something wrong -- problem with IHS Lab Transaction Log Cross Reference: "_BLRCRGL
  1. Q
  1. ;
  1. ;
  1. GETCPT ;
  1. S BLRFOUND=1
  1. S BLRCPTP=BLRXII
  1. S (BLRCPTS,BLRCPTC)="" F S BLRCPTC=$O(^BLRCPT(BLRXII,11,"B",BLRCPTC)) Q:BLRCPTC="" S BLRCPTS=BLRCPTS_BLRCPTC_";"
  1. I $L(BLRCPTS,";")=2 S BLRCPTS=$P(BLRCPTS,";",1)
  1. I $E(BLRCPTS,$L(BLRCPTS))=";" S BLRCPTS=$E(BLRCPTS,$L(BLRCPTS))
  1. Q
  1. ;
  1. KILL ;
  1. K BLR60F,BLRANTI,BLRBTN,BLRCAT,BLRCLNC,BLRCMTS,BLRCPTC,BLRCPTF,BLRCPTP,BLRCPTS,BLRCST,BLRLRDFN,BLRDTC,BLRDUZ,BLRDUZ2,BLRDUZN,BLRENT,BLRFID,BLRFILE,BLRFOUND
  1. K BLRIDT,BLRLOC,BLRLOCN,BLRLOGDA,BLRLRDFN,BLRODT,BLRODTM,BLRPAR,BLRPROV,BLRPROVN,BLRRES,BLRSEQ,BLRSPEC,BLRSTR,BLRSTR1,BLRTEST
  1. K BLRTESTN,BLRVAL,BLRXII
  1. Q