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

BTIULO11.m

Go to the documentation of this file.
  1. BTIULO11 ;IHS/ITSC/LJF - IHS OBJECTS ADDED IN PATCHES;26-Mar-2014 17:11;DU
  1. ;;1.0;TEXT INTEGRATION UTILITIES;**1006,1012,1013**;NOV 04, 2004;Build 33
  1. ;IHS/MSC/MGH line up number of labs and only display test name
  1. ;
  1. NLAB(DFN,TIUTST,TIUCNT) ;EP; -- returns last # of current lab result for single test;PATCH 1001
  1. ; TIUTST = lab test name; TIUCNT = # of test results to return
  1. ;IHS/CIA/MGH Modified to only display the test name
  1. NEW LAB,ARR,CAPTION,VDT,IEN,X,TIU,LINE,CNT,DATA,LGTH,DATE,Y
  1. K ^TMP("BTIULO",$J)
  1. S LAB=$O(^LAB(60,"B",TIUTST,0)) I LAB="" Q ""
  1. S CAPTION=$E(TIUTST,1,30)_":"
  1. S (VDT,CNT)=0
  1. F S VDT=$O(^AUPNVLAB("AA",DFN,LAB,VDT)) Q:('VDT)!(CNT>100) D
  1. . S IEN=0
  1. . F S IEN=$O(^AUPNVLAB("AA",DFN,LAB,VDT,IEN)) Q:'IEN!(CNT>100) D
  1. .. K TIU D ENP^XBDIQ1(9000010.09,IEN,".03:.05;1109;1201","TIU(")
  1. .. Q:TIU(.04)="" ;skip if not resulted
  1. .. S DATE=$S(TIU(1201)]"":TIU(1201),1:TIU(.03))
  1. .. S CNT=CNT+1 ;increment counter
  1. .. S DATA=" "_DATE
  1. .. S ARR(DATE,IEN)=$J(TIU(.04),8)_" "_TIU(.05)
  1. S CNT=0,DATE=""
  1. ;IHS/MSC/MGH patch 1006 change to check for CNT inside a date
  1. F S DATE=$O(ARR(DATE),-1) Q:DATE=""!(CNT=TIUCNT) D
  1. .S IEN="" F S IEN=$O(ARR(DATE,IEN),-1) Q:'IEN!(CNT=TIUCNT) D
  1. .. S LINE=$G(ARR(DATE,IEN)),CNT=CNT+1
  1. .. S Y=$S(CNT=1:CAPTION,1:$$SP($L(CAPTION)))
  1. .. S ^TMP("BTIULO",$J,CNT,0)=Y_LINE ;
  1. I '$D(^TMP("BTIULO",$J)) S ^TMP("BTIULO",$J,1,0)="No Results Found"
  1. Q "~@^TMP(""BTIULO"",$J)"
  1. ;
  1. ;
  1. PAD(DATA,LENGTH) ; -- SUBRTN to pad length of data
  1. Q $E(DATA_$$REPEAT^XLFSTR(" ",LENGTH),1,LENGTH)
  1. ;
  1. SP(NUM) ; -- SUBRTN to pad spaces
  1. Q $$PAD(" ",NUM)
  1. ABORH(DFN) ; EP Get the blood type of patient
  1. N ABO,RH,LRDFN,DATA
  1. S LRDFN=$P($G(^DPT(DFN,"LR")),U,1)
  1. I LRDFN="" S DATA="No lab data on file"
  1. I LRDFN'="" D
  1. .S ABO=$P($G(^LR(LRDFN,0)),U,5)
  1. .S RH=$P($G(^LR(LRDFN,0)),U,6)
  1. .I ABO=""&(RH="") S DATA="No blood type on file"
  1. .E S DATA="Blood Type: "_ABO_" "_RH
  1. Q DATA
  1. CLIA(DFN,TIUTST,TIUCNT) ;EP; -- returns last # of current lab result for single test
  1. ; TIUTST = lab test name; TIUCNT = # of test results to return
  1. ; Returns CLIA data for each lab
  1. NEW LAB,CAPTION,VDT,IEN,X,TIU,LINE,CNT,DATA,LGTH,ARR,DATE,DATE2,LCNT,ERR,UNIT
  1. N LO,HI,SPEC,PRV,VDATE,RESDT,RES,IEN2,COMM,COMM2,COMM3
  1. K ^TMP("BTIULO",$J)
  1. S TIUCNT=$G(TIUCNT)
  1. S LAB=$O(^LAB(60,"B",TIUTST,0)) I LAB="" Q ""
  1. S CAPTION="Last "_TIUCNT_" "_$E(TIUTST,1,30)_": "
  1. S (VDT,CNT)=0
  1. F S VDT=$O(^AUPNVLAB("AA",DFN,LAB,VDT)) Q:('VDT)!(CNT=TIUCNT) D
  1. . S IEN=0
  1. . F S IEN=$O(^AUPNVLAB("AA",DFN,LAB,VDT,IEN)) Q:'IEN!(CNT=TIUCNT) D
  1. .. K TIU ;D ENP^XBDIQ1(9000010.09,IEN,".03:.05;1109;1201","TIU(")
  1. .. D GETS^DIQ(9000010.09,IEN_",","**","IE","TIU(","ERR")
  1. .. S IEN2=IEN_","
  1. .. S RES=$G(TIU(9000010.09,IEN2,.04,"E"))
  1. .. Q:RES="" ;skip if not resulted
  1. .. S DATE=TIU(9000010.09,IEN2,1201,"I")
  1. .. S VDATE=TIU(9000010.09,IEN2,.03,"I")
  1. .. S DATE2=$S(DATE]"":TIU(9000010.09,IEN2,1201,"E"),1:TIU(900010.09,IEN2,.03,"E"))
  1. .. S ABN=$G(TIU(9000010.09,IEN2,.05,"E"))
  1. .. S UNIT=$G(TIU(9000010.09,IEN2,1101,"E"))
  1. .. S LO=$G(TIU(9000010.09,IEN2,1104,"E"))
  1. .. S HI=$G(TIU(9000010.09,IEN2,1105,"E"))
  1. .. S SPEC=$G(TIU(9000010.09,IEN2,1103,"E"))
  1. .. S PRV=$G(TIU(9000010.09,IEN2,1202,"E"))
  1. .. S RESDT=$G(TIU(9000010.09,IEN2,1212,"E"))
  1. .. S COMM=$G(TIU(9000010.09,IEN2,1301,"E"))
  1. .. S COMM2=$G(TIU(9000010.09,IEN2,1302,"E"))
  1. .. S COMM3=$G(TIU(9000010.09,IEN2,1303,"E"))
  1. .. S CNT=CNT+1 ;increment counter
  1. .. S LGTH=$L($G(TIU(9000010.09,IEN2,.05))) ;PATCH 1003
  1. .. S ARR(DATE,IEN)=RES_" "_UNIT_" "_ABN_U_DATE2_U_LO_U_HI_U_SPEC_U_RESDT_U_COMM_U_COMM2_U_COMM3_U_PRV
  1. S CNT=0,LCNT=0,DATE=""
  1. ;IHS/MSC/MGH patch 1006 and 1010 change to check for CNT inside a date
  1. N VFILENUM,ARRAY,ABN,PATIENT
  1. S PATIENT=$$GET1^DIQ(2,DFN,.01)
  1. F S DATE=$O(ARR(DATE),-1) Q:DATE=""!(CNT>=TIUCNT) D
  1. . S IEN="" F S IEN=$O(ARR(DATE,IEN)) Q:'IEN!(CNT>=TIUCNT) D
  1. .. S LINE=$G(ARR(DATE,IEN)),CNT=CNT+1,LCNT=LCNT+1
  1. .. S Y=$S(CNT=1:CAPTION,1:$$SP($L(CAPTION)))
  1. .. S ^TMP("BTIULO",$J,LCNT,0)=Y_"Result: "_$P(LINE,U,1)
  1. .. I $P(LINE,U,3)'=""!($P(LINE,U,4)'=1) D
  1. ... S LCNT=LCNT+1
  1. ... S ^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_"Ref Range LO: "_$P(LINE,U,3)_" HI: "_$P(LINE,U,4)
  1. .. I $P(LINE,U,5)'="" S LCNT=LCNT+1,^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_"Specimen: "_$P(LINE,U,5)
  1. .. I $P(LINE,U,2)'="" S LCNT=LCNT+1,^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_"Collection Date: "_$P(LINE,U,2)
  1. .. I $P(LINE,U,6)'="" S LCNT=LCNT+1,^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_"Result Date: "_$P(LINE,U,6)
  1. .. S LCNT=LCNT+1,^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_"Patient: "_PATIENT
  1. .. I $P(LINE,U,10)'="" S LCNT=LCNT+1,^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_"Orderer: "_$P(LINE,U,10)
  1. .. I $P(LINE,U,7)'="" S LCNT=LCNT+1,^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_($P(LINE,U,7))
  1. .. I $P(LINE,U,8)'="" S LCNT=LCNT+1,^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_$P(LINE,U,8)
  1. .. I $P(LINE,U,9)'="" S LCNT=LCNT+1,^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_$P(LINE,U,9)
  1. .. ;Do new comments 1013
  1. ..I $D(^AUPNVLAB(IEN,21))>1 D
  1. ..S LCNT=LCNT+1,^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_"COMMENTS:"
  1. .. S X=0 F S X=$O(^AUPNVLAB(IEN,21,X)) Q:'+X D
  1. ...S LCNT=LCNT+1,^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_$G(^AUPNVLAB(IEN,21,X,0))
  1. .. S X="BLRREFLA" X ^%ZOSF("TEST") I $T D
  1. ... S VFILENUM=9000010.09
  1. ... D PCCRLADR^BLRREFLA(VFILENUM,IEN,.ARRAY)
  1. ... S LCNT=LCNT+1
  1. ... S ^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_"Source: "_ARRAY("NAME")
  1. ... S LCNT=LCNT+1
  1. ... S ^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_"Addr: "_ARRAY("ST1")
  1. ... S LCNT=LCNT+1
  1. ... S ^TMP("BTIULO",$J,LCNT,0)=$$SP($L(CAPTION))_ARRAY("CITY")_", "_ARRAY("STATE")_" "_ARRAY("ZIP")
  1. ..S LCNT=LCNT+1,^TMP("BTIULO",$J,LCNT,0)=""
  1. I '$D(^TMP("BTIULO",$J)) S ^TMP("BTIULO",$J,1,0)=CAPTION_"No Results Found"
  1. Q "~@^TMP(""BTIULO"",$J)"
  1. ;