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

CIAZPLMI.m

Go to the documentation of this file.
  1. CIAZPLMI ;CIA/PLS - PCC Hook for Lab- Micro Data - Results ;13-Sep-2004 14:20;PLS
  1. ;;1.1;VUECENTRIC RPMS SUPPORT;;Sep 14, 2004
  1. ;;Copyright 2000-2004, Clinical Informatics Associates, Inc.
  1. ;=================================================================
  1. RE ; Result Message
  1. N EXEC,GBL,VAL0,LRDFN,LRIDT,CULT,RESETIEN
  1. ;
  1. S LRDFN=$$LRDFN^LR7OR1($G(DFN))
  1. Q:'LRDFN
  1. S LRIDT=$P(LABORDF,";",5)
  1. ; Determine MI Test Type
  1. S EXEC=$P($G(^LAB(60,TST,0)),U,14) ; Edit Code
  1. ; First Field number in Execute Code entry
  1. S GBL=$P($P($P($G(^LAB(62.07,EXEC,.1)),"/"),"=",2),"""",2)
  1. ; Get MI subfield number subscript
  1. S GBL=$P($P($G(^DD(63.05,GBL,0)),U,4),";",1)
  1. S VAL0=$G(^LR(LRDFN,"MI",LRIDT,GBL))
  1. Q:$P(VAL0,U,2)'="F" ; Only process FINAL results
  1. S CULT=TST,RESETIEN=0,VSTAT="R"
  1. S (ORG,ATB)=""
  1. S PTST=TST
  1. I TST D
  1. .I GBL=1 D BACT Q
  1. .I GBL=5 D PARA Q
  1. .I GBL=8 D MYCO Q
  1. .I GBL=11 D TB Q
  1. .I GBL=16 D VIROL Q
  1. Q
  1. ; Add to PCC array
  1. ADD(X,Y) ;
  1. I +$G(Y) D
  1. .S PCC(Y)=X
  1. E S PCC=$G(PCC)+1,PCC(PCC)=X
  1. Q
  1. ; Find a node in PCC array
  1. FINDNODE(ARY,VAL) ;
  1. N LP
  1. S LP=0 F S LP=$O(ARY(LP)) Q:'LP Q:$E(ARY(LP),1,$L(VAL))=VAL
  1. Q $S(LP:LP,1:-1)
  1. ; Return specified segment, starting at line LP
  1. SEG(TYP,LP) ;
  1. F S LP=$O(MSG(LP)) Q:'LP Q:$E(MSG(LP),1,$L(TYP))=TYP
  1. Q $S(LP:MSG(LP),1:"")
  1. ;
  1. BACT ;
  1. N NOD3
  1. S RES="NEGATIVE"
  1. S NOD3=$G(^LR(LRDFN,"MI",LRIDT,3,0))
  1. I '$P(NOD3,U,3),'$P(NOD3,U,4) D Q
  1. .D SETADD
  1. S RES="POSITIVE" D SETADD
  1. D ORG(3)
  1. Q
  1. ;
  1. PARA ;
  1. N NOD6
  1. S RES="NEGATIVE"
  1. S NOD6=$G(^LR(LRDFN,"MI",LRIDT,6,0))
  1. I '$P(NOD6,U,3) D Q
  1. .D SETADD
  1. S RES="POSITIVE" D SETADD
  1. D ORG(6)
  1. Q
  1. ;
  1. MYCO ;
  1. N NOD9
  1. S RES="NEGATIVE"
  1. S NOD9=$G(^LR(LRDFN,"MI",LRIDT,9,0))
  1. I '$P(NOD9,U,3) D Q
  1. .D SETADD
  1. S RES="POSITIVE" D SETADD
  1. D ORG(9)
  1. Q
  1. ;
  1. TB ;
  1. N NOD12
  1. I $P(VAL0,U,3)'=""!($P(VAL0,U,4)'="") D AFSTN
  1. I CULT=TST,$L(RES) Q
  1. S TST=CULT
  1. S RES="NEGATIVE"
  1. S NOD12=$G(^LR(LRDFN,"MI",LRIDT,12,0))
  1. I '$P(NOD12,U,3) D Q
  1. .D SETADD
  1. S RES="POSITIVE" D SETADD
  1. D ORG(12)
  1. Q
  1. ;
  1. AFSTN ;
  1. N TST
  1. S TST=$O(^LAB(60,"B","ACID FAST STAIN","")) I 'TST S TST=$O(^LAB(60,"B","AFB SMEAR",""))
  1. Q:'TST
  1. S RES=$P(VAL0,U,3) S:$L(RES)&($L($P(VAL0,U,4))) RES=RES_";"_$P(VAL0,U,4)
  1. S:RES="" RES=$P(VAL0,U,4)
  1. D SETADD
  1. Q
  1. VIROL ;
  1. N NOD17
  1. S RES="NEGATIVE"
  1. S NOD17=$G(^LR(LRDFN,"MI",LRIDT,17))
  1. I '$P(NOD9,U,3) D Q
  1. .D SETADD
  1. S RES="POSITIVE" D SETADD
  1. D ORG(17)
  1. Q
  1. ;
  1. ORG(LEVEL) ;
  1. N OLP
  1. S OLP=0 F S OLP=$O(^LR(LRDFN,"MI",LRIDT,LEVEL,OLP)) Q:'OLP D ; Sets naked reference
  1. .S ORG=^(OLP,0),RES=$P(ORG,U,2),ORG=+ORG
  1. .S RESETIEN=1,ATB=""
  1. .D SETADD
  1. .S RESETIEN=0
  1. .I LEVEL=6 D
  1. ..D PSTG
  1. .E I LEVEL'=17 D
  1. ..D ATB
  1. Q
  1. ;
  1. ATB ;
  1. N ALP
  1. S ALP=1 F S ALP=$O(^LR(LRDFN,"MI",LRIDT,LEVEL,OLP,ALP)) Q:'ALP D ; Sets naked reference
  1. .S RES=$P(^(ALP),U)
  1. .I LEVEL'=11 D
  1. ..S ATB=$O(^LAB(62.06,"AD",ALP,""))
  1. .E D
  1. ..S ATB=$$TBATB(ALP)
  1. .D:ATB SETADD
  1. Q
  1. ; Return TB Antibiotic IEN
  1. TBATB(ANTIB) ;
  1. S ATB=0
  1. S ATBN=$O(^DD(63.39,"GL",ANTIB,1,""))
  1. Q:'ATBN 0
  1. S ATBN=$P($G(^DD(63.39,ATBN,0)),U)
  1. S ATB=$$FIND1^DIC(62.06,,"MX",ATBN)
  1. Q $S(ATB>0:ATB,1:0)
  1. ;
  1. PSTG ;
  1. N SLP,STG
  1. S SLP=$O(^LR(LRDFN,"MI",LRIDT,LEVEL,OLP,1,STG)) Q:'STG D
  1. .S STG=^LR(LRDFN,"MI",LRIDT,LEVEL,OLP,1,STG)
  1. .S RES=$P(STG,U,2),STG=$P(STG,U)
  1. .D SETADD
  1. Q
  1. SETADD ;
  1. D ADD(ACT_U_TST_U_FLN_U_VSTAT_U_ACC_U_LABORDF_U_ODT_U_CDT_U_PRV_U_TCST_U_SPEC_U_COLSPL_U_RES_U_CMPDT_U_AFLG_U_UNITS_U_RLOW_U_RHIGH_U_ORG_U_ATB_U_RESETIEN)
  1. Q