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

MMRSCRE3.m

Go to the documentation of this file.
  1. MMRSCRE3 ;LEIDOS/TCK - Print CRE Report Cont. (Contains functions to collect patient labs and swabbing rate) ; 3/3/17 10:47am
  1. ;;1.0;MDRO PROGRAM TOOLS;**4,5**;Jun 01, 2016;Build 146
  1. ;
  1. GETLABS ;Gets all lab data for the report.
  1. N LRMDRO,LOC,INDT,DFN,OUTDT,NARES24,NARES48,SURV48,CULT48,MRSA365,CULT365,KNOWMRSA,KNOWCULT,NARES24A,NARES48ASURV48A,NARES48A
  1. N MRSAFR,MRSATO,MRSA365A,CULT365A,SURV48A,NARES24D,NARES48D,SURV48D,MRSACPRD,TRANS,MMRSNOW
  1. N CNTR
  1. S CNTR=0
  1. S MMRSNOW=$$NOW^XLFDT(),LREND=MMRSNOW
  1. S LRMDRO="",LRMDRO=$O(^MMRS(104.2,"B","CRB-R",LRMDRO))
  1. S ^TMP($J,"MMRSCRE","DSUM")="0^0^0^0^0^0^0^0^0"
  1. S LOC="" F S LOC=$O(^TMP($J,"MMRSCRE","D",LOC)) Q:LOC="" D
  1. .S ^TMP($J,"MMRSCRE","DSUM",LOC)="0^0^0^0^0^0^0^0^0"
  1. .S DFN=0 F S DFN=$O(^TMP($J,"MMRSCRE","D",LOC,DFN)) Q:'DFN D
  1. ..S INDT="" F S INDT=$O(^TMP($J,"MMRSCRE","D",LOC,DFN,INDT)) Q:'INDT D
  1. ...S DIV="",DIV=$O(^DG(40.8,"B",LOC,DIV))
  1. ...I DIV'="" S MDIV="",MDIV=$O(^MMRS(104,"B",DIV,MDIV))
  1. ...Q:$G(MDIV)'>0
  1. ...S (CR,MRSA)=""
  1. ...S LOCSUM=$G(^TMP($J,"MMRSCRE","DSUM",LOC))
  1. ...S SUM=$G(^TMP($J,"MMRSCRE","DSUM"))
  1. ...S DATA=$G(^TMP($J,"MMRSCRE","D",LOC,DFN,INDT))
  1. ...S OUTDT=$P(DATA,"^",10)
  1. ...S ORDLOC=$P(^TMP($J,"MMRSCRE","D",LOC,DFN,INDT),"^")
  1. ...I $G(ORDLOC)'="" S ORDLOC=$$GET1^DIQ(42,ORDLOC,.01,"E")
  1. ...I $P(DATA,U,5)=1 D
  1. ....S $P(^TMP($J,"MMRSCRE","DSUM",LOC),U,1)=$P(LOCSUM,U,1)+1,$P(^TMP($J,"MMRSCRE","DSUM"),U,1)=$P(SUM,U,1)+1
  1. ...S MRSA=$$GETLAB(DFN,INDT,LRMDRO,LREND,"CD")
  1. ...S (CR,I,COLDT)="",DONE=0
  1. ...Q:MRSA=""
  1. ...S CR=$P($P(MRSA,"^",2),";") I CR="" S CR="NEG"
  1. ...Q:CR=""
  1. ...S DTA=$P(MRSA,"^",2),LRD=$P(DTA,";",2),LRDT=$P(DTA,";",3),LIEN=LRDT_","_LRD_","
  1. ...S LIENS=LRDT_","_LRD_","
  1. ...S COLDT=$$GET1^DIQ(63.05,LIEN,.01,"I")
  1. ...S SRCE=$P(MRSA,"^",3)
  1. ...Q:SRCE=""
  1. ...S SVC="N",CC="Y"
  1. ...S DATA=$G(^TMP($J,"MMRSCRE","D",LOC,DFN,INDT))
  1. ...Q:DATA=""
  1. ...S ADMDT=$P(DATA,"^",3),MOVMENT=$P(DATA,"^",4)
  1. ...S DTA=$P(MRSA,"^",2),LRD=$P(DTA,";",2),LRDT=$P(DTA,";",3),LRSS=$P(DTA,";",4),NEG=$P(DTA,";")
  1. ...S LIENS=LRDT_","_LRD_","
  1. ...S COLDT=$$GET1^DIQ(63.05,LIENS,.01,"I")
  1. ...I $G(MOVMENT)>0 D
  1. ....S TRNACT=$P(DATA,U,5) ;$$GET1^DIQ(405,MOVMENT,.02,"E")
  1. ....I TRNACT'=1 S DONE=1 Q ;"ADMISSION"
  1. ....;S DSCHRGE=$$GET1^DIQ(405,MOVMENT,.17,"I")
  1. ....S DSCHRGE=OUTDT ;$$GET1^DIQ(405,DSCHRGE,.01,"I")
  1. ....I $G(DSCHRGE)'="" D
  1. .....S DTA=$P(MRSA,"^",2),LRD=$P(DTA,";",2),LRDT=$P(DTA,";",3),LRSS=$P(DTA,";",4),NEG=$P(DTA,";")
  1. .....Q:$G(DTA)=""
  1. .....S LIENS=LRDT_","_LRD_","
  1. .....S COLDT=$$GET1^DIQ(63.05,LIENS,.01,"I")
  1. .....I DSCHRGE<COLDT D
  1. ......K ^TMP($J,"MMRSCRE","D",LOC,DFN,INDT)
  1. ......K ^TMP($J,"MMRSCRE","DETAIL",LOC,INDT)
  1. ......K LIENS S DONE=1
  1. ...Q:DONE
  1. ...I $D(^MMRS(104,MDIV,61,"B",SRCE)) S SVC="Y",CC="N"
  1. ...I $D(^TMP($J,"MMRSCRE","D",LOC,DFN,INDT)) D
  1. ....S DATA=$G(^TMP($J,"MMRSCRE","D",LOC,DFN,INDT))
  1. ....S ACT=$P(DATA,"^",5)
  1. ....Q:$P(^TMP($J,"MMRSCRE","D",LOC,DFN,INDT),"^",13)=""
  1. ....S DTA=$P(MRSA,"^",2),LRD=$P(DTA,";",2),LRDT=$P(DTA,";",3),LRSS=$P(DTA,";",4),NEG=$P(DTA,";")
  1. ....Q:$G(DTA)=""
  1. ....S LIENS=LRDT_","_LRD_","
  1. ....S COLDT=$$GET1^DIQ(63.05,LIENS,.01,"I")
  1. ....S X=$$FMDIFF^XLFDT(COLDT,INDT,3),X=$P(X," ")
  1. ....I X>2!('CR) D Q
  1. .....K MRSA
  1. .....I $D(^TMP($J,"MMRSCRE","DETAIL",LOC,INDT)) K ^TMP($J,"MMRSCRE","DETAIL",LOC,INDT)
  1. ....S SURV=$P(^TMP($J,"MMRSCRE","D",LOC,INDT,DFN),"^",13)
  1. ....I SURV=SVC K MRSA(I) Q
  1. ....I SURV'=SVC S $P(^TMP($J,"MMRSCRE","D",LOC,DFN,INDT),"^",13)="N",$P(^TMP($J,"MMRSCRE","D",LOC,DFN,INDT),"^",14)="Y" K MRSA(I)
  1. ...Q:$G(MRSA)=""
  1. ...I CR["POS",'PFLG D
  1. ....Q:$D(^TMP($J,"MMRSCRE","DETAIL",LOC,INDT))
  1. ....S ^TMP($J,"MMRSCRE","DETAIL",LOC,INDT)=$P(^TMP($J,"MMRSCRE","D",LOC,DFN,INDT),U,6,9)
  1. ...I CR["POS",$D(^TMP($J,"MMRSCRE","DETAIL",LOC,INDT)),$P(^TMP($J,"MMRSCRE","DETAIL",LOC,INDT),U,13)="",'PFLG S ^TMP($J,"MMRSCRE","DETAIL",LOC,INDT)=^TMP($J,"MMRSCRE","DETAIL",LOC,INDT)_U_COLDT_U_SRCE_U_SVC_U_CC_U_CR
  1. ...S MRSAFR=(INDT-10000) I STRTDT>INDT S MRSAFR=(STRTDT-10000) ;(ADM - 1 year) or (START DT - 1 year) - whichever is later
  1. ...D PREV ;Calculate prevalence measures
  1. S X=""
  1. Q
  1. ;
  1. PREV ;Calculate prevalence measures (summary report)
  1. N LOCSUM,SUM,DATA,IND
  1. S LOCSUM=$G(^TMP($J,"MMRSCRE","DSUM",LOC))
  1. S SUM=$G(^TMP($J,"MMRSCRE","DSUM"))
  1. S DATA=$G(^TMP($J,"MMRSCRE","D",LOC,DFN,INDT))
  1. I $P(DATA,U,5)'>2 D
  1. .Q:MRSA'[";"
  1. .S DTA=$P(MRSA,"^",2),LRD=$P(DTA,";",2),LRDT=$P(DTA,";",3),LRSS=$P(DTA,";",4),NEG=$P(DTA,";")
  1. .Q:$G(DTA)=""
  1. .S LIENS=LRDT_","_LRD_","
  1. .S COLDT=$$GET1^DIQ(63.05,LIENS,.01,"I")
  1. .Q:COLDT>ENDDT
  1. .Q:COLDT<INDT
  1. .S X=$$FMDIFF^XLFDT(COLDT,INDT,3),X=$P(X," ")
  1. .I X<3 D
  1. ..I SVC="Y" D
  1. ...S $P(^TMP($J,"MMRSCRE","DSUM",LOC),U,2)=$P(LOCSUM,U,2)+1,$P(^TMP($J,"MMRSCRE","DSUM"),U,2)=$P(SUM,U,2)+1
  1. ...I NEG="POS",'PFLG D
  1. ....S $P(^TMP($J,"MMRSCRE","DSUM",LOC),U,3)=$P(LOCSUM,U,3)+1,$P(^TMP($J,"MMRSCRE","DSUM"),U,3)=$P(SUM,U,3)+1
  1. ....S $P(^TMP($J,"MMRSCRE","DSUM",LOC),U,8)=$P(LOCSUM,U,8)+1,$P(^TMP($J,"MMRSCRE","DSUM"),U,8)=$P(SUM,U,8)+1
  1. ..I SVC="N",NEG="POS",'PFLG D
  1. ...S $P(^TMP($J,"MMRSCRE","DSUM",LOC),U,4)=$P(LOCSUM,U,4)+1,$P(^TMP($J,"MMRSCRE","DSUM"),U,4)=$P(SUM,U,4)+1
  1. ...S $P(^TMP($J,"MMRSCRE","DSUM",LOC),U,8)=$P(LOCSUM,U,8)+1,$P(^TMP($J,"MMRSCRE","DSUM"),U,8)=$P(SUM,U,8)+1
  1. .I X>2 D
  1. ..I SVC="Y" D
  1. ...S $P(^TMP($J,"MMRSCRE","DSUM",LOC),U,5)=$P(LOCSUM,U,5)+1,$P(^TMP($J,"MMRSCRE","DSUM"),U,5)=$P(SUM,U,5)+1
  1. ...I NEG["POS",'PFLG D
  1. ....S $P(^TMP($J,"MMRSCRE","DSUM",LOC),U,6)=$P(LOCSUM,U,6)+1,$P(^TMP($J,"MMRSCRE","DSUM"),U,6)=$P(SUM,U,6)+1
  1. ....S $P(^TMP($J,"MMRSCRE","DSUM",LOC),U,8)=$P(LOCSUM,U,8)+1,$P(^TMP($J,"MMRSCRE","DSUM"),U,8)=$P(SUM,U,8)+1
  1. ..I SVC="N",NEG["POS",'PFLG D
  1. ...S $P(^TMP($J,"MMRSCRE","DSUM",LOC),U,7)=$P(LOCSUM,U,7)+1,$P(^TMP($J,"MMRSCRE","DSUM"),U,7)=$P(SUM,U,7)+1
  1. ...S $P(^TMP($J,"MMRSCRE","DSUM",LOC),U,8)=$P(LOCSUM,U,8)+1,$P(^TMP($J,"MMRSCRE","DSUM"),U,8)=$P(SUM,U,8)+1
  1. K MRSA
  1. Q
  1. ;
  1. CLNARY(LOC,DFN,MRSA) ;
  1. N D,ST,VAL,XX,OUTDT
  1. ;Q:'$D(MRSA(1)
  1. S XX=9999,XX=$O(MRSA(XX),-1)
  1. S D="" F S D=$O(MRSA(D)) Q:D="" D
  1. .S IND=$P(MRSA(D),"^",4)
  1. .S RES=$P($P(MRSA(D),"^",2),";")
  1. .I RES=""!(RES["NEG") K MRSA(D) Q
  1. .Q:'$D(^TMP($J,"MMRSCRE","D",LOC,IND,DFN))
  1. .K ^TMP($J,"MMRSCRE","D",LOC,IND,DFN),MRSA(D)
  1. .S DTA=MRSA(D)
  1. .Q:DTA=""
  1. .S LRD=$P(DTA,";",2),LRDT=$P(DTA,";",3)
  1. .S DATA=$G(^TMP($J,"MMRSCRE","D",LOC,IND,DFN))
  1. .S ADMDT=$P(DATA,"^",3),MOVMENT=$P(DATA,"^",4)
  1. .S OUTDT=$P(DATA,"^",10)
  1. .S DSCHRG=OUTDT ;$$GET1^DIQ(405,MOVMENT,.17,"I")
  1. .;I $G(DSCHRG)>0 S DSCHRG=$$GET1^DIQ(405,MOVMENT,.01,"I")
  1. .I DSCHRG'="" D Q
  1. ..S LIENS=LRDT_","_LRD_","
  1. ..S COLDT=$$GET1^DIQ(63.05,LIENS,.01,"I")
  1. ..I DSCHRG<COLDT K ^TMP($J,"MMRSCRE","D",LOC,IND,DFN),MRSA(D) S DONE=1 Q
  1. .S A=D-1 I $D(MRSA(A)) K MRSA(D) Q
  1. Q
  1. GETLAB(DFN,LRSTART,LRMDRO,LREND,LRDTTYP) ;RETURN YES/NO^RESULT
  1. N LRRSLT,LRTST,TMPRSLT
  1. S LRRSLT="^",TMPRSLT=""
  1. I $G(DFN)=""!($G(LRMDRO)="")!($G(LRSTART)="")!($G(LREND)="") Q LRRSLT
  1. ;GET CH RSLTS
  1. I MDROETIO D
  1. .S TMPRSLT=$$GETMI(DFN,LRMDRO,LRSTART,LREND,LRDTTYP)
  1. I TSTSTP D
  1. .S LRTST=0 F S LRTST=$O(^TMP($J,"MMRSCRE","T",LRMDRO,LRTST)) Q:'LRTST D
  1. .S SUBS=$$GET1^DIQ(60,+LRTST,4,"I")
  1. .I SUBS="CH" S TMPRSLT=$$GETCH(DFN,LRMDRO,LRTST,LRSTART,LREND,LRDTTYP)
  1. Q TMPRSLT
  1. ;
  1. GETCH(DFN,LRMDRO,LRTST,LRSTART,LREND,LRDTTYP,MRSA) ;RETURN YES^RESULT
  1. N LRRSLT,LRDFN,LRDATE,LRRADEND,DAS,LRIDT,LRSITE,TSTRSLT,LRRAD
  1. S LRRSLT="^"
  1. S LRDFN=$$LRDFN^LR7OR1(DFN)
  1. Q:'LRDFN LRRSLT
  1. S LRDATE=LRSTART-.0000001
  1. I LRDTTYP="RAD" S LRDATE=0,LRRADEND=LREND,LREND=9999999
  1. F S LRDATE=$O(^PXRMINDX(63,"PI",DFN,+LRTST,LRDATE)) Q:'LRDATE!(LRDATE>LREND) D
  1. .Q:LRDATE>ENDDT
  1. .Q:LRDATE<STRTDT
  1. .S DAS=0 F S DAS=$O(^PXRMINDX(63,"PI",DFN,+LRTST,LRDATE,DAS)) Q:'DAS D
  1. ..S LRIDT=$P(DAS,";",3)
  1. ..I LRDTTYP="RAD" S LRRAD=$P($G(^LR(LRDFN,"CH",LRIDT,0)),U,3) I LRRAD<LRSTART!(LRRAD>LRRADEND) Q
  1. ..Q:LRDATE<STRTDT
  1. ..Q:LRDATE>ENDDT
  1. ..Q:$P($G(^LR(LRDFN,"CH",LRIDT,0)),U,3)=""
  1. ..;GET ORDER NUMBER FROM ORUT MODE
  1. ..S LRSITE=$P($G(^LR(LRDFN,"CH",LRIDT,0)),U,5)
  1. ..;Q:$$SCRNTOP(LRSITE,LRMDRO)
  1. ..;I $D(^LR(LRDFN,"CH",LRIDT,0)),$P(^LR(LRDFN,"CH",LRIDT,0),U,3) D
  1. ..S $P(LRRSLT,"^",1)="Y"
  1. ..S TSTRSLT=$$CHRSLT(LRDFN,LRIDT,LRMDRO,LRTST)
  1. ..I TSTRSLT["POS",(($P(LRRSLT,"^",2)="")!($P($P(LRRSLT,"^",2),";",3)>LRIDT)) D
  1. ..I ($P(LRRSLT,"^",2)="")!($P($P(LRRSLT,"^",2),";",3)>LRIDT) D
  1. ...S $P(LRRSLT,"^",2)=(TSTRSLT_";"_LRDFN_";"_LRIDT_";CH")
  1. ...S LIEN=LRIDT_","_LRDFN_","
  1. ...S SRCE=$$GET1^DIQ(63.04,LIEN,.05,"E")
  1. ...S LRRSLT=LRRSLT_"^"_$G(SRCE)
  1. Q LRRSLT
  1. ;
  1. GETMI(DFN,LRMDRO,LRSTART,LREND,LRDTTYP) ;RETURN YES^RESULT
  1. N LRRSLT,LRDFN,LRDATE,LRRADEND,DAS,LRIDT,LRSITE,TSTRSLT,LRRAD,LRIEND,CNTR
  1. S LRRSLT="^",CNTR=0
  1. I '$D(^TMP($J,"MMRSCRE","BACT",ORG,"INC_REMARK")),'$D(^TMP($J,"MMRSCRE","ETIOL",ORG)) Q LRRSLT
  1. S LRDFN=$$LRDFN^LR7OR1(DFN)
  1. Q:'LRDFN LRRSLT
  1. S LRIDT=(9999999-LREND)-.0000001
  1. S LRIEND=9999999-STRTDT
  1. I LRDTTYP="RAD" S LRIDT=0,LRIEND=99999999
  1. S (PFLG,DONE)=0
  1. F S LRIDT=$O(^LR(LRDFN,"MI",LRIDT)) Q:'LRIDT!(LRIDT>LRIEND) D Q:DONE
  1. .I LRDTTYP="RAD" S LRRAD=$P($G(^LR(LRDFN,"MI",LRIDT,0)),U,3) I LRRAD<LRSTART!(LRRAD>LREND) Q
  1. .S LRSITE=$P($G(^LR(LRDFN,"MI",LRIDT,0)),U,5)
  1. .S $P(LRRSLT,"^",1)="Y"
  1. .S TSTRSLT=$$MIRSLT(LRDFN,LRIDT,ORG)
  1. .I $P($G(^LR(LRDFN,"MI",LRIDT,1)),U,2)="P" S PFLG=1
  1. .I TSTRSLT="",$P(LRRSLT,"^")="Y" D
  1. ..S LIEN=LRIDT_","_LRDFN_","
  1. ..S SRCE=$$GET1^DIQ(63.05,LIEN,.05,"I")
  1. ..S TSTRSLT="NEG",$P(LRRSLT,"^",2)=(TSTRSLT_";"_LRDFN_";"_LRIDT_";MI")
  1. ..S LRRSLT=LRRSLT_"^"_$G(SRCE)_"^"_LRSTART,DONE=1 Q
  1. .I TSTRSLT["POS",(($P(LRRSLT,"^",2)="")!($P($P(LRRSLT,"^",2),";",3)>LRIDT)) D
  1. ..S $P(LRRSLT,"^",2)=(TSTRSLT_";"_LRDFN_";"_LRIDT_";MI")
  1. ..I $G(DATA)'="" S MOVMENT=$P(DATA,U,4)
  1. ..S DSCHMOV=$$GET1^DIQ(405,MOVMENT,.17,"I")
  1. ..S DSCHRGE=$G(OUTDT) ;$$GET1^DIQ(405,DSCHMOV,.01,"I")
  1. ..S LIEN=LRIDT_","_LRDFN_","
  1. ..S SRCE=$$GET1^DIQ(63.05,LIEN,.05,"I")
  1. ..S COLDT=$$GET1^DIQ(63.05,LIEN,.01,"I")
  1. ..I DSCHRGE>INDT,COLDT>DSCHRGE S LRRSLT="^" Q
  1. ..S LRRSLT=LRRSLT_"^"_$G(SRCE)_"^"_LRSTART
  1. ..I COLDT<LRSTART!(COLDT>ENDDT) S LRRSLT="^",TSTRSLT=LRRSLT Q
  1. ..S CNTR=$G(CNTR)+1
  1. ..S STOP=0
  1. ..S RLOC=$$GET1^DIQ(63.05,LIEN,.111,"I")
  1. ..S DIVLOC=$$GET1^DIQ(44,+RLOC,3.5,"E")
  1. ..;Q:DIVLOC'=LOC
  1. ..;S RLOC=$$GET1^DIQ(44,+RLOC,.01,"E")
  1. ..S RLOC=$$GET1^DIQ(63.05,LIEN,.111,"I"),RLOC=+RLOC,RLOC=$$GET1^DIQ(44,RLOC,.01,"E")
  1. ..I $G(RLOC)=ORDLOC,$G(CNTR)'>1,'$D(^MMRS(104,MDIV,61,"B",SRCE)) S DONE=1,STOP=1 Q
  1. ..I $G(RLOC)=ORDLOC,$G(CNTR)'>1 M TMPDATA(DFN)=LRRSLT S LRRSLT="^" Q
  1. ..I $G(RLOC)=ORDLOC,$G(CNTR)>1,'$D(^MMRS(104,MDIV,61,"B",SRCE)) D Q
  1. ...K TMPDATA S DONE=1 Q
  1. ..Q:STOP
  1. ..Q:DONE
  1. ..I $G(RLOC)'=ORDLOC S MOVMENT=$P(DATA,"^",4)
  1. ..I $G(MOVMENT)>0 D
  1. ...S WRDLOC=$$GET1^DIQ(405,MOVMENT,.06,"E")
  1. ...I WRDLOC=ORDLOC,$G(CNTR)'>1,'$D(^MMRS(104,MDIV,61,"B",SRCE)) S DONE=1 Q
  1. ...I WRDLOC=ORDLOC,$G(CNTR)'>1 M TMPDATA(DFN)=LRRSLT S LRRSLT="^"
  1. ...I WRDLOC=ORDLOC,$G(CNTR)>1,'$D(^MMRS(104,MDIV,61,"B",SRCE)) D
  1. ....K TMPDATA S DONE=1 Q
  1. ...I WRDLOC'=ORDLOC S (TSTRSLT,LRRSLT)="^"
  1. I $D(TMPDATA(DFN)) M LRRSLT=TMPDATA(DFN)
  1. Q LRRSLT
  1. ;
  1. CHRSLT(LRDFN,LRIDT,LRMDRO,LRTST) ;RETURNS 'POS' OR NULL STRING (IF NOT POSITIVE)
  1. N RESULT,LRLOC,LRND,LRPC,LRRES,LRIND,LRINDVAL,LRSPEC,LRLOW,LRHIG
  1. S RESULT=""
  1. S LRLOC=$P($G(^LAB(60,+LRTST,0)),U,5)
  1. S LRND=$P(LRLOC,";",2) Q:+LRND'>0 RESULT
  1. S LRPC=$P(LRLOC,";",3) Q:+LRPC'>0 RESULT
  1. S LRRES=$P($G(^LR(LRDFN,"CH",LRIDT,LRND)),U,LRPC) Q:LRRES="" RESULT
  1. S LRIND=$P($G(^TMP($J,"MMRSCRE","T",LRMDRO,LRTST,0)),U,1)
  1. S LRINDVAL=$P($G(^TMP($J,"MMRSCRE","T",LRMDRO,LRTST,0)),U,2)
  1. Q:LRIND="" RESULT
  1. I LRIND=1 D Q RESULT
  1. .Q:'LRRES
  1. .S LRSPEC=$P($G(^LR(LRDFN,"CH",LRIDT,0)),U,5) Q:LRSPEC=""
  1. .Q:'$D(^LAB(60,LRTST,1,LRSPEC,0))
  1. .S LRLOW=$P(^LAB(60,LRTST,1,LRSPEC,0),U,2),LRHIG=$P(^LAB(60,LRTST,1,LRSPEC,0),U,3)
  1. .Q:'LRLOW!('LRHIG)
  1. .I LRRES<LRLOW!(LRRES>LRHIG) S RESULT="POS" Q
  1. I LRINDVAL="" Q RESULT
  1. S LRRES=$$UP^XLFSTR(LRRES),LRINDVAL=$$UP^XLFSTR(LRINDVAL)
  1. I LRIND=2,(LRRES[LRINDVAL) Q "POS"
  1. I LRIND=3,(LRRES>LRINDVAL) Q "POS"
  1. I LRIND=4,(LRRES<LRINDVAL) Q "POS"
  1. I LRIND=5,(LRRES=LRINDVAL) Q "POS"
  1. Q RESULT
  1. MIRSLT(LRDFN,LRIDT,LRMDRO) ;RETURNS 'POS' OR NULL STRING (IF NOT POSITIVE)
  1. N RESULT,LRETND,LRETI,LRANTI,LRANTIND,LRANTINV,LRAND,LRRES,BACTRPT,RPTRMRK,LRANTIEN
  1. S RESULT=""
  1. ;Check Etiology
  1. I $D(^TMP($J,"MMRSCRE","ETIOL",LRMDRO)) D Q:RESULT="POS" RESULT
  1. .S LRETND=0 F S LRETND=$O(^LR(LRDFN,"MI",LRIDT,3,LRETND)) Q:'LRETND!(RESULT="POS") D
  1. ..S LRETI=$P($G(^LR(LRDFN,"MI",LRIDT,3,LRETND,0)),U)
  1. ..Q:+LRETI'>0
  1. ..I ('$O(^TMP($J,"MMRSCRE","ETIOL",LRMDRO,LRETI,0))) D Q
  1. ...I $D(^TMP($J,"MMRSCRE","ETIOL",LRMDRO,LRETI)) S RESULT="POS"
  1. ..S LRANTI=0 F S LRANTI=$O(^TMP($J,"MMRSCRE","ETIOL",LRMDRO,LRETI,LRANTI)) Q:'LRANTI D
  1. ...S LRANTIEN=$P(^TMP($J,"MMRSCRE","ETIOL",LRMDRO,LRETI,LRANTI),U,1)
  1. ...S LRANTIND=$P(^TMP($J,"MMRSCRE","ETIOL",LRMDRO,LRETI,LRANTI),U,2)
  1. ...S LRANTINV=$P(^TMP($J,"MMRSCRE","ETIOL",LRMDRO,LRETI,LRANTI),U,3)
  1. ...;S LRAND=$P($G(^LAB(62.06,LRANTI,0)),U,2) Q:LRAND=""
  1. ...S LRAND=$$ABDN^LRPXAPIU(LRANTIEN) Q:'LRAND
  1. ...Q:$P($G(^LR(LRDFN,"MI",LRIDT,3,LRETND,LRAND)),U,2)=""
  1. ...Q:$$UP^XLFSTR($E($P($G(^LR(LRDFN,"MI",LRIDT,3,LRETND,LRAND)),U,2),1,1))="S"
  1. ...I LRANTIND=""!(LRANTINV="") Q
  1. ...;S LRRES=$$UP^XLFSTR($E($P($G(^LR(LRDFN,"MI",LRIDT,3,LRETND,LRAND)),U,2),1,1))
  1. ...S LRRES=$$UP^XLFSTR($P($G(^LR(LRDFN,"MI",LRIDT,3,LRETND,LRAND)),U,2))
  1. ...S LRANTINV=$$UP^XLFSTR(LRANTINV)
  1. ...S LRANTIND=$$UP^XLFSTR(LRANTIND)
  1. ...I LRANTIND=1,(LRRES[LRANTINV) S RESULT="POS" Q
  1. ...I LRANTIND=2,(LRRES>LRANTINV) S RESULT="POS" Q
  1. ...I LRANTIND=3,(LRRES<LRANTINV) S RESULT="POS" Q
  1. ...I LRANTIND=4,(LRRES=LRANTINV) S RESULT="POS" Q
  1. Q:RESULT="POS" "POS"
  1. ;Check Bacteriology Report Remarks
  1. I '$D(^TMP($J,"MMRSCRE","BACT",LRMDRO,"INC_REMARK")) Q RESULT
  1. S BACTRPT=0 F S BACTRPT=$O(^LR(LRDFN,"MI",LRIDT,4,BACTRPT)) Q:'BACTRPT!(RESULT="POS") D
  1. .S RPTRMRK=$P($G(^LR(LRDFN,"MI",LRIDT,4,BACTRPT,0)),U,1)
  1. .Q:RPTRMRK=""
  1. .I $$BACTRPT(LRMDRO,"INC_REMARK",RPTRMRK)&('$$BACTRPT(LRMDRO,"EXC_REMARK",RPTRMRK)) S RESULT="POS"
  1. Q RESULT
  1. ;
  1. SCRNTOP(LRSITE,LRMDRO) ;CHECK TO SEE IF SCREEN ON SITE
  1. Q:+LRSITE'>0 0
  1. I $D(^TMP($J,"MMRSCRE","TOP",LRMDRO,"INC_TOP"))&$D(^TMP($J,"MMRSCRE","TOP",LRMDRO,"EXC_TOP")) Q 0
  1. I '$D(^TMP($J,"MMRSCRE","TOP",LRMDRO,"INC_TOP"))&'$D(^TMP($J,"MMRSCRE","TOP",LRMDRO,"EXC_TOP")) Q 0
  1. I ($D(^TMP($J,"MMRSCRE","TOP",LRMDRO,"INC_TOP")))&($D(^TMP($J,"MMRSCRE","TOP",LRMDRO,"INC_TOP",LRSITE))) Q 0
  1. I ($D(^TMP($J,"MMRSCRE","TOP",LRMDRO,"EXC_TOP")))&('$D(^TMP($J,"MMRSCRE","TOP",LRMDRO,"EXC_TOP",LRSITE))) Q 0
  1. Q 1
  1. BACTRPT(LRMDRO,RPTTYPE,RPTRMRK) ;Is this comment contained in the parameters
  1. N RESULT,MMRSI,LRINDVAL
  1. S RESULT=0
  1. S MMRSI=0 F S MMRSI=$O(^TMP($J,"MMRSCRE","BACT",LRMDRO,RPTTYPE,MMRSI)) Q:'MMRSI!(RESULT=1) D
  1. .S LRINDVAL=$G(^TMP($J,"MMRSCRE","BACT",LRMDRO,RPTTYPE,MMRSI))
  1. .I ($$UP^XLFSTR(RPTRMRK))[($$UP^XLFSTR(LRINDVAL)) S RESULT=1
  1. Q RESULT
  1. ;
  1. END ;
  1. K A,ACT,ADMDT,CC,COLDT,CR,DIV,DIVLOC,DONE,DSCHMOV,DSCHRGE,DTA
  1. K ENDDT,I,LIEN,LRD,LRDT,LRSS,MDIV,MDROETIO,MOVEMENT,NEG
  1. K ORDLOC,ORG,PFLG,RES,RLOC,SRCE,STOP,STRTDT,SUBS,SURV,SVC
  1. K TRNACT,TSTSTP,WRDLOC,X,DSCHRG,MOVMENT
  1. Q
  1. ;