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

BPCPC.m

Go to the documentation of this file.
  1. BPCPC ; IHS/OIT/MJL - PATIENT CHART RELATED ROUTINES FOR GUI ;
  1. ;;1.5;BPC;;MAY 26, 2005
  1. BPCCHT(RESULT,BPCIEN,BPCOPT,BPCLIM,BPCSDATE,BPCEDATE) ;EP CALL FROM REMOTE PROC: BPC CHARTDATA
  1. ;
  1. ;POSSIBLE OPTIONS (BPCOPT)
  1. ;1 - RETURN CHOSEN NUMBER OF VISITS (BPCLIM) WITHIN DATE RANGE
  1. ;2 - RETURN ALL VISITS WITHIN DATE RANGE
  1. ;3 - RETURN LAB VISITS ONLY WITHIN DATE RANGE
  1. EN ;
  1. S U="^",XWBWRAP=1,BPCLIM=$G(BPCLIM,10),BPCSUB=$J,BPCMFLG="" K ^BGUTMP(BPCSUB),^BGURES(BPCSUB),RESULT
  1. S:'BPCLIM BPCLIM=10
  1. S RESULT="^BGURES("_BPCSUB_")"
  1. ;I '$D(BPCIEN) S RESULT(1)=-1,RESULT(2)="NO PATIENT IEN SENT!" Q
  1. I '$D(BPCIEN) S ^BGURES(BPCSUB,1)=-1,^BGURES(BPCSUB,2)="NO PATIENT IEN SENT!" Q
  1. S BPCOPT=$G(BPCOPT,1),BPCSDATE=$G(BPCSDATE),BPCEDATE=$G(BPCEDATE)
  1. S:BPCOPT=2 BPCLIM=9999999
  1. I BPCSDATE'="" S BPCFLG=0 D GETDATES I BPCFLG D KILL Q
  1. D VISIT,SETRES,KILL
  1. Q
  1. GETDATES ;
  1. D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. ;I BPCSDAT=-1 S RESULT(1)=-1,RESULT(2)="INVALID START DATE!",BPCFLG=1 Q
  1. I BPCSDAT=-1 S ^BGURES(BPCSUB,1)=-1,^BGURES(BPCSUB,2)="INVALID START DATE!",BPCFLG=1 Q
  1. I BPCEDATE="" S BPCEDATE="T"
  1. D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. ;I BPCEDAT=-1 S RESULT(1)=-1,RESULT(2)="INVALID END DATE!",BPCFLG=1
  1. I BPCEDAT=-1 S ^BGURES(BPCSUB,1)=-1,^BGURES(BPCSUB,2)="INVALID END DATE!",BPCFLG=1
  1. Q
  1. KILL ;
  1. K ^BGUTMP(BPCSUB)
  1. K BPCPRV,BPCCDT,BPCCLIN,BPCCN,BPCCTR,BPCDAYS,BPCDDAY,BPCDNAM,BPCDTA,BPCEDATE,BPCFATH,BPCFLAGL,BPCFLG,BPCIEN,BPCLIM,BPCLOC,BPCMED
  1. K BPCMOTH1,BPCMOTH2,BPCNAR,BPCOPT,BPCPDTA,BPCPOV,BPCQTY,BPCREFH,BPCREFL,BPCSC,BPCSDATE,BPCSIG,BPCSITE,BPCSUB,BPCTEST,BPCTEST1,BPCUNITS,BPCVALUE
  1. K BPCVDT,BPCVSIT,BPCX,BPCX1,BPCY,BPCY11,BPCY12,BPCZ,BPCCKDT,BPCSDAT,BPCEDAT,BPCDD,BPCF
  1. Q
  1. VISIT ;
  1. S BPCX=0,BPCCN=0,BPCCTR=0 F S BPCX=$O(^AUPNVSIT("AA",BPCIEN,BPCX)) Q:BPCX="" S BPCVSIT="" D Q:BPCCN=BPCLIM
  1. .F S BPCVSIT=$O(^AUPNVSIT("AA",BPCIEN,BPCX,BPCVSIT)) Q:BPCVSIT="" D VISIT1 Q:BPCCN=BPCLIM
  1. Q
  1. VISIT1 ;
  1. S BPCMFLG=$S($D(^AUPNVMIC("AD",BPCVSIT)):"B",1:"")
  1. I BPCOPT=3,'$D(^AUPNVLAB("AD",BPCVSIT)) Q ;IF OPTION=LABS ONLY
  1. S BPCY=^AUPNVSIT(BPCVSIT,0),BPCVDT=$P(BPCY,U,1),BPCLOC=$P(BPCY,U,6),BPCSC=$P(BPCY,U,7),BPCCLIN=$P(BPCY,U,8),BPCCKDT=$P(BPCVDT,".",1)
  1. I BPCSDATE'="",BPCEDATE'="",((BPCCKDT<BPCSDAT)!(BPCCKDT>BPCEDAT)) Q ;IF NOT IN DATE RANGE
  1. I $L(BPCLOC) S BPCLOC=$G(^AUTTLOC(BPCLOC,0)) S:$L(BPCLOC) BPCLOC=$P(BPCLOC,U,2)
  1. I $L(BPCCLIN) S BPCCLIN=$G(^DIC(40.7,BPCCLIN,0)) S:$L(BPCCLIN) BPCCLIN=$P(BPCCLIN,U,1)
  1. S BPCX1=0 F S BPCX1=$O(^AUPNVPRV("AD",BPCVSIT,BPCX1)) Q:BPCX1="" D PROV
  1. S BPCCN=BPCCN+1,^BGUTMP(BPCSUB,BPCX,"VISIT","NONE",BPCCN)=BPCVDT_U_"VISIT"_U_BPCVSIT_U_BPCLOC_U_BPCSC_U_$G(BPCPRV)_U_BPCCLIN
  1. D LAB,POV,MEAS
  1. S BPCFLG="" S:$D(^BGUTMP(BPCSUB,BPCX,"LAB")) BPCFLG="L" S:$D(^BGUTMP(BPCSUB,BPCX,"POV")) BPCFLG=BPCFLG_"P"
  1. S BPCF=0
  1. D MED I BPCF S BPCFLG=BPCFLG_"M"
  1. ;S:$D(^BGUTMP(BPCSUB,BPCX,"MED")) BPCFLG=BPCFLG_"M"
  1. ;S $P(^BGUTMP(BPCSUB,BPCX,"VISIT","NONE"),U,6)=BPCFLG
  1. S BPCFLG=BPCFLG_BPCMFLG,$P(^BGUTMP(BPCSUB,BPCX,"VISIT","NONE",BPCCN),U,6)=BPCFLG
  1. Q
  1. PROV ;
  1. Q:'$D(^AUPNVPRV(BPCX1,0))
  1. S BPCPDTA=^AUPNVPRV(BPCX1,0)
  1. Q:$P(BPCPDTA,U,4)'="P"
  1. S BPCPRV=$P(BPCPDTA,U,1),BPCPRV=$P($G(VA(200,BPCPRV,0)),U,1) S:'$L(BPCPRV) BPCPRV=BPCX1
  1. Q
  1. LAB ;
  1. S BPCX1=0 F S BPCX1=$O(^AUPNVLAB("AD",BPCVSIT,BPCX1)) Q:BPCX1="" D LAB1
  1. Q
  1. LAB1 ;
  1. Q:'$D(^AUPNVLAB(BPCX1,0))
  1. S BPCY=^AUPNVLAB(BPCX1,0),BPCY11=$G(^AUPNVLAB(BPCX1,11)),BPCY12=$G(^AUPNVLAB(BPCX1,12))
  1. S BPCTST=$P(BPCY,U,1),BPCTEST=$P($G(^LAB(60,BPCTST,0)),U,1) Q:'$L(BPCTEST)
  1. S BPCATOM=$O(^LAB(60,BPCTST,2,0))=""
  1. S BPCVALUE=$P(BPCY,U,4),BPCFLAGL=$P(BPCY,U,5),BPCREFL=$P(BPCY11,U,4),BPCREFH=$P(BPCY11,U,5),BPCUNITS=$P(BPCY11,U,1)
  1. S BPCPRNT=$P(BPCY12,U,8)
  1. S BPCCTR=BPCCTR+1,BPCTEST1=BPCTEST
  1. I $D(^BGUTMP(BPCSUB,BPCX,"LAB",BPCTEST)) S BPCTEST1=BPCTEST_BPCCTR
  1. S BPCSITE="" I $L($P(BPCY11,U,3)) S BPCSITE=$P(BPCY11,U,3),BPCSITE=$S(BPCSITE=72:70,BPCSITE=73:70,1:BPCSITE),BPCSITE=$P($G(^LAB(61,BPCSITE,0)),U,1)
  1. I BPCATOM D Q
  1. .S BPCCTR(BPCTEST)=$G(BPCCTR(BPCTEST))+1
  1. .S BPCCDT=$P(BPCY12,U,1) S:BPCCDT="" BPCCDT=BPCVDT
  1. . I BPCPRNT'="",$D(^BGUTMP(BPCSUB,BPCX,"PARENT",BPCPRNT)) D Q
  1. ..S BPCTEST1=^BGUTMP(BPCSUB,BPCX,"PARENT",BPCPRNT)
  1. ..S ^BGUTMP(BPCSUB,BPCX,"LAB",BPCTEST1,BPCTST)=BPCVDT_U_"LAB"_U_" "_BPCTEST_U_BPCX1_U_BPCVALUE_U_BPCFLAGL_U_BPCUNITS_U_BPCREFL_U_BPCREFH_U_BPCSITE_U_BPCCDT
  1. ..S $P(^BGUTMP(BPCSUB,BPCX,"LAB",BPCTEST1),U,10)=BPCSITE
  1. .S ^BGUTMP(BPCSUB,BPCX,"LAB",BPCTEST1)=BPCVDT_U_"LAB"_U_BPCTEST_U_BPCX1_U_BPCVALUE_U_BPCFLAGL_U_BPCUNITS_U_BPCREFL_U_BPCREFH_U_BPCSITE_U_BPCCDT
  1. S ^BGUTMP(BPCSUB,BPCX,"LAB",BPCTEST1)=BPCVDT_U_"LAB"_U_BPCTEST_" <<PANEL>>"_U_BPCX1 ;_"^^^^^^"_BPCSITE
  1. S ^BGUTMP(BPCSUB,BPCX,"PARENT",BPCX1)=BPCTEST1
  1. Q
  1. POV ;
  1. S BPCPVDTA=0
  1. S BPCX1=0 F S BPCX1=$O(^AUPNVPOV("AD",BPCVSIT,BPCX1)) Q:BPCX1="" D POV1
  1. S:'BPCPVDTA ^BGUTMP(BPCSUB,BPCX,"POV",1)=BPCVDT_U_"POV"_U_"No Purpose of Visit Recorded"
  1. K BPCPVDTA
  1. Q
  1. POV1 ;
  1. Q:'$D(^AUPNVPOV(BPCX1,0))
  1. S BPCPDTA=$G(^AUPNVPOV(BPCX1,0))
  1. S BPCY=$P(BPCPDTA,U,1) Q:'$L(BPCY)
  1. S BPCPOV=$P($G(^ICD9(BPCY,0)),U,3)
  1. S BPCY=$P(BPCPDTA,U,4) Q:'$L(BPCY)
  1. S BPCNAR=$G(^AUTNPOV(BPCY,0))
  1. S ^BGUTMP(BPCSUB,BPCX,"POV",BPCX1)=BPCVDT_U_"POV"_U_BPCPOV_U_BPCNAR_U_BPCX1,BPCPVDTA=1
  1. Q
  1. MED ;
  1. S BPCX1=0 F S BPCX1=$O(^AUPNVMED("AD",BPCVSIT,BPCX1)) Q:BPCX1="" D MED1
  1. Q
  1. MED1 ;
  1. Q:'$D(^AUPNVMED(BPCX1,0))
  1. S BPCF=1
  1. Q
  1. ;FHL 12/9/97
  1. D:$D(^PSRX("APCC",BPCX1)) Q:BPCRXST'="0"
  1. .S BPCRXST="0"
  1. .S BPCX2=$O(^PSRX("APCC",BPCX1,""))
  1. .S:BPCX2'="" BPCRXD=^PSRX(BPCX2,0),BPCRXST=$P(BPCRXD,U,15)
  1. S BPCY=^AUPNVMED(BPCX1,0),BPCY12=$G(^AUPNVMED(BPCX1,12))
  1. S BPCMED=$P(BPCY,U,1),BPCMED=$P($G(^PSDRUG(BPCMED,0)),U,1) Q:'$L(BPCMED)
  1. S BPCDNAM=$P(BPCY,U,4),BPCSIG=$P(BPCY,U,5),BPCQTY=$P(BPCY,U,6),BPCDAYS=$P(BPCY,U,7),BPCDDAY=$P(BPCY,U,8)
  1. S BPCCDT=$P(BPCY12,U,1) S:BPCCDT="" BPCCDT=BPCVDT
  1. S ^BGUTMP(BPCSUB,BPCX,"MED",BPCMED)=BPCVDT_U_"MED"_U_BPCMED_U_BPCX1_U_BPCDNAM_U_BPCSIG_U_BPCQTY_U_BPCDAYS_U_BPCCDT
  1. Q
  1. SETRES ;
  1. S BPCX=0,BPCCTR=2 F S BPCX=$O(^BGUTMP(BPCSUB,BPCX)) Q:BPCX="" D
  1. .S BPCY="" F S BPCY=$O(^BGUTMP(BPCSUB,BPCX,BPCY)) Q:BPCY="" D:BPCY'="PARENT"
  1. ..S BPCZ="" F S BPCZ=$O(^BGUTMP(BPCSUB,BPCX,BPCY,BPCZ)) Q:BPCZ="" D
  1. ...S BPCDD=$G(^BGUTMP(BPCSUB,BPCX,BPCY,BPCZ))
  1. ...;S:BPCY'="VISIT" ^BGURES(BPCSUB,BPCCTR)=^BGUTMP(BPCSUB,BPCX,BPCY,BPCZ),BPCCTR=BPCCTR+1
  1. ...S:BPCDD'="" ^BGURES(BPCSUB,BPCCTR)=BPCDD,BPCCTR=BPCCTR+1
  1. ...I $O(^BGUTMP(BPCSUB,BPCX,BPCY,BPCZ,""))'="" D Q
  1. ....S BPCQ="" F S BPCQ=$O(^BGUTMP(BPCSUB,BPCX,BPCY,BPCZ,BPCQ)) Q:BPCQ="" D
  1. .....S ^BGURES(BPCSUB,BPCCTR)=^BGUTMP(BPCSUB,BPCX,BPCY,BPCZ,BPCQ),BPCCTR=BPCCTR+1
  1. ;S BPCX=0,BPCCTR=2 F S BPCX=$O(^BGUTMP(BPCSUB,BPCX)) Q:BPCX="" S BPCY="" F S BPCY=$O(^BGUTMP(BPCSUB,BPCX,BPCY)) Q:BPCY="" S BPCZ="" F S BPCZ=$O(^BGUTMP(BPCSUB,BPCX,BPCY,BPCZ)) Q:BPCZ="" D SETRES1
  1. D TRENDS,ALERTS,REMARKS,NOK,SITEP
  1. ;S RESULT(1)=BPCCTR-1
  1. S ^BGURES(BPCSUB,1)=BPCCTR-1
  1. Q
  1. SETRES1 ;
  1. ;S RESULT(BPCCTR)=^BGUTMP(BPCSUB,BPCX,BPCY,BPCZ),BPCCTR=BPCCTR+1
  1. S ^BGURES(BPCSUB,BPCCTR)=^BGUTMP(BPCSUB,BPCX,BPCY,BPCZ),BPCCTR=BPCCTR+1
  1. Q
  1. D TRENDS^BPCLALL
  1. Q
  1. ALERTS ;
  1. D ALERTS^BPCLALL
  1. Q
  1. REMARKS ;
  1. D REMARKS^BPCLALL
  1. Q
  1. NOK ;
  1. D NOK^BPCLALL1
  1. Q
  1. SITEP ;
  1. D SITEP^BPCLALL1
  1. Q
  1. MEAS ;
  1. D MEAS^BPCLALL1
  1. Q