LRLNCNLT ;DALOI/FHS-PRINT LAB TEST W/O RESULT NLT CODE ;1-OCT-1998
;;5.2;LAB SERVICE;**215,278,418**;Sep 27,1994;Build 1
EN ;
W @IOF,!! S LREND=0
W $$CJ^XLFSTR("This option will print tests and their RESULT NLT CODES",IOM)
W !,$$CJ^XLFSTR("assigned. Result NLT codes are required for LEDI and LOINC",IOM)
W !,$$CJ^XLFSTR("Mapping software to function properly.",IOM)
W !,$$CJ^XLFSTR("You may use the option 'Link Result NLT Manual' to make necessary changes.",IOM)
ASK ;
K DIR S DIR(0)="S^0:All Lab Tests;1:Lab Tests with Result NLT Codes;2:Lab Tests without Result NLT Codes"
S DIR("?")="All will print Lab Tests with and w/o result NLT codes tests"
D ^DIR K DIR
G END:$S($G(DIRUT):1,$G(DUOUT):1,$G(DTOUT):1,1:0)
S LRSEL=Y
K %ZIS S %ZIS="Q" D ^%ZIS
G END:POP
I IO'=IO(0) S ZTRTN="DQ^LRLNCNLT",ZTIO=ION,ZTDESC="Print Lab Tests and Result Codes",ZTSAVE("LRSEL")="" D ^%ZTLOAD I $D(ZTSK)'[0 W !!?5," Tasked to Print on : ",ION G END
W @IOF D DQ G END
Q
DQ ;
N DIR,LREND
S:$D(ZTQUEUED) ZTREQ="@" S LRPDT=$$FMTE^XLFDT($$NOW^XLFDT,1)
S (LRPAGE,LRCNT,LREND)=0
D HDR
S LRNODE="^LAB(60,""B"",0)",LRCNT=0
F S LRNODE=$Q(@LRNODE) Q:$QS(LRNODE,2)'="B" Q:$G(LREND) D
. Q:$G(@LRNODE)!($G(LREND))
. S LRIEN=$QS(LRNODE,4),LRNAME=$QS(LRNODE,3),LRC=$P($G(^LAB(60,LRIEN,64)),U,2)
. S LRX=$G(^LAB(60,+$G(LRIEN),0)) Q:$P(LRX,U,3)=""
. Q:$P(LRX,"^",4)'="CH" ;only CH tests are relevant
. Q:$O(^LAB(60,LRIEN,2,0))'="" ;only atomic tests are relevant
. Q:"BO"'[$P(LRX,U,3)
. I $G(LRSEL)=2,LRC Q
. I $G(LRSEL)=1,'LRC Q
. S LRCNT=$G(LRCNT)+1
. D TOF Q:$G(LREND)
. W !,$$RJ^XLFSTR(LRIEN,5),?8,LRNAME
. I $G(LRC) D NLTPRT(LRC)
Q
NLTPRT(LRC) ;
D TOF Q:LREND
N LRSPEC
I '$D(^LAM(LRC,0))#2 W !?15," **** Corrupt DATABASE ****" Q
W !?5,"[ ",$P(^LAM(LRC,0),U,2),?18,$P(^(0),U)," ]",!
S LRSPEC=0 F S LRSPEC=$O(^LAB(60,LRIEN,1,LRSPEC)) Q:LRSPEC<1!($G(LREND)) D
. S LRX=+$G(^LAB(60,LRIEN,1,LRSPEC,95.3)) Q:'LRX
. I $Y>(IOSL-4) D TOF1 Q:$G(LREND) W !,$$RJ^XLFSTR(LRIEN,5),?8,LRNAME
. W !?10,"Specimen [ ",$P($G(^LAB(61,LRSPEC,0)),U),"] Mapped to LOINC CODE"
. W !,$G(^LAB(95.3,LRX,80)),!
Q
END ;
I $G(LRCNT) W !?20,"Total Printed Tests: ",LRCNT,!
I $E(IOST)="P-" W @IOF
D ^%ZISC
K DIR,DIRUT,DUOUT,LRC,LRCNT,LREND,LRIEN,LRNAME,LRNODE,LRPAGE
K LRPDT,LRSEL,LRX,POP,ZTIO,ZTDESC,ZTRTN,ZTSAVE
;
Q
TOF ;
Q:$Y<(IOSL-3)
TOF1 I $E(IOST,1,2)="C-" D Q:$G(LREND)
. S DIR(0)="E" D ^DIR
. S:$S($G(DIRUT):1,$G(DUOUT):1,1:0) LREND=1
HDR ;
I $G(LRPAGE) W @IOF
S LRPAGE=$G(LRPAGE)+1 W !,?5,LRPDT,?60,"Page: ",LRPAGE
W !,$$CJ^XLFSTR("Alphabetical Listing of CH Subscripted Lab Tests",IOM)
I $G(LRSEL)=1 W !,$$CJ^XLFSTR("That have RESULT NLT CODES assigned",IOM),!
I $G(LRSEL)=2 W !,$$CJ^XLFSTR("That do not have RESULT NLT CODES assigned",IOM),!
W !," IEN Lab Test Name " I $G(LRSEL)=2 W ! Q
W !," NLT # Result NLT Code Name ",!
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRLNCNLT 2947 printed Dec 13, 2024@02:16:38 Page 2
LRLNCNLT ;DALOI/FHS-PRINT LAB TEST W/O RESULT NLT CODE ;1-OCT-1998
+1 ;;5.2;LAB SERVICE;**215,278,418**;Sep 27,1994;Build 1
EN ;
+1 WRITE @IOF,!!
SET LREND=0
+2 WRITE $$CJ^XLFSTR("This option will print tests and their RESULT NLT CODES",IOM)
+3 WRITE !,$$CJ^XLFSTR("assigned. Result NLT codes are required for LEDI and LOINC",IOM)
+4 WRITE !,$$CJ^XLFSTR("Mapping software to function properly.",IOM)
+5 WRITE !,$$CJ^XLFSTR("You may use the option 'Link Result NLT Manual' to make necessary changes.",IOM)
ASK ;
+1 KILL DIR
SET DIR(0)="S^0:All Lab Tests;1:Lab Tests with Result NLT Codes;2:Lab Tests without Result NLT Codes"
+2 SET DIR("?")="All will print Lab Tests with and w/o result NLT codes tests"
+3 DO ^DIR
KILL DIR
+4 if $SELECT($GET(DIRUT):1,$GET(DUOUT):1,$GET(DTOUT):1,1:0)
GOTO END
+5 SET LRSEL=Y
+6 KILL %ZIS
SET %ZIS="Q"
DO ^%ZIS
+7 if POP
GOTO END
+8 IF IO'=IO(0)
SET ZTRTN="DQ^LRLNCNLT"
SET ZTIO=ION
SET ZTDESC="Print Lab Tests and Result Codes"
SET ZTSAVE("LRSEL")=""
DO ^%ZTLOAD
IF $DATA(ZTSK)'[0
WRITE !!?5," Tasked to Print on : ",ION
GOTO END
+9 WRITE @IOF
DO DQ
GOTO END
+10 QUIT
DQ ;
+1 NEW DIR,LREND
+2 if $DATA(ZTQUEUED)
SET ZTREQ="@"
SET LRPDT=$$FMTE^XLFDT($$NOW^XLFDT,1)
+3 SET (LRPAGE,LRCNT,LREND)=0
+4 DO HDR
+5 SET LRNODE="^LAB(60,""B"",0)"
SET LRCNT=0
+6 FOR
SET LRNODE=$QUERY(@LRNODE)
if $QSUBSCRIPT(LRNODE,2)'="B"
QUIT
if $GET(LREND)
QUIT
Begin DoDot:1
+7 if $GET(@LRNODE)!($GET(LREND))
QUIT
+8 SET LRIEN=$QSUBSCRIPT(LRNODE,4)
SET LRNAME=$QSUBSCRIPT(LRNODE,3)
SET LRC=$PIECE($GET(^LAB(60,LRIEN,64)),U,2)
+9 SET LRX=$GET(^LAB(60,+$GET(LRIEN),0))
if $PIECE(LRX,U,3)=""
QUIT
+10 ;only CH tests are relevant
if $PIECE(LRX,"^",4)'="CH"
QUIT
+11 ;only atomic tests are relevant
if $ORDER(^LAB(60,LRIEN,2,0))'=""
QUIT
+12 if "BO"'[$PIECE(LRX,U,3)
QUIT
+13 IF $GET(LRSEL)=2
IF LRC
QUIT
+14 IF $GET(LRSEL)=1
IF 'LRC
QUIT
+15 SET LRCNT=$GET(LRCNT)+1
+16 DO TOF
if $GET(LREND)
QUIT
+17 WRITE !,$$RJ^XLFSTR(LRIEN,5),?8,LRNAME
+18 IF $GET(LRC)
DO NLTPRT(LRC)
End DoDot:1
+19 QUIT
NLTPRT(LRC) ;
+1 DO TOF
if LREND
QUIT
+2 NEW LRSPEC
+3 IF '$DATA(^LAM(LRC,0))#2
WRITE !?15," **** Corrupt DATABASE ****"
QUIT
+4 WRITE !?5,"[ ",$PIECE(^LAM(LRC,0),U,2),?18,$PIECE(^(0),U)," ]",!
+5 SET LRSPEC=0
FOR
SET LRSPEC=$ORDER(^LAB(60,LRIEN,1,LRSPEC))
if LRSPEC<1!($GET(LREND))
QUIT
Begin DoDot:1
+6 SET LRX=+$GET(^LAB(60,LRIEN,1,LRSPEC,95.3))
if 'LRX
QUIT
+7 IF $Y>(IOSL-4)
DO TOF1
if $GET(LREND)
QUIT
WRITE !,$$RJ^XLFSTR(LRIEN,5),?8,LRNAME
+8 WRITE !?10,"Specimen [ ",$PIECE($GET(^LAB(61,LRSPEC,0)),U),"] Mapped to LOINC CODE"
+9 WRITE !,$GET(^LAB(95.3,LRX,80)),!
End DoDot:1
+10 QUIT
END ;
+1 IF $GET(LRCNT)
WRITE !?20,"Total Printed Tests: ",LRCNT,!
+2 IF $EXTRACT(IOST)="P-"
WRITE @IOF
+3 DO ^%ZISC
+4 KILL DIR,DIRUT,DUOUT,LRC,LRCNT,LREND,LRIEN,LRNAME,LRNODE,LRPAGE
+5 KILL LRPDT,LRSEL,LRX,POP,ZTIO,ZTDESC,ZTRTN,ZTSAVE
+6 ;
+7 QUIT
TOF ;
+1 if $Y<(IOSL-3)
QUIT
TOF1 IF $EXTRACT(IOST,1,2)="C-"
Begin DoDot:1
+1 SET DIR(0)="E"
DO ^DIR
+2 if $SELECT($GET(DIRUT)
SET LREND=1
End DoDot:1
if $GET(LREND)
QUIT
HDR ;
+1 IF $GET(LRPAGE)
WRITE @IOF
+2 SET LRPAGE=$GET(LRPAGE)+1
WRITE !,?5,LRPDT,?60,"Page: ",LRPAGE
+3 WRITE !,$$CJ^XLFSTR("Alphabetical Listing of CH Subscripted Lab Tests",IOM)
+4 IF $GET(LRSEL)=1
WRITE !,$$CJ^XLFSTR("That have RESULT NLT CODES assigned",IOM),!
+5 IF $GET(LRSEL)=2
WRITE !,$$CJ^XLFSTR("That do not have RESULT NLT CODES assigned",IOM),!
+6 WRITE !," IEN Lab Test Name "
IF $GET(LRSEL)=2
WRITE !
QUIT
+7 WRITE !," NLT # Result NLT Code Name ",!
+8 QUIT