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

BLRTNORD.m

Go to the documentation of this file.
  1. BLRTNORD ;DATA RETRIVAL FROM LAB ORDER FOR TRANSACTION LOG ENTRY [ 09/06/2002 7:09 AM ]
  1. ;;5.2;LR;**1013**;JUL 30, 2002
  1. ;
  1. ;
  1. Q ;EP PARAM CALL
  1. ;ORDER is the order number from ORDER/TEST STATUS in lab
  1. ;or 'C' cross reference from file 69
  1. ORDER(ORDER) ;EP ORDER NUMBER PASSED
  1. ;returns ORDER IEN IN DT;SEQ^DT;SEQ^ if successful, -1 if not
  1. ;
  1. N X,Y
  1. S BLR="",X=0,U="^" F S X=$O(^LRO(69,"C",ORDER,X)) Q:+X=0 D
  1. . S Y=0 F S Y=$O(^LRO(69,"C",ORDER,X,Y)) Q:+Y=0 S BLR=BLR_X_";"_Y_"^"
  1. Q:'$L(BLR) -1
  1. Q BLR
  1. ;
  1. OLOCIEN(ORDDT,ORDIEN) ;EP ORDERING LOCATION IEN
  1. ;returns HOSP LOCATION IEN^NAME^ABBR^INST44^INST69 or -1
  1. N IEN,NAME,ABBR,INST44,INST69,CLSTOP,CLSTOPN
  1. S IEN=$P($G(^LRO(69,ORDDT,1,ORDIEN,0)),U,9) Q:'IEN -1
  1. S ABBR=$P($G(^LRO(69,ORDDT,1,ORDIEN,0)),U,7)
  1. S INST69=$P($G(^LRO(69,ORDDT,1,ORDIEN,1)),U,8)
  1. S NAME=$P($G(^SC(IEN,0)),U,1)
  1. S INST44=$P($G(^SC(IEN,0)),U,4)
  1. S CLSTOP=$P($G(^SC(IEN,0)),U,7)
  1. S:+CLSTOP CLSTOPN=$P($G(^DIC(40.7,CLSTOP,0)),U,1)
  1. Q IEN_U_NAME_U_ABBR_U_INST44_U_INST69_U_CLSTOP_U_CLSTOPN
  1. ;
  1. OENPRIEN(ORDDT,ORDIEN) ;EP ENCOUNTER PROVIDER IEN
  1. ;returns PROVIDER(VA200)IEN^NAME^ or -1
  1. N IEN,NAME
  1. S IEN=$P($G(^LRO(69,ORDDT,1,ORDIEN,0)),U,2) Q:'IEN -1
  1. S NAME=$P($G(^VA(200,IEN,0)),U,1)
  1. Q IEN_U_NAME
  1. ;
  1. OPROVIEN(ORDDT,ORDIEN) ;EP ORDERING PROVIDER IEN
  1. ;returns PROVIDER(VA200)IEN^NAME^ or -1
  1. N IEN,NAME
  1. S IEN=$P($G(^LRO(69,ORDDT,1,ORDIEN,0)),U,6) Q:'IEN -1
  1. S NAME=$P($G(^VA(200,IEN,0)),U,1)
  1. Q IEN_U_NAME
  1. ;
  1. OCOLLIEN(ORDDT,ORDIEN) ;EP ORDERING COLLECTION SAMPLE IEN
  1. ;returns COLLECTION IEN^NAME^ or -1
  1. N IEN,NAME
  1. S IEN=$P($G(^LRO(69,ORDDT,1,ORDIEN,0)),U,3) Q:'IEN -1
  1. S NAME=$P($G(^LAB(62,IEN,0)),U,1)
  1. Q IEN_U_NAME
  1. ;
  1. OSITEIEN(ORDDT,ORDIEN) ;EP ORDERING SITE/SPECIMEN IEN
  1. ;returns SITE/SPECIMEN IEN^NAME^ MULTIPLE or -1
  1. N IEN,NAME,X,Y
  1. S IEN="",X=0 F S X=$O(^LRO(69,ORDDT,1,ORDIEN,4,X)) Q:+X=0 D
  1. . S Y=$P($G(^LRO(69,ORDDT,1,ORDIEN,4,X,0)),U,1)
  1. . S IEN=IEN_Y_";"_$P($G(^LAB(61,Y,0)),U,1)_"^"
  1. Q:'$L(IEN) -1
  1. Q IEN
  1. ;
  1. OTEST(ORDDT,ORDIEN) ;EP ORDERING TEST IEN
  1. ;returns TEST(60)IEN;NAME;URG^ MULTIPLE or -1
  1. N IEN,NAME,X,Y,URG
  1. S IEN="",X=0 F S X=$O(^LRO(69,ORDDT,1,ORDIEN,2,X)) Q:+X=0 D
  1. . S Y=$P($G(^LRO(69,ORDDT,1,ORDIEN,2,X,0)),U,1)
  1. . S URG=$P($G(^LRO(69,ORDDT,1,ORDIEN,2,X,0)),U,2)
  1. . S IEN=IEN_Y_";"_$P($G(^LAB(60,Y,0)),U,1)_";"_URG_"^"
  1. Q:'$L(IEN) -1
  1. Q IEN
  1. ;
  1. OTESTIEN(ORDDT,ORDIEN) ;EP ORDERING TEST LIST
  1. ;returns TEST(60)IEN;NAME;PARENTTEST(60);URG^ MULTIPLE or -1
  1. N IEN,NAME,X,X1,Y,Y1,Y2,Y3,Y4,Y5,PARENT,URG,BLRT,BLRSUB
  1. TESTD ;K BLRSUB,IEN,BLRT S ORDDT=2990811,ORDIEN=1
  1. S IEN="",(X,X1)=0 F S X=$O(^LRO(69,ORDDT,1,ORDIEN,2,X)) Q:+X=0 S (Y,Y0)=$P($G(^LRO(69,ORDDT,1,ORDIEN,2,X,0)),U,1) D
  1. . S URG=$P($G(^LRO(69,ORDDT,1,ORDIEN,2,X,0)),U,2)
  1. . S X1=$$TESTIEN(Y,"",URG) D SUB I +SUBC S X=0 F S X=$O(SUB(X)) Q:+X=0 S X1=$$TESTIEN(X,Y,URG) S BLRSUB(Y,X)=""
  1. S Y=0 F S Y=$O(BLRSUB(Y)) Q:+Y=0 S Y1=0 F S Y1=$O(BLRSUB(Y,Y1)) Q:+Y1=0 S Y0=Y1 D SUB I +SUBC S X=0 F S X=$O(SUB(X)) Q:+X=0 S X1=$$TESTIEN(X,Y1,URG) S BLRSUB(Y,Y1,X)=""
  1. S Y=0 F S Y=$O(BLRSUB(Y)) Q:+Y=0 S Y1=0 F S Y1=$O(BLRSUB(Y,Y1)) Q:+Y1=0 S Y2=0 F S Y2=$O(BLRSUB(Y,Y1,Y2)) Q:+Y2=0 S Y0=Y2 D SUB I +SUBC S X=0 F S X=$O(SUB(X)) Q:+X=0 S X1=$$TESTIEN(X,Y2,URG) S BLRSUB(Y,Y1,Y2,X)=""
  1. S Y=0 F S Y=$O(BLRSUB(Y)) Q:+Y=0 S Y1=0 F S Y1=$O(BLRSUB(Y,Y1)) Q:+Y1=0 S Y2=0 F S Y2=$O(BLRSUB(Y,Y1,Y2)) Q:+Y2=0 D
  1. . S Y3=0 F S Y3=$O(BLRSUB(Y,Y1,Y2,Y3)) Q:+Y3=0 S Y0=Y3 D SUB I +SUBC S X=0 F S X=$O(SUB(X)) Q:+X=0 S X1=$$TESTIEN(X,Y3,URG) S BLRSUB(Y,Y1,Y2,Y3,X)=""
  1. S Y=0 F S Y=$O(BLRSUB(Y)) Q:+Y=0 S Y1=0 F S Y1=$O(BLRSUB(Y,Y1)) Q:+Y1=0 S Y2=0 F S Y2=$O(BLRSUB(Y,Y1,Y2)) Q:+Y2=0 S Y3=0 F S Y3=$O(BLRSUB(Y,Y1,Y2,Y3)) Q:+Y3=0 D
  1. . S Y4=0 F S Y4=$O(BLRSUB(Y,Y1,Y2,Y3,Y4)) Q:+Y4=0 S Y0=Y4 D SUB I +SUBC S X=0 F S X=$O(SUB(X)) Q:+X=0 S X1=$$TESTIEN(X,Y4,URG) S BLRSUB(Y,Y1,Y2,Y3,Y4,X)=""
  1. S Y=0 F S Y=$O(BLRSUB(Y)) Q:+Y=0 S Y1=0 F S Y1=$O(BLRSUB(Y,Y1)) Q:+Y1=0 S Y2=0 F S Y2=$O(BLRSUB(Y,Y1,Y2)) Q:+Y2=0 S Y3=0 F S Y3=$O(BLRSUB(Y,Y1,Y2,Y3)) Q:+Y3=0 D
  1. . S Y4=0 F S Y4=$O(BLRSUB(Y,Y1,Y2,Y3,Y4)) Q:+Y4=0 S Y5=0 F S Y5=$O(BLRSUB(Y,Y1,Y2,Y3,Y4,Y5)) Q:+Y5=0 S Y0=Y5 D SUB I +SUBC S X=0 F S X=$O(SUB(X)) Q:+X=0 S X1=$$TESTIEN(X,Y5,URG) S BLRSUB(Y,Y1,Y2,Y3,Y4,Y5,X)=""
  1. Q:'$L(IEN) -1
  1. Q IEN
  1. ;
  1. SUB ;FINDS SUB TESTS
  1. K SUB
  1. S (SUB,SUBC)=0 F S SUB=$O(^LAB(60,Y0,2,SUB)) Q:+SUB=0 S:$D(^LAB(60,Y0,2,SUB,0)) SUB($P($G(^LAB(60,Y0,2,SUB,0)),U))="",SUBC=SUBC+1
  1. Q
  1. TESTIEN(Y0,X1,URG) ;
  1. I $D(BLRT(Y0)) Q 1
  1. S IEN=IEN_Y0_";"_$P($G(^LAB(60,Y0,0)),U,1)_";"_X1_";"_URG_"^"
  1. S BLRT(Y0)=""
  1. Q 1
  1. ;
  1. ODATE(ORDDT,ORDIEN) ;EP ORDERING DATE/TIME
  1. ;returns ORDER DATE/TIME^COLL DATE^ACC DATE^RESULTED DATE^EST COLL DATE or -1
  1. N ODATE,CDATE,ADATE,RDATE,ECDATE
  1. S ODATE=$P($G(^LRO(69,ORDDT,1,ORDIEN,0)),U,5) Q:'ODATE -1
  1. S CDATE=$P($G(^LRO(69,ORDDT,1,ORDIEN,1)),U,1)
  1. S ADATE=$P($G(^LRO(69,ORDDT,1,ORDIEN,3)),U,1)
  1. S RDATE=$P($G(^LRO(69,ORDDT,1,ORDIEN,3)),U,2)
  1. S ECDATE=$P($G(^LRO(69,ORDDT,1,ORDIEN,0)),U,8)
  1. Q ODATE_U_CDATE_U_ADATE_U_RDATE_U_ECDATE
  1. ;
  1. LRDFN(ORDDT,ORDIEN) ;EP LRDFN
  1. ;returns LRDFN^LRFILE^POINTER IEN^NAME
  1. N LRDFN,LRFILE,DFN,NAME
  1. S LRDFN=$P($G(^LRO(69,ORDDT,1,ORDIEN,0)),U,1) Q:'LRDFN -1
  1. S LRFILE=$P($G(^LR(LRDFN,0)),U,2)
  1. S DFN=$P($G(^LR(LRDFN,0)),U,3)
  1. S:LRFILE=2 NAME=$P($G(^DPT(DFN,0)),U,1)
  1. S:LRFILE=62.3 NAME=$P($G(^LAB(62.3,DFN,0)),U,1)
  1. S:LRFILE=67 NAME=$P($G(^LRT(67,DFN,0)),U,1)
  1. S:LRFILE=67.1 NAME=$P($G(^LRT(67.1,DFN,0)),U,1)
  1. S:LRFILE=67.2 NAME=$P($G(^LRT(67.2,DFN,0)),U,1)
  1. S:LRFILE=67.3 NAME=$P($G(^LRT(67.3,DFN,0)),U,1)
  1. Q LRDFN_U_LRFILE_U_DFN_U_NAME
  1. ;
  1. TEST ;TEST FUNCTIONS
  1. S ORDER=5840
  1. S BLR=$$ORDER(ORDER) W !,BLR
  1. S BLR=$P(BLR,U,1)
  1. S ORDDT=$P(BLR,";",1),ORDIEN=$P(BLR,";",2)
  1. W !,"LRDFN = ",$$LRDFN(ORDDT,ORDIEN),!
  1. W "LOC = ",$$OLOCIEN(ORDDT,ORDIEN),!
  1. W "PROV = ",$$OPROVIEN(ORDDT,ORDIEN),!
  1. W "ENPROV= ",$$OENPRIEN(ORDDT,ORDIEN),!
  1. W "ODATE = ",$$ODATE(ORDDT,ORDIEN),!
  1. W "COLL = ",$$OCOLLIEN(ORDDT,ORDIEN),!
  1. W "SITE = ",$$OSITEIEN(ORDDT,ORDIEN),!
  1. W "TEST = ",$$OTESTIEN(ORDDT,ORDIEN),!
  1. Q