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

BTPWRLAB.m

Go to the documentation of this file.
  1. BTPWRLAB ;VNGT/HS/ALA-Lab Result Report ; 05 Apr 2010 9:28 AM
  1. ;;1.2;CARE MANAGEMENT EVENT TRACKING;;Jul 07, 2017;Build 71
  1. ;
  1. EN(DATA,DFN,IEN) ; EP - BTPW LAB RESULT DISPLAY
  1. ; Description
  1. ; Generates a display of lab data
  1. ; Input
  1. ; DFN - Patient IEN
  1. ; IEN - Lab record IEN
  1. ;
  1. NEW ACCN,VISIT,LRDFN,TEST,LOC,NOD,NUM,PEC,DTM,QFL,DAT,NUN,VAL,DTYP,NAME,VEDAT,VEQFL
  1. NEW VEVL,VALUE,CSTAT,LC,VEDATA,NFL,PNL,CRES
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWRLAB",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWRLAB D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. D HDR
  1. ;
  1. S ACCN=$P($G(^AUPNVLAB(IEN,0)),U,6),VISIT=$P($G(^AUPNVLAB(IEN,0)),U,3)
  1. I $E(ACCN,1,2)="WH" D Q
  1. . S BWACN=$E(ACCN,3,$L(ACCN)),WHIEN=$O(^BWPCD("B",BWACN,"")) I WHIEN="" Q
  1. . D EN^BTPWRWHP(.DATA,WHIEN)
  1. S LRDFN=$P($G(^DPT(DFN,"LR")),U,1),TEST=$P($G(^AUPNVLAB(IEN,0)),U,1)
  1. I TEST="" G DONE
  1. ;I LRDFN="" G DONE
  1. S CSTAT=$$GET1^DIQ(9000010.09,IEN_",",1109,"E")
  1. S CRES=$$GET1^DIQ(9000010.09,IEN_",",.04,"E")
  1. S II=II+1,@DATA@(II)=" Current Status: "_CSTAT_$C(13)_$C(10)
  1. S II=II+1,@DATA@(II)=" Result: "_CRES_$C(13)_$C(10)
  1. S LOC=$P(^LAB(60,TEST,0),U,5),NOD=$P(LOC,";",1),NUM=$P(LOC,";",2),PEC=$P(LOC,";",3)
  1. I PEC="" S PEC=1
  1. I LOC="" S NOD=$P(^LAB(60,TEST,0),U,4)
  1. I LRDFN'="" D
  1. . S DTM=0,QFL=0,DAT=""
  1. . F S DTM=$O(^LR(LRDFN,NOD,DTM)) Q:DTM="" D Q:QFL
  1. .. I $P(^LR(LRDFN,NOD,DTM,0),U,6)=ACCN S QFL=1,DAT=DTM
  1. . I NUM="" S NUN=1
  1. . E S NUN=NUM-.005
  1. . I DAT'="" D
  1. .. F S NUN=$O(^LR(LRDFN,NOD,DAT,NUN)) Q:'NUN D
  1. ... I NOD="CH" D
  1. .... I $G(^LR(LRDFN,NOD,DAT,NUN))="" Q
  1. .... S VAL=$P(^LR(LRDFN,NOD,DAT,NUN),U,PEC)
  1. .... S DTYP=$P($G(^DD(63.04,NUN,0)),U,2),DTYP=$S(DTYP["N":"N",DTYP["S":"S",1:"F")
  1. .... S NAME=$P($G(^DD(63.04,NUN,0)),U,1)
  1. .... I DTYP="S" D
  1. ..... S VEDATA=$P(^DD(63.04,NUN,0),U,3),VEQFL=0
  1. ..... F I=1:1 S VEVL=$P(VEDATA,";",I) Q:VEVL="" D Q:VEQFL
  1. ...... S VALUE=$P(VEVL,":",2) I VAL=$P(VEVL,":",1) S VEQFL=1,VAL=VALUE
  1. .... S II=II+1,@DATA@(II)=" "_NAME_$S(NAME[":":" ",1:": ")_VAL_$C(13)_$C(10)
  1. S LC=0
  1. F S LC=$O(^AUPNVLAB(IEN,21,LC)) Q:'LC S II=II+1,@DATA@(II)=^AUPNVLAB(IEN,21,LC,0)_$C(13)_$C(10)
  1. ; check if lab is a panel
  1. S PNL=$O(^LAB(60,TEST,2,0))
  1. I PNL D
  1. . NEW PIEN,LIEN,PLAB
  1. . K MEM
  1. . S PIEN=0 F S PIEN=$O(^LAB(60,TEST,2,PIEN)) Q:'PIEN S PLAB=$P(^LAB(60,TEST,2,PIEN,0),U,1),MEM(PLAB)=""
  1. . S LIEN="",NFL=0
  1. . F S LIEN=$O(^AUPNVLAB("AD",VISIT,LIEN)) Q:LIEN="" D Q:NFL
  1. .. ;S PLAB=$P(^AUPNVLAB(LIEN,0),U,1) I '$D(MEM(PLAB)) Q
  1. .. I $P($G(^AUPNVLAB(LIEN,0)),U,6)'=ACCN Q
  1. .. ;I $P(^AUPNVLAB(LIEN,0),U,4)'="FINAL" Q
  1. .. S LC=0
  1. .. I $O(^AUPNVLAB(LIEN,21,LC))'="" S II=II+1,@DATA@(II)="NOTE: "_$C(13)_$C(10)
  1. .. F S LC=$O(^AUPNVLAB(LIEN,21,LC)) Q:'LC S II=II+1,@DATA@(II)=^AUPNVLAB(LIEN,21,LC,0)_$C(13)_$C(10),NFL=1
  1. S II=II+1,@DATA@(II)=$C(30)
  1. ;
  1. DONE ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. HDR ;
  1. S @DATA@(II)="T01024REPORT_TEXT"_$C(30)
  1. Q
  1. ;
  1. ERR ;
  1. D ^%ZTER
  1. NEW Y,ERRDTM
  1. S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
  1. S BMXSEC="Recording that an error occurred at "_ERRDTM
  1. S II=II+1,@DATA@(II)=$C(31)
  1. I $$TMPFL^BQIUL1("C")
  1. Q