APCHS2A ; IHS/CMI/LAB - PART 2A OF APCHS -- SUMMARY PRODUCTION COMPONENTS ;
;;2.0;IHS PCC SUITE;**4,20**;MAY 14, 2009;Build 25
;
MEASP ; ******************** MEASUREMENT PANELS * 9000010.01 *******
; <SETUP>
Q:'$D(^AUPNVMSR("AA",APCHSPAT))
X APCHSBRK
; <BUILD> APCHSCTL-HLTH SUM TYPE
F APCHSPOR=0:0 S APCHSPOR=$O(^APCHSCTL(APCHSTYP,3,APCHSPOR)) Q:'APCHSPOR S APCHSND2=APCHSNDM,APCHSDMX=0 D PBLD
;now display lab refusals
S APCHST="MEASUREMENT",APCHSFN=9999999.07 D DISPREF^APCHS3C
K APCHST,APCHSFN
MEASPX K APCHSPOR,APCHSPDF,APCHSCOR,APCHSCT,APCHSCT2,APCHSCT3,APCHSCLN,APCHSMT,APCHSML,APCHSTSQ,APCHSTVL,APCHSVAL,APCHSIVD,APCHST,APCHSC,APCHSND2,APCHSDMX,APCHSDFN,APCHSDAT,APCHSDM2,APCHSPS1,APCHSIDT,APCHSNTS,Y,X
Q
PBLD S APCHSPDF=$P(^APCHSCTL(APCHSTYP,3,APCHSPOR,0),U,2)
K APCHSTSQ,APCHSTVL,APCHSNTS
S APCHSNTS=0
F APCHSPS1=1,0 F APCHSCOR=0:0 S APCHSCOR=$O(^APCHSMPN(APCHSPDF,1,APCHSCOR)) Q:APCHSCOR="" D CBLD
D POUT
Q
CBLD S APCHSP=^APCHSMPN(APCHSPDF,1,APCHSCOR,0) S APCHSCT3=$G(^(1))
S APCHSCT=$P(APCHSP,U,2),APCHSCLN=$P(APCHSP,U,3)
S X=$P(APCHSP,U,5) S:X]"" APCHSNTS(X)=""
S:APCHSCT="" APCHSCT=" " S APCHSCT2=$S($D(^AUTTMSR(APCHSCT,0)):$P(^(0),U,1),1:APCHSCT)
S:$P(APCHSP,U,4)]"" APCHSCT2=$P(APCHSP,U,4)
S:APCHSCLN="" APCHSCLN=10
S APCHSTSQ(APCHSCOR,1)=APCHSCT2,APCHSTSQ(APCHSCOR,2)=APCHSCLN,APCHSTSQ(APCHSCOR,3)=APCHSCT3
I APCHSPS1 S APCHSIVD="" F APCHSQ=0:0 S APCHSIVD=$O(^AUPNVMSR("AA",APCHSPAT,APCHSCT,APCHSIVD)) Q:APCHSIVD=""!(APCHSIVD>APCHSDLM) D CBLD2
I 'APCHSPS1 S APCHSIVD=$O(^AUPNVMSR("AA",APCHSPAT,APCHSCT,0)) I APCHSIVD,'$D(APCHSTVL(APCHSIVD,APCHSCOR)) D CBLD3
Q
CBLD2 I '$D(APCHSTVL(APCHSIVD)) S APCHSND2=APCHSND2-1 I APCHSND2=-1 S APCHSND2=0 Q:APCHSDMX&(APCHSIVD'<APCHSDMX) K APCHSTVL(APCHSDMX) F APCHSDM2=0:0 S APCHSDM2=$O(APCHSTVL(APCHSDM2)) Q:'APCHSDM2 S APCHSDMX=APCHSDM2
S:APCHSIVD>APCHSDMX APCHSDMX=APCHSIVD
CBLD3 S APCHSDFN=0 F S APCHSDFN=$O(^AUPNVMSR("AA",APCHSPAT,APCHSCT,APCHSIVD,APCHSDFN)) Q:APCHSDFN'=+APCHSDFN D
.Q:$P($G(^AUPNVMSR(APCHSDFN,2)),U,1) ;entered in error
.S V=$P(^AUPNVMSR(APCHSDFN,0),U,3) Q:"HI"[$P($G(^AUPNVSIT(V,0)),U,7) ;exclude inpatient
.S APCHSVAL=$P(^AUPNVMSR(APCHSDFN,0),U,4),APCHSTVL(APCHSIVD,APCHSCOR)=APCHSVAL_"^"_$P(^AUPNVMSR(APCHSDFN,0),U,6)
.;S APCHSVAL=$$VAL^XBDIQ1(9000010.01,APCHSDFN,.04),APCHSTVL(APCHSIVD,APCHSCOR)=APCHSVAL_"^"_$P(^AUPNVMSR(APCHSDFN,0),U,6)
Q
; <DISPLAY>
POUT X APCHSCKP Q:$D(APCHSQIT) W !
X APCHSCKP Q:$D(APCHSQIT) D PHDR
S APCHSIVD="" F APCHSQ=0:0 S APCHSIVD=$O(APCHSTVL(APCHSIVD)) Q:APCHSIVD="" X APCHSCKP Q:$D(APCHSQIT) D:APCHSNPG PHDR D PLINE
I $O(APCHSNTS(0))]"" W ! S X="" F S X=$O(APCHSNTS(X)) Q:X="" W X,!
Q
PHDR S APCHST=10,APCHSC=""
F APCHSQ=0:0 S APCHSC=$O(APCHSTSQ(APCHSC)) Q:APCHSC="" S APCHSMT=APCHSTSQ(APCHSC,1),APCHSML=APCHSTSQ(APCHSC,2) W ?(APCHST+1+(APCHSML-$L(APCHSMT)\2)),APCHSMT S APCHST=APCHST+APCHSML+2
W !
Q
PLINE S APCHSIDT=APCHSIVD,Y=-APCHSIVD\1+9999999 X APCHSCVD S APCHSDAT=Y
W APCHSDAT S APCHST=11
S APCHSC="" F APCHSQ=0:0 S APCHSC=$O(APCHSTSQ(APCHSC)) Q:APCHSC="" D PVAL
W !
Q
PVAL ;
K APCHSVNM
S APCHSML=APCHSTSQ(APCHSC,2)
S (APCHSVAL,APCHSVNM)="",APCHSVAL=$P($G(APCHSTVL(APCHSIVD,APCHSC)),U) I $P($G(APCHSTVL(APCHSIVD,APCHSC)),U,2)]"" S APCHSVNM=$P($G(APCHSTVL(APCHSIVD,APCHSC)),U,2)
I APCHSVAL]"" S X=APCHSVAL X APCHSTSQ(APCHSC,3) S APCHSVAL=$P(X,"^",1),X=$P(X,"^",2) S:X]"" APCHSNTS(X)=""
S:APCHSVAL]"" APCHSVAL=$S($P(APCHSML,".",2)="":$J(APCHSVAL,$P(APCHSML,".",1)),1:$J(APCHSVAL,$P(APCHSML,".",1),$P(APCHSML,".",2)))
W ?APCHST,APCHSVAL S APCHST=APCHST+APCHSML+2
K APCHSVNM
Q
APCHS2A ; IHS/CMI/LAB - PART 2A OF APCHS -- SUMMARY PRODUCTION COMPONENTS ;
+1 ;;2.0;IHS PCC SUITE;**4,20**;MAY 14, 2009;Build 25
+2 ;
MEASP ; ******************** MEASUREMENT PANELS * 9000010.01 *******
+1 ; <SETUP>
+2 IF '$DATA(^AUPNVMSR("AA",APCHSPAT))
QUIT
+3 XECUTE APCHSBRK
+4 ; <BUILD> APCHSCTL-HLTH SUM TYPE
+5 FOR APCHSPOR=0:0
SET APCHSPOR=$ORDER(^APCHSCTL(APCHSTYP,3,APCHSPOR))
IF 'APCHSPOR
QUIT
SET APCHSND2=APCHSNDM
SET APCHSDMX=0
DO PBLD
+6 ;now display lab refusals
+7 SET APCHST="MEASUREMENT"
SET APCHSFN=9999999.07
DO DISPREF^APCHS3C
+8 KILL APCHST,APCHSFN
MEASPX KILL APCHSPOR,APCHSPDF,APCHSCOR,APCHSCT,APCHSCT2,APCHSCT3,APCHSCLN,APCHSMT,APCHSML,APCHSTSQ,APCHSTVL,APCHSVAL,APCHSIVD,APCHST,APCHSC,APCHSND2,APCHSDMX,APCHSDFN,APCHSDAT,APCHSDM2,APCHSPS1,APCHSIDT,APCHSNTS,Y,X
+1 QUIT
PBLD SET APCHSPDF=$PIECE(^APCHSCTL(APCHSTYP,3,APCHSPOR,0),U,2)
+1 KILL APCHSTSQ,APCHSTVL,APCHSNTS
+2 SET APCHSNTS=0
+3 FOR APCHSPS1=1,0
FOR APCHSCOR=0:0
SET APCHSCOR=$ORDER(^APCHSMPN(APCHSPDF,1,APCHSCOR))
IF APCHSCOR=""
QUIT
DO CBLD
+4 DO POUT
+5 QUIT
CBLD SET APCHSP=^APCHSMPN(APCHSPDF,1,APCHSCOR,0)
SET APCHSCT3=$GET(^(1))
+1 SET APCHSCT=$PIECE(APCHSP,U,2)
SET APCHSCLN=$PIECE(APCHSP,U,3)
+2 SET X=$PIECE(APCHSP,U,5)
IF X]""
SET APCHSNTS(X)=""
+3 IF APCHSCT=""
SET APCHSCT=" "
SET APCHSCT2=$SELECT($DATA(^AUTTMSR(APCHSCT,0)):$PIECE(^(0),U,1),1:APCHSCT)
+4 IF $PIECE(APCHSP,U,4)]""
SET APCHSCT2=$PIECE(APCHSP,U,4)
+5 IF APCHSCLN=""
SET APCHSCLN=10
+6 SET APCHSTSQ(APCHSCOR,1)=APCHSCT2
SET APCHSTSQ(APCHSCOR,2)=APCHSCLN
SET APCHSTSQ(APCHSCOR,3)=APCHSCT3
+7 IF APCHSPS1
SET APCHSIVD=""
FOR APCHSQ=0:0
SET APCHSIVD=$ORDER(^AUPNVMSR("AA",APCHSPAT,APCHSCT,APCHSIVD))
IF APCHSIVD=""!(APCHSIVD>APCHSDLM)
QUIT
DO CBLD2
+8 IF 'APCHSPS1
SET APCHSIVD=$ORDER(^AUPNVMSR("AA",APCHSPAT,APCHSCT,0))
IF APCHSIVD
IF '$DATA(APCHSTVL(APCHSIVD,APCHSCOR))
DO CBLD3
+9 QUIT
CBLD2 IF '$DATA(APCHSTVL(APCHSIVD))
SET APCHSND2=APCHSND2-1
IF APCHSND2=-1
SET APCHSND2=0
IF APCHSDMX&(APCHSIVD'<APCHSDMX)
QUIT
KILL APCHSTVL(APCHSDMX)
FOR APCHSDM2=0:0
SET APCHSDM2=$ORDER(APCHSTVL(APCHSDM2))
IF 'APCHSDM2
QUIT
SET APCHSDMX=APCHSDM2
+1 IF APCHSIVD>APCHSDMX
SET APCHSDMX=APCHSIVD
CBLD3 SET APCHSDFN=0
FOR
SET APCHSDFN=$ORDER(^AUPNVMSR("AA",APCHSPAT,APCHSCT,APCHSIVD,APCHSDFN))
IF APCHSDFN'=+APCHSDFN
QUIT
Begin DoDot:1
+1 ;entered in error
IF $PIECE($GET(^AUPNVMSR(APCHSDFN,2)),U,1)
QUIT
+2 ;exclude inpatient
SET V=$PIECE(^AUPNVMSR(APCHSDFN,0),U,3)
IF "HI"[$PIECE($GET(^AUPNVSIT(V,0)),U,7)
QUIT
+3 SET APCHSVAL=$PIECE(^AUPNVMSR(APCHSDFN,0),U,4)
SET APCHSTVL(APCHSIVD,APCHSCOR)=APCHSVAL_"^"_$PIECE(^AUPNVMSR(APCHSDFN,0),U,6)
+4 ;S APCHSVAL=$$VAL^XBDIQ1(9000010.01,APCHSDFN,.04),APCHSTVL(APCHSIVD,APCHSCOR)=APCHSVAL_"^"_$P(^AUPNVMSR(APCHSDFN,0),U,6)
End DoDot:1
+5 QUIT
+6 ; <DISPLAY>
POUT XECUTE APCHSCKP
IF $DATA(APCHSQIT)
QUIT
WRITE !
+1 XECUTE APCHSCKP
IF $DATA(APCHSQIT)
QUIT
DO PHDR
+2 SET APCHSIVD=""
FOR APCHSQ=0:0
SET APCHSIVD=$ORDER(APCHSTVL(APCHSIVD))
IF APCHSIVD=""
QUIT
XECUTE APCHSCKP
IF $DATA(APCHSQIT)
QUIT
IF APCHSNPG
DO PHDR
DO PLINE
+3 IF $ORDER(APCHSNTS(0))]""
WRITE !
SET X=""
FOR
SET X=$ORDER(APCHSNTS(X))
IF X=""
QUIT
WRITE X,!
+4 QUIT
PHDR SET APCHST=10
SET APCHSC=""
+1 FOR APCHSQ=0:0
SET APCHSC=$ORDER(APCHSTSQ(APCHSC))
IF APCHSC=""
QUIT
SET APCHSMT=APCHSTSQ(APCHSC,1)
SET APCHSML=APCHSTSQ(APCHSC,2)
WRITE ?(APCHST+1+(APCHSML-$LENGTH(APCHSMT)\2)),APCHSMT
SET APCHST=APCHST+APCHSML+2
+2 WRITE !
+3 QUIT
PLINE SET APCHSIDT=APCHSIVD
SET Y=-APCHSIVD\1+9999999
XECUTE APCHSCVD
SET APCHSDAT=Y
+1 WRITE APCHSDAT
SET APCHST=11
+2 SET APCHSC=""
FOR APCHSQ=0:0
SET APCHSC=$ORDER(APCHSTSQ(APCHSC))
IF APCHSC=""
QUIT
DO PVAL
+3 WRITE !
+4 QUIT
PVAL ;
+1 KILL APCHSVNM
+2 SET APCHSML=APCHSTSQ(APCHSC,2)
+3 SET (APCHSVAL,APCHSVNM)=""
SET APCHSVAL=$PIECE($GET(APCHSTVL(APCHSIVD,APCHSC)),U)
IF $PIECE($GET(APCHSTVL(APCHSIVD,APCHSC)),U,2)]""
SET APCHSVNM=$PIECE($GET(APCHSTVL(APCHSIVD,APCHSC)),U,2)
+4 IF APCHSVAL]""
SET X=APCHSVAL
XECUTE APCHSTSQ(APCHSC,3)
SET APCHSVAL=$PIECE(X,"^",1)
SET X=$PIECE(X,"^",2)
IF X]""
SET APCHSNTS(X)=""
+5 IF APCHSVAL]""
SET APCHSVAL=$SELECT($PIECE(APCHSML,".",2)="":$JUSTIFY(APCHSVAL,$PIECE(APCHSML,".",1)),1:$JUSTIFY(APCHSVAL,$PIECE(APCHSML,".",1),$PIECE(APCHSML,".",2)))
+6 WRITE ?APCHST,APCHSVAL
SET APCHST=APCHST+APCHSML+2
+7 KILL APCHSVNM
+8 QUIT