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

BLRTNM1.m

Go to the documentation of this file.
  1. BLRTNM1 ; IHS/HQT/MJL - SET IHS LAB TRANSACTION LOG - MICRO ; 14 Jun 2010 9:55 AM
  1. ;;5.2;IHS LABORATORY;**1010,1018,1028,1030**;NOV 01, 1997
  1. ;;
  1. ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER ^BLRTNM1")
  1. S BLRCMF="C"
  1. Q:$D(^LRO(69,BLRODT,1,BLRSEQ,0))<1 ; IHS/OIT/MKK - LR*5.2*1028 -- If no Data, skip. PIMC correction.
  1. ; S BLRVAL=^LRO(69,BLRODT,1,BLRSEQ,0),BLRLRDFN=$P(BLRVAL,U,1),BLRODTM=$P(BLRVAL,U,5)
  1. ; ----- BEGIN IHS/OIT/MKK - LR*5.2*1030 -- Naked Reference Issue
  1. S BLRVAL=$G(^LRO(69,BLRODT,1,BLRSEQ,0))
  1. S BLRLRDFN=$P(BLRVAL,U,1)
  1. S BLRODTM=$P(BLRVAL,U,5)
  1. ; ----- END IHS/OIT/MKK -- LR*5.2*1030
  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(^SC(BLRLOC,0),U,7)
  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)
  1. S BLRDFN=$P(^LR(BLRLRDFN,0),U,3),BLRFILE=$P(^LR(BLRLRDFN,0),U,2),BLRODTM=$G(BLRODTM)
  1. S BLR("SEQUENCE NUMBER")=$$GETIEN
  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 SEQ. NUMBER")=BLRSEQ,BLR("ORDER NUMBER")=^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("COLLECTION SAMPLE POINTER")=BLRCOLSP
  1. S BLRLEV=1,BLRTEST1=BLRTEST,BLRLEV(1)=BLRTEST,BLRLEV(1,1)="",BLRATOM=1
  1. I BLR60F,'BLRSETP S BLRPAR=""
  1. D SET3 I BLR60F F D SET2 Q:'BLRLEV
  1. K BLR,BLRLEV I BLR60F,'BLRSETP K BLRPAR
  1. Q
  1. ;
  1. SET2 ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER SET2^BLRTNM1")
  1. S BLRATOM=$O(^LAB(60,BLRLEV(BLRLEV),2,0))="" I BLRATOM,BLRLEV=1 S BLRLEV=0 Q
  1. S:'BLRATOM BLRLEV=BLRLEV+1 S BLRLEV(BLRLEV,0)=$O(^LAB(60,BLRLEV(BLRLEV-1),2,$G(BLRLEV(BLRLEV,0),0)))
  1. I BLRLEV(BLRLEV,0) S BLRTEST1=+^LAB(60,BLRLEV(BLRLEV-1),2,$G(BLRLEV(BLRLEV,0),0),0),BLRLEV(BLRLEV)=BLRTEST1 D SET3 Q
  1. S BLRLEV(BLRLEV,0)=0,BLRLEV=BLRLEV-2
  1. Q
  1. ;
  1. SET3 ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER SET3^BLRTNM1")
  1. S BLRMOD="MI"
  1. I BLR60F S BLRL60=^LAB(60,BLRTEST1,0),BLRMOD=$P(BLRL60,U,4),BLRCST=$P(BLRL60,U,11)
  1. S BLR("LAB MODULE")=BLRMOD
  1. ;S (BLRXII,BLRCPTS,BLRCPTP)="" F S BLRFOUND=0,BLRXII=$O(^BLRCPT("C",BLRTEST1,BLRXII)) Q:(BLRXII=""!(BLRFOUND)) S BLRCPTF=$P(^BLRCPT(BLRXII,1),U,2) Q:BLRCPTF D GETCPT Q
  1. D:BLRLEV=1 CPTCODE^BLRTN
  1. S BLRSPEC=$G(LRSPEC) D:BLRSPEC'="" SET4
  1. D:BLR60F
  1. .S BLR("CPT LAB CODE POINTER")=BLRCPTP,BLR("CPT CODE")=BLRCPTS,BLR("PANEL/TEST POINTER")=BLRTEST1,BLR("PANEL/TEST NAME")=BLRTESTN,BLR("LAB TEST LIST COST")=BLRCST,BLR("RESULT")=BLRRES S:BLRCMTS'="" BLR("COMMENTS")=BLRCMTS
  1. I 'BLR60F D
  1. .S BLR("PARENT POINTER")=BLRPAR,BLR("CPT LAB CODE POINTER")=BLRCPTP,BLR("CPT CODE")=BLRCPTS,BLR("RESULT")=BLRRES,BLR("ORGANISM")=BLRORG,BLR("PANEL/TEST POINTER")=BLRCULT
  1. .I BLRSPT'=6,BLRANTP'="" S BLR("ANTIBIOTIC")=BLRANTP,BLR("ANTIBIOTIC NAME")=BLRANTN,BLR("PCC ERROR FLAG")=BLRERFS
  1. .S:BLRSTGN'="" BLR("STAGE NAME")=BLRSTGN
  1. .S:BLRSTG'="" BLR("STAGE COUNTER")=BLRSTG Q
  1. I BLR60F S BLR("PARENT POINTER")=BLRLEV(BLRLEV,1) S:'BLRATOM BLRPAR=BLR("SEQUENCE NUMBER")
  1. S:+BLRCMPD BLR("COMPLETE DATE")=BLRCMPD
  1. D ^BLRNFLTL
  1. I 'BLRATOM S BLRLEV(BLRLEV+1,1)=BLRPAR
  1. S BLRCMTS=""
  1. Q
  1. ;
  1. SET4 ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER SET4^BLRTNM1")
  1. S BLRZ=$G(^LAB(60,BLRTEST1,1,BLRSPEC,0)),BLRUNITS=$P($P(BLRZ,U,7)," ",1)
  1. ;[LR*5.2*1028;08/20/10;IHS/OIT/MPW]Added next 1 line
  1. I BLRUNITS?1N.N,$D(^BLRUCUM(BLRUNITS,0)) S BLRUNITS=$P($G(^BLRUCUM(BLRUNITS,0)),U,1)
  1. S BLR("UNITS")=BLRUNITS,BLR("SITE/SPECIMEN POINTER")=BLRSPEC
  1. Q
  1. ;
  1. GETIEN() ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER GETIEN^BLRTNM1")
  1. 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^BLRTNM1")
  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. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER CHKDT^BLRTNM1")
  1. S BLRCDT=$P(^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. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ENTER GETCPT^BLRTNM1")
  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. ;