- APCHS3 ; IHS/CMI/LAB - PART 3 OF APCHS -- SUMMARY PRODUCTION COMPONENTS ;
- ;;2.0;IHS PCC SUITE;;MAY 14, 2009
- ;
- LAB ; ******************** LAB DATA * 9000010.09 *******
- I '$D(^AUPNVLAB("AE",APCHSPAT)) D EKGLAB^APCHS3A G LABX
- X APCHSCKP Q:$D(APCHSQIT)
- X:'APCHSNPG APCHSBRK
- ; <SETUP>
- K ^TMP($J,"APCHSLRT"),^("APCHSLDT"),^("APCHSLD2")
- ; <PROCESS>
- D LBLD,LPRT
- W ! D EKGLAB^APCHS3A
- ; <CLEANUP>
- LABX K APCHSLT,APCHSLR,APCHSLTX,APCHSDFN,APCHSNDT,APCHSLRT,APCHSLDT,APCHSLD2,APCHSNA,APCHSIVD,APCHSDTL,APCHSI,APCHSJ,APCHSL,APCHSLL,APCHSDSN,APCHSIDN,APCHSNMX,APCHSLW,APCHSMXL,APCHSLTO,APCHSLTN,APCHSELX,Y
- K ^TMP($J,"APCHSLRT"),^("APCHSLDT"),^("APCHSLD2")
- Q
- ; <BUILD>
- LBLD K APCHSLRT,APCHSLDT,APCHSLD2
- S (APCHSNDT,APCHSMXL,APCHSLTN)=0,APCHSELX=$D(^APCHSCTL(APCHSTYP,4,"C"))
- S APCHSIVD="" F APCHSQ=0:0 S APCHSIVD=$O(^AUPNVLAB("AE",APCHSPAT,APCHSIVD)) Q:'APCHSIVD!(APCHSIVD>APCHSDLM) D LDATE S:$D(^TMP($J,"APCHSLDT",APCHSIVD)) APCHSNDM=APCHSNDM-1 Q:'APCHSNDM
- S APCHSIVD="" F APCHSI=1:1 S APCHSIVD=$O(^TMP($J,"APCHSLDT",APCHSIVD)) Q:APCHSIVD="" S ^TMP($J,"APCHSLD2",APCHSI)=APCHSIVD
- Q
- LDATE S APCHSLT="" F APCHSQ=0:0 S APCHSLT=$O(^AUPNVLAB("AE",APCHSPAT,APCHSIVD,APCHSLT)) Q:'APCHSLT D
- .S APCHSDFN=0 F S APCHSDFN=$O(^AUPNVLAB("AE",APCHSPAT,APCHSIVD,APCHSLT,APCHSDFN)) Q:'APCHSDFN D LSET
- Q
- LSET ;
- I APCHSELX Q:'$D(^APCHSCTL(APCHSTYP,4,"C",APCHSLT))
- S APCHSLR=$P(^AUPNVLAB(APCHSDFN,0),U,4) Q:APCHSLR="" Q:APCHSLR=" "
- I APCHSELX S APCHSLTO=$O(^APCHSCTL(APCHSTYP,4,"C",APCHSLT,"")),APCHSLTO=+^APCHSCTL(APCHSTYP,4,APCHSLTO,0)
- E S (APCHSLTO,APCHSLTN)=APCHSLT
- S APCHSLTO=10000+APCHSLTO_"-"_APCHSLT
- S Y=$$RDT(APCHSDFN)
- S ^TMP($J,"APCHSLRT",APCHSLTO,APCHSIVD)=APCHSLR_$S(Y]"":" (",1:"")_$$RDT(APCHSDFN)_$S(Y]"":")",1:"") S APCHSLTX=$P(^LAB(60,APCHSLT,0),U,1) S:$L(APCHSLTX)>APCHSMXL APCHSMXL=$L(APCHSLTX)
- S:'$D(^TMP($J,"APCHSLDT",APCHSIVD)) APCHSNDT=APCHSNDT+1 S ^TMP($J,"APCHSLDT",APCHSIVD)=""
- Q
- ; <PRINT>
- LPRT S APCHSLW=APCHSMXL+1,APCHSLL=25,APCHSNMX=(80-1-APCHSLW)\APCHSLL
- F APCHSDSN=1:APCHSNMX:APCHSNDT D LPRT2
- Q
- LPRT2 ;
- S APCHSDTL="" F APCHSI=1:1:APCHSNMX S APCHSJ=APCHSDSN+APCHSI-1 Q:APCHSJ>APCHSNDT S Y=-^TMP($J,"APCHSLD2",APCHSJ)\1+9999999 X APCHSCVD S APCHSDTL=APCHSDTL_$J(Y,APCHSLL)
- X APCHSCKP Q:$D(APCHSQIT) W ! X APCHSCKP Q:$D(APCHSQIT) W ?APCHSLW,APCHSDTL
- X APCHSCKP Q:$D(APCHSQIT) W !
- S APCHSLT="" F APCHSQ=0:0 S APCHSLT=$O(^TMP($J,"APCHSLRT",APCHSLT)) Q:APCHSLT="" S APCHSLTX=$P(^LAB(60,$P(APCHSLT,"-",2),0),U,1) D LPRT3 I APCHSNA X APCHSCKP Q:$D(APCHSQIT) W:APCHSNPG ?APCHSLW,APCHSDTL,! W APCHSLTX,?APCHSLW,APCHSL,!
- Q
- LPRT3 S APCHSNA=0 S APCHSL="" F APCHSIDN=1:1:APCHSNMX S APCHSJ=APCHSDSN+APCHSIDN-1 Q:APCHSJ>APCHSNDT S APCHSIVD=^TMP($J,"APCHSLD2",APCHSJ) D LADD
- Q
- LADD I $D(^TMP($J,"APCHSLRT",APCHSLT,APCHSIVD)) S APCHSNA=APCHSNA+1 S APCHSL=APCHSL_$J(^TMP($J,"APCHSLRT",APCHSLT,APCHSIVD),APCHSLL)
- E S APCHSL=APCHSL_$J(" ",APCHSLL)
- Q
- RDT(R) ;
- I $G(R)="" Q ""
- NEW X
- S X=$P($G(^AUPNVLAB(R,12)),U,12)
- I X="" Q ""
- Q $$DATE^APCHSMU($P(X,"."))_"@"_$P($P($$FMTE^XLFDT(X),"@",2),":",1,2)
- APCHS3 ; IHS/CMI/LAB - PART 3 OF APCHS -- SUMMARY PRODUCTION COMPONENTS ;
- +1 ;;2.0;IHS PCC SUITE;;MAY 14, 2009
- +2 ;
- LAB ; ******************** LAB DATA * 9000010.09 *******
- +1 IF '$DATA(^AUPNVLAB("AE",APCHSPAT))
- DO EKGLAB^APCHS3A
- GOTO LABX
- +2 XECUTE APCHSCKP
- IF $DATA(APCHSQIT)
- QUIT
- +3 IF 'APCHSNPG
- XECUTE APCHSBRK
- +4 ; <SETUP>
- +5 KILL ^TMP($JOB,"APCHSLRT"),^("APCHSLDT"),^("APCHSLD2")
- +6 ; <PROCESS>
- +7 DO LBLD
- DO LPRT
- +8 WRITE !
- DO EKGLAB^APCHS3A
- +9 ; <CLEANUP>
- LABX KILL APCHSLT,APCHSLR,APCHSLTX,APCHSDFN,APCHSNDT,APCHSLRT,APCHSLDT,APCHSLD2,APCHSNA,APCHSIVD,APCHSDTL,APCHSI,APCHSJ,APCHSL,APCHSLL,APCHSDSN,APCHSIDN,APCHSNMX,APCHSLW,APCHSMXL,APCHSLTO,APCHSLTN,APCHSELX,Y
- +1 KILL ^TMP($JOB,"APCHSLRT"),^("APCHSLDT"),^("APCHSLD2")
- +2 QUIT
- +3 ; <BUILD>
- LBLD KILL APCHSLRT,APCHSLDT,APCHSLD2
- +1 SET (APCHSNDT,APCHSMXL,APCHSLTN)=0
- SET APCHSELX=$DATA(^APCHSCTL(APCHSTYP,4,"C"))
- +2 SET APCHSIVD=""
- FOR APCHSQ=0:0
- SET APCHSIVD=$ORDER(^AUPNVLAB("AE",APCHSPAT,APCHSIVD))
- IF 'APCHSIVD!(APCHSIVD>APCHSDLM)
- QUIT
- DO LDATE
- IF $DATA(^TMP($JOB,"APCHSLDT",APCHSIVD))
- SET APCHSNDM=APCHSNDM-1
- IF 'APCHSNDM
- QUIT
- +3 SET APCHSIVD=""
- FOR APCHSI=1:1
- SET APCHSIVD=$ORDER(^TMP($JOB,"APCHSLDT",APCHSIVD))
- IF APCHSIVD=""
- QUIT
- SET ^TMP($JOB,"APCHSLD2",APCHSI)=APCHSIVD
- +4 QUIT
- LDATE SET APCHSLT=""
- FOR APCHSQ=0:0
- SET APCHSLT=$ORDER(^AUPNVLAB("AE",APCHSPAT,APCHSIVD,APCHSLT))
- IF 'APCHSLT
- QUIT
- Begin DoDot:1
- +1 SET APCHSDFN=0
- FOR
- SET APCHSDFN=$ORDER(^AUPNVLAB("AE",APCHSPAT,APCHSIVD,APCHSLT,APCHSDFN))
- IF 'APCHSDFN
- QUIT
- DO LSET
- End DoDot:1
- +2 QUIT
- LSET ;
- +1 IF APCHSELX
- IF '$DATA(^APCHSCTL(APCHSTYP,4,"C",APCHSLT))
- QUIT
- +2 SET APCHSLR=$PIECE(^AUPNVLAB(APCHSDFN,0),U,4)
- IF APCHSLR=""
- QUIT
- IF APCHSLR=" "
- QUIT
- +3 IF APCHSELX
- SET APCHSLTO=$ORDER(^APCHSCTL(APCHSTYP,4,"C",APCHSLT,""))
- SET APCHSLTO=+^APCHSCTL(APCHSTYP,4,APCHSLTO,0)
- +4 IF '$TEST
- SET (APCHSLTO,APCHSLTN)=APCHSLT
- +5 SET APCHSLTO=10000+APCHSLTO_"-"_APCHSLT
- +6 SET Y=$$RDT(APCHSDFN)
- +7 SET ^TMP($JOB,"APCHSLRT",APCHSLTO,APCHSIVD)=APCHSLR_$SELECT(Y]"":" (",1:"")_$$RDT(APCHSDFN)_$SELECT(Y]"":")",1:"")
- SET APCHSLTX=$PIECE(^LAB(60,APCHSLT,0),U,1)
- IF $LENGTH(APCHSLTX)>APCHSMXL
- SET APCHSMXL=$LENGTH(APCHSLTX)
- +8 IF '$DATA(^TMP($JOB,"APCHSLDT",APCHSIVD))
- SET APCHSNDT=APCHSNDT+1
- SET ^TMP($JOB,"APCHSLDT",APCHSIVD)=""
- +9 QUIT
- +10 ; <PRINT>
- LPRT SET APCHSLW=APCHSMXL+1
- SET APCHSLL=25
- SET APCHSNMX=(80-1-APCHSLW)\APCHSLL
- +1 FOR APCHSDSN=1:APCHSNMX:APCHSNDT
- DO LPRT2
- +2 QUIT
- LPRT2 ;
- +1 SET APCHSDTL=""
- FOR APCHSI=1:1:APCHSNMX
- SET APCHSJ=APCHSDSN+APCHSI-1
- IF APCHSJ>APCHSNDT
- QUIT
- SET Y=-^TMP($JOB,"APCHSLD2",APCHSJ)\1+9999999
- XECUTE APCHSCVD
- SET APCHSDTL=APCHSDTL_$JUSTIFY(Y,APCHSLL)
- +2 XECUTE APCHSCKP
- IF $DATA(APCHSQIT)
- QUIT
- WRITE !
- XECUTE APCHSCKP
- IF $DATA(APCHSQIT)
- QUIT
- WRITE ?APCHSLW,APCHSDTL
- +3 XECUTE APCHSCKP
- IF $DATA(APCHSQIT)
- QUIT
- WRITE !
- +4 SET APCHSLT=""
- FOR APCHSQ=0:0
- SET APCHSLT=$ORDER(^TMP($JOB,"APCHSLRT",APCHSLT))
- IF APCHSLT=""
- QUIT
- SET APCHSLTX=$PIECE(^LAB(60,$PIECE(APCHSLT,"-",2),0),U,1)
- DO LPRT3
- IF APCHSNA
- XECUTE APCHSCKP
- IF $DATA(APCHSQIT)
- QUIT
- IF APCHSNPG
- WRITE ?APCHSLW,APCHSDTL,!
- WRITE APCHSLTX,?APCHSLW,APCHSL,!
- +5 QUIT
- LPRT3 SET APCHSNA=0
- SET APCHSL=""
- FOR APCHSIDN=1:1:APCHSNMX
- SET APCHSJ=APCHSDSN+APCHSIDN-1
- IF APCHSJ>APCHSNDT
- QUIT
- SET APCHSIVD=^TMP($JOB,"APCHSLD2",APCHSJ)
- DO LADD
- +1 QUIT
- LADD IF $DATA(^TMP($JOB,"APCHSLRT",APCHSLT,APCHSIVD))
- SET APCHSNA=APCHSNA+1
- SET APCHSL=APCHSL_$JUSTIFY(^TMP($JOB,"APCHSLRT",APCHSLT,APCHSIVD),APCHSLL)
- +1 IF '$TEST
- SET APCHSL=APCHSL_$JUSTIFY(" ",APCHSLL)
- +2 QUIT
- RDT(R) ;
- +1 IF $GET(R)=""
- QUIT ""
- +2 NEW X
- +3 SET X=$PIECE($GET(^AUPNVLAB(R,12)),U,12)
- +4 IF X=""
- QUIT ""
- +5 QUIT $$DATE^APCHSMU($PIECE(X,"."))_"@"_$PIECE($PIECE($$FMTE^XLFDT(X),"@",2),":",1,2)