- LRSORA2 ;DALOI/KCM/DRH/RLM-SEARCH LAB DATA AND PRINT REPORT ;8/28/89 12:07
- ;;5.2;LAB SERVICE;**1006,1018,1022,1030**;NOV 01, 1997
- ;;5.2;LAB SERVICE;**2,62,201,272,369**;Sep 27, 1994;Build 2
- ; Reference to $$FMTE^XLFDT supported by IA #10103
- ; Reference to DD^%DT supported by IA #10003
- ; Reference to ^DIR supported by IA #10026
- ; Reference to $$FMTE^XLFDT supported by IA #10103
- ; Reference to $$NOW^XLFDT supported by IA #10103
- START ;
- D BUILD^LRSORA3
- S (LRTSTCK,LRSPCK,LRPATCK)="",NEWPG=1
- W:$E(IOST,1,2)="C-" @IOF
- D MAINLOOP I LREND=1 D END QUIT
- D:'LREND SUMMARY
- D END
- Q
- MAINLOOP ;
- S (LROLD,LRTOP,LRSPCK,REFCK,LRTSTCK)=""
- S LRSORTI="^TMP(""LR"","_$J_")"
- F S LRSORTI=$Q(@LRSORTI) Q:LRSORTI'[$J!(LREND=1) D
- . D SET Q:LREND=1
- . D PRTCONT Q:LREND=1
- Q
- END ;
- K DIR
- K LROLD,LRTOP,LRSPCK,REFCK,LRTSTK,LRCOMX,LRSORTI
- K LRPREC,PNM,LRCHNG,LRLO,LRHI,LRAN,LRMRK,LRWRD,LRVAL
- K LRTEST,LRPREC,LRCDT,LRUNITS,LRCOUNT,NEWPG
- Q
- SET ;
- S LRCOMX=0
- I LRSORTI["""COM""" W " COMMENT: ",@LRSORTI,! S LRCOMX=1 QUIT
- S LRPREC=@LRSORTI
- S PNM=$P(LRPREC,U),SSN=$P(LRPREC,U,2),LRLOC=$P(LRPREC,U,3)
- S HRCN=$P(LRPREC,U,2) ; IHS/OIT/MKK -- LR*5.2*1030
- S LRSPEC=$P(LRPREC,U,5)
- S LRCHNG=LRSPEC D CHNCASE S LRSPEC=LRCHNG
- S LRLO=$P(LRPREC,U,7),LRHI=$P(LRPREC,U,8),LRVAL=$P(LRPREC,U,9)
- S LRMRK=$P(LRPREC,U,10),LRTHER=$P(LRPREC,U,11)
- S LRAN=$P(LRPREC,U,13),LRCDT=$P(LRPREC,U,14)
- S LRWRD=$P($G(LRPREC),U,12)
- S LRWRD=$S(""[LRWRD:"**No Entry**",1:LRWRD)
- S LRTEST=$P(LRPREC,U,15)
- ; S:SSN'=LROLD LROLD=SSN,LRTOP=1
- S:HRCN'=LROLD LROLD=HRCN,LRTOP=1 ; IHS/OIT/MKK -- LR*5.2*1030
- S LRUNITS=$P(LRPREC,U,16)
- S Y=LRCDT D DD^%DT S LRCDT=$E(Y,1,18)
- Q
- PRTCONT ;
- Q:$G(LREND)
- S LRCOUNT=0
- D CHKPG Q:LREND=1
- I NEWPG=1 D COND1 Q
- ; I LRPATCK'=SSN D COND2 Q
- I LRPATCK'=HRCN D COND2 Q ; IHS/OIT/MKK -- LR*5.2*1030
- I LRSPCK'=LRSPEC D COND3 Q
- I LRTSTCK'=LRTEST D COND3 Q
- I LRTSTCK=LRTEST D COND4 Q
- Q
- COND1 ;
- D PAGE S NEWPG=""
- D NEWPAT
- D NEWSPEC
- D NEWTST S LRCOUNT=1
- Q
- COND2 ;
- D NEWPAT
- D NEWSPEC
- D NEWTST S LRCOUNT=1
- Q
- COND3 ;
- D NEWSPEC
- D NEWTST S LRCOUNT=1
- Q
- COND4 ;
- D NEWTST S LRCOUNT=1
- Q
- PAGE ;
- W:$E(IOST,1,2)="C-" @IOF
- D HDR1 S LRTOP=1
- Q
- NEWPAT ;
- ; D HDR2 S LRPATCK=SSN
- D HDR2 S LRPATCK=HRCN
- Q
- NEWSPEC ;
- D PRSPEC S LRSPCK=LRSPEC
- Q
- NEWTST ;
- D PRTEST S LRTSTCK=LRTEST
- Q
- SAMETST ;
- D PRTEST
- Q
- CHKPG ;
- S:LRCNT<1 LRCNT=1
- Q:$G(LREND)
- I $Y>(IOSL-7-LRCNT) S NEWPG=1 D
- . D LEGEND W:$E(IOST,1,2)'="C-" @IOF
- . D:$E(IOST,1,2)="C-" WAIT Q:LREND S LRTOP=1
- Q
- PRSPEC ;
- W ?2,$E(LRSPEC,1,10)
- W ?14,$S(LRTHER:"Th. Range ",1:"Ref. Range: "),LRLO
- W "-",LRHI," ",LRUNITS,!
- Q
- PRTEST ;
- Q:$G(LRCOMX)
- Q:$G(LREND)
- S LRCOMX=0
- W ?4,$E(LRTEST,1,12),?14,LRAN,?30,$J(LRVAL,4)
- W ?33,LRMRK,?40,$E(LRCDT,1,6)_" "_$E($P(LRCDT,",",2),2,5)
- W " at ",$P(LRCDT,"@",2)
- W ?64,LRLOC,!
- Q:$G(LREND)!(LRTOP)
- Q
- COM ;Print comments on specimen
- Q:$G(LREND) W !," COMMENT(S): "
- S C=""
- F S C=$O(^TMP("LR",$J,LRSUB1,LRSUB2,LRSUB3,LRAN,"COM",C)) Q:(C="")!(LREND) D
- .I $Y+7>IOSL D
- ..D:$E(IOST,1,2)="C-" WAIT Q:LREND=1 D CHKPG
- ..W !,"COMMENT(S): "
- .Q:LREND
- Q
- SUMMARY ;
- I ($Y>(IOSL-7-LRCNT)) D:$E(IOST,1,2)="C-" WAIT Q:LREND=1 D CHKPG
- D LEGEND
- F I=$Y:1:(IOSL-6) W !
- W !,?20,"END OF SPECIAL REPORT" QUIT
- Q
- HDR1 ;
- D LABHDR^BLRUTIL2 ; IHS/OIT/MKK -- LR*5.2*1030 -- Put Name/address in header
- S LRTST(0)=$E(LRTST(0),1,30)
- S %=32-$L(LRTST(0))\2+15
- S LRPAG=LRPAG+1
- W "SPECIAL REPORT",?31
- W "Report Date: "
- W $$FMTE^XLFDT($$NOW^XLFDT,"")
- W !,LRHDR2,?71,"Pg ",$J(LRPAG,3)
- W ! D LRGLIN^LRX
- S LRTOP=""
- S LRCHKSP=0
- Q
- HDR2 ;
- ; W !,PNM,?28,SSN,?61,$E(LRWRD,1,16),!
- W !,PNM,?28,HRCN,?61,$E(LRWRD,1,16),! ; IHS/OIT/MKK -- LR*5.2*1030
- Q
- WAIT W ! K DIR S DIR(0)="E" D ^DIR S:($D(DUOUT))!($D(DTOUT)) LREND=1
- Q
- CHNCASE ;
- S LRCHNG=$E(LRCHNG)_$$LOWCASE^LRAFUNC($E(LRCHNG,2,$L(LRCHNG)))
- Q
- LEGEND ;
- D LRGLIN^LRX
- W !,"Search Criteria:"
- F %=1:1:LRTST D
- . W !,%,") " S LRCHNG=$E($P(LRTST(%,2),U,1),1,10) D CHNCASE
- . W LRCHNG," "
- . W $P(LRTST(%,2),U,3)," Specimen: "
- . W $S($P(LRTST(%,2),U,2)'="":$E($P(LRTST(%,2),U,2),1,79-$X),1:"Any")
- Q
- LRSORA2 ;DALOI/KCM/DRH/RLM-SEARCH LAB DATA AND PRINT REPORT ;8/28/89 12:07
- +1 ;;5.2;LAB SERVICE;**1006,1018,1022,1030**;NOV 01, 1997
- +2 ;;5.2;LAB SERVICE;**2,62,201,272,369**;Sep 27, 1994;Build 2
- +3 ; Reference to $$FMTE^XLFDT supported by IA #10103
- +4 ; Reference to DD^%DT supported by IA #10003
- +5 ; Reference to ^DIR supported by IA #10026
- +6 ; Reference to $$FMTE^XLFDT supported by IA #10103
- +7 ; Reference to $$NOW^XLFDT supported by IA #10103
- START ;
- +1 DO BUILD^LRSORA3
- +2 SET (LRTSTCK,LRSPCK,LRPATCK)=""
- SET NEWPG=1
- +3 IF $EXTRACT(IOST,1,2)="C-"
- WRITE @IOF
- +4 DO MAINLOOP
- IF LREND=1
- DO END
- QUIT
- +5 IF 'LREND
- DO SUMMARY
- +6 DO END
- +7 QUIT
- MAINLOOP ;
- +1 SET (LROLD,LRTOP,LRSPCK,REFCK,LRTSTCK)=""
- +2 SET LRSORTI="^TMP(""LR"","_$JOB_")"
- +3 FOR
- SET LRSORTI=$QUERY(@LRSORTI)
- IF LRSORTI'[$JOB!(LREND=1)
- QUIT
- Begin DoDot:1
- +4 DO SET
- IF LREND=1
- QUIT
- +5 DO PRTCONT
- IF LREND=1
- QUIT
- End DoDot:1
- +6 QUIT
- END ;
- +1 KILL DIR
- +2 KILL LROLD,LRTOP,LRSPCK,REFCK,LRTSTK,LRCOMX,LRSORTI
- +3 KILL LRPREC,PNM,LRCHNG,LRLO,LRHI,LRAN,LRMRK,LRWRD,LRVAL
- +4 KILL LRTEST,LRPREC,LRCDT,LRUNITS,LRCOUNT,NEWPG
- +5 QUIT
- SET ;
- +1 SET LRCOMX=0
- +2 IF LRSORTI["""COM"""
- WRITE " COMMENT: ",@LRSORTI,!
- SET LRCOMX=1
- QUIT
- +3 SET LRPREC=@LRSORTI
- +4 SET PNM=$PIECE(LRPREC,U)
- SET SSN=$PIECE(LRPREC,U,2)
- SET LRLOC=$PIECE(LRPREC,U,3)
- +5 ; IHS/OIT/MKK -- LR*5.2*1030
- SET HRCN=$PIECE(LRPREC,U,2)
- +6 SET LRSPEC=$PIECE(LRPREC,U,5)
- +7 SET LRCHNG=LRSPEC
- DO CHNCASE
- SET LRSPEC=LRCHNG
- +8 SET LRLO=$PIECE(LRPREC,U,7)
- SET LRHI=$PIECE(LRPREC,U,8)
- SET LRVAL=$PIECE(LRPREC,U,9)
- +9 SET LRMRK=$PIECE(LRPREC,U,10)
- SET LRTHER=$PIECE(LRPREC,U,11)
- +10 SET LRAN=$PIECE(LRPREC,U,13)
- SET LRCDT=$PIECE(LRPREC,U,14)
- +11 SET LRWRD=$PIECE($GET(LRPREC),U,12)
- +12 SET LRWRD=$SELECT(""[LRWRD:"**No Entry**",1:LRWRD)
- +13 SET LRTEST=$PIECE(LRPREC,U,15)
- +14 ; S:SSN'=LROLD LROLD=SSN,LRTOP=1
- +15 ; IHS/OIT/MKK -- LR*5.2*1030
- IF HRCN'=LROLD
- SET LROLD=HRCN
- SET LRTOP=1
- +16 SET LRUNITS=$PIECE(LRPREC,U,16)
- +17 SET Y=LRCDT
- DO DD^%DT
- SET LRCDT=$EXTRACT(Y,1,18)
- +18 QUIT
- PRTCONT ;
- +1 IF $GET(LREND)
- QUIT
- +2 SET LRCOUNT=0
- +3 DO CHKPG
- IF LREND=1
- QUIT
- +4 IF NEWPG=1
- DO COND1
- QUIT
- +5 ; I LRPATCK'=SSN D COND2 Q
- +6 ; IHS/OIT/MKK -- LR*5.2*1030
- IF LRPATCK'=HRCN
- DO COND2
- QUIT
- +7 IF LRSPCK'=LRSPEC
- DO COND3
- QUIT
- +8 IF LRTSTCK'=LRTEST
- DO COND3
- QUIT
- +9 IF LRTSTCK=LRTEST
- DO COND4
- QUIT
- +10 QUIT
- COND1 ;
- +1 DO PAGE
- SET NEWPG=""
- +2 DO NEWPAT
- +3 DO NEWSPEC
- +4 DO NEWTST
- SET LRCOUNT=1
- +5 QUIT
- COND2 ;
- +1 DO NEWPAT
- +2 DO NEWSPEC
- +3 DO NEWTST
- SET LRCOUNT=1
- +4 QUIT
- COND3 ;
- +1 DO NEWSPEC
- +2 DO NEWTST
- SET LRCOUNT=1
- +3 QUIT
- COND4 ;
- +1 DO NEWTST
- SET LRCOUNT=1
- +2 QUIT
- PAGE ;
- +1 IF $EXTRACT(IOST,1,2)="C-"
- WRITE @IOF
- +2 DO HDR1
- SET LRTOP=1
- +3 QUIT
- NEWPAT ;
- +1 ; D HDR2 S LRPATCK=SSN
- +2 DO HDR2
- SET LRPATCK=HRCN
- +3 QUIT
- NEWSPEC ;
- +1 DO PRSPEC
- SET LRSPCK=LRSPEC
- +2 QUIT
- NEWTST ;
- +1 DO PRTEST
- SET LRTSTCK=LRTEST
- +2 QUIT
- SAMETST ;
- +1 DO PRTEST
- +2 QUIT
- CHKPG ;
- +1 IF LRCNT<1
- SET LRCNT=1
- +2 IF $GET(LREND)
- QUIT
- +3 IF $Y>(IOSL-7-LRCNT)
- SET NEWPG=1
- Begin DoDot:1
- +4 DO LEGEND
- IF $EXTRACT(IOST,1,2)'="C-"
- WRITE @IOF
- +5 IF $EXTRACT(IOST,1,2)="C-"
- DO WAIT
- IF LREND
- QUIT
- SET LRTOP=1
- End DoDot:1
- +6 QUIT
- PRSPEC ;
- +1 WRITE ?2,$EXTRACT(LRSPEC,1,10)
- +2 WRITE ?14,$SELECT(LRTHER:"Th. Range ",1:"Ref. Range: "),LRLO
- +3 WRITE "-",LRHI," ",LRUNITS,!
- +4 QUIT
- PRTEST ;
- +1 IF $GET(LRCOMX)
- QUIT
- +2 IF $GET(LREND)
- QUIT
- +3 SET LRCOMX=0
- +4 WRITE ?4,$EXTRACT(LRTEST,1,12),?14,LRAN,?30,$JUSTIFY(LRVAL,4)
- +5 WRITE ?33,LRMRK,?40,$EXTRACT(LRCDT,1,6)_" "_$EXTRACT($PIECE(LRCDT,",",2),2,5)
- +6 WRITE " at ",$PIECE(LRCDT,"@",2)
- +7 WRITE ?64,LRLOC,!
- +8 IF $GET(LREND)!(LRTOP)
- QUIT
- +9 QUIT
- COM ;Print comments on specimen
- +1 IF $GET(LREND)
- QUIT
- WRITE !," COMMENT(S): "
- +2 SET C=""
- +3 FOR
- SET C=$ORDER(^TMP("LR",$JOB,LRSUB1,LRSUB2,LRSUB3,LRAN,"COM",C))
- IF (C="")!(LREND)
- QUIT
- Begin DoDot:1
- +4 IF $Y+7>IOSL
- Begin DoDot:2
- +5 IF $EXTRACT(IOST,1,2)="C-"
- DO WAIT
- IF LREND=1
- QUIT
- DO CHKPG
- +6 WRITE !,"COMMENT(S): "
- End DoDot:2
- +7 IF LREND
- QUIT
- End DoDot:1
- +8 QUIT
- SUMMARY ;
- +1 IF ($Y>(IOSL-7-LRCNT))
- IF $EXTRACT(IOST,1,2)="C-"
- DO WAIT
- IF LREND=1
- QUIT
- DO CHKPG
- +2 DO LEGEND
- +3 FOR I=$Y:1:(IOSL-6)
- WRITE !
- +4 WRITE !,?20,"END OF SPECIAL REPORT"
- QUIT
- +5 QUIT
- HDR1 ;
- +1 ; IHS/OIT/MKK -- LR*5.2*1030 -- Put Name/address in header
- DO LABHDR^BLRUTIL2
- +2 SET LRTST(0)=$EXTRACT(LRTST(0),1,30)
- +3 SET %=32-$LENGTH(LRTST(0))\2+15
- +4 SET LRPAG=LRPAG+1
- +5 WRITE "SPECIAL REPORT",?31
- +6 WRITE "Report Date: "
- +7 WRITE $$FMTE^XLFDT($$NOW^XLFDT,"")
- +8 WRITE !,LRHDR2,?71,"Pg ",$JUSTIFY(LRPAG,3)
- +9 WRITE !
- DO LRGLIN^LRX
- +10 SET LRTOP=""
- +11 SET LRCHKSP=0
- +12 QUIT
- HDR2 ;
- +1 ; W !,PNM,?28,SSN,?61,$E(LRWRD,1,16),!
- +2 ; IHS/OIT/MKK -- LR*5.2*1030
- WRITE !,PNM,?28,HRCN,?61,$EXTRACT(LRWRD,1,16),!
- +3 QUIT
- WAIT WRITE !
- KILL DIR
- SET DIR(0)="E"
- DO ^DIR
- IF ($DATA(DUOUT))!($DATA(DTOUT))
- SET LREND=1
- +1 QUIT
- CHNCASE ;
- +1 SET LRCHNG=$EXTRACT(LRCHNG)_$$LOWCASE^LRAFUNC($EXTRACT(LRCHNG,2,$LENGTH(LRCHNG)))
- +2 QUIT
- LEGEND ;
- +1 DO LRGLIN^LRX
- +2 WRITE !,"Search Criteria:"
- +3 FOR %=1:1:LRTST
- Begin DoDot:1
- +4 WRITE !,%,") "
- SET LRCHNG=$EXTRACT($PIECE(LRTST(%,2),U,1),1,10)
- DO CHNCASE
- +5 WRITE LRCHNG," "
- +6 WRITE $PIECE(LRTST(%,2),U,3)," Specimen: "
- +7 WRITE $SELECT($PIECE(LRTST(%,2),U,2)'="":$EXTRACT($PIECE(LRTST(%,2),U,2),1,79-$X),1:"Any")
- End DoDot:1
- +8 QUIT