[613] | 1 | LRLNCSUF ;DALOI/RSH-PRINT WKLD/NLT CODE LOINC MAPPINGS ;1-OCT-1998
|
---|
| 2 | ;;5.2;LAB SERVICE;**232**;Sep 27,1994
|
---|
| 3 | EN ;
|
---|
| 4 | W @IOF,!! S LREND=0
|
---|
| 5 | W $$CJ^XLFSTR("This option will print WORKLOAD CODES and their LOINC CODES.",IOM)
|
---|
| 6 | W !,$$CJ^XLFSTR("You may use the option 'MAP LOINC TEST TO NLT' to make necessary changes.",IOM)
|
---|
| 7 | ASK ;
|
---|
| 8 | K DIR S DIR(0)="S^1:Ready to print WORKLOAD CODES MAPPED TO LOINC;2:Abort"
|
---|
| 9 | D ^DIR K DIR
|
---|
| 10 | G END:$S($G(DIRUT):1,$G(DUOUT):1,$G(DTOUT):1,Y=2:1,1:0)
|
---|
| 11 | S LRSEL=Y K %ZIS S %ZIS="Q" D ^%ZIS
|
---|
| 12 | G END:POP
|
---|
| 13 | I IO'=IO(0) S ZTRTN="DQ^LRLNCSUF",ZTIO=ION,ZTDESC="Print WKLD CODES MAPPED TO LOINC",ZTSAVE("LRSEL")="" D ^%ZTLOAD I $D(ZTSK)'[0 W !!?5," Tasked to Print on : ",ION G END
|
---|
| 14 | W @IOF D DQ
|
---|
| 15 | D END
|
---|
| 16 | Q
|
---|
| 17 | DQ ;
|
---|
| 18 | N DIR,LREND
|
---|
| 19 | S $P(LRLINE,"=",IOM)="",LRTOP=1
|
---|
| 20 | S:$D(ZTQUEUED) ZTREQ="@" S LRPDT=$$FMTE^XLFDT($$NOW^XLFDT,"1P")
|
---|
| 21 | S (LRPAGE,LRCNT,LREND)=0
|
---|
| 22 | S LRDEF=""
|
---|
| 23 | D HDR
|
---|
| 24 | ;SORT BY TEST
|
---|
| 25 | S LRNODE="^LAB(60,""B"",0)",LRCNT=0
|
---|
| 26 | F S LRNODE=$Q(@LRNODE) Q:$QS(LRNODE,2)'="B" Q:$G(LREND) D
|
---|
| 27 | . Q:$G(@LRNODE)!($G(LREND))
|
---|
| 28 | . S LRTSTNM=$QS(LRNODE,3)
|
---|
| 29 | . S LRIEN=+$QS(LRNODE,4)
|
---|
| 30 | . S (LRLOINC,LRSMPIEN,LRVWKIEN,LRACCIEN)=""
|
---|
| 31 | . S LRX=$G(^LAB(60,LRIEN,0)) Q:$P(LRX,U,3)="N"
|
---|
| 32 | . S LRVACD=$P($G(^LAB(60,LRIEN,64)),U)
|
---|
| 33 | . S LRRNLT=$P($G(^LAB(60,LRIEN,64)),U,2)
|
---|
| 34 | . D SMPCD D:$G(LRSMPIEN) GRNLT(LRSMPIEN)
|
---|
| 35 | . D VRWKD D:$G(LRVWKIEN) GRNLT(LRVWKIEN)
|
---|
| 36 | . D ACWK D:$G(LRACCIEN) GRNLT(LRACCIEN)
|
---|
| 37 | . I LRSMPIEN=""&(LRVWKIEN="")&(LRACCIEN="") D
|
---|
| 38 | . . I ($G(LRRNLT)) D GRNLT(LRRNLT)
|
---|
| 39 | . . I LRRNLT="" D
|
---|
| 40 | . . . W !,LRTSTNM,?45,"THERE IS NO RESULT NLT CODE"
|
---|
| 41 | . . . W !,LRLINE
|
---|
| 42 | . . . I $Y>24 D HDR,TOP Q:$G(LREND)
|
---|
| 43 | Q
|
---|
| 44 | SMPCD ;GET SAMPLE WORKLOAD CODE
|
---|
| 45 | S (LRD1,LRD2)=0
|
---|
| 46 | F S LRD1=+$O(^LAB(60,LRIEN,3,LRD1)) Q:LRD1<1 D
|
---|
| 47 | . Q:'$O(^LAB(60,LRIEN,3,LRD1,9,0))
|
---|
| 48 | . F S LRD2=+$O(^LAB(60,LRIEN,3,LRD1,9,LRD2)) Q:LRD2<1 D
|
---|
| 49 | . . S LRSREC=$G(^LAB(60,LRIEN,LRD1,9,LRD2,0))
|
---|
| 50 | . . S LRSMPIEN=$P(LRSREC,U)
|
---|
| 51 | Q
|
---|
| 52 | VRWKD ;GET VERIFY WORKLOAD CODE
|
---|
| 53 | S LRD1=0 Q:'$O(^LAB(60,LRIEN,9,0))
|
---|
| 54 | F S LRD1=+$O(^LAB(60,LRIEN,9,LRD1)) Q:'LRD1 D
|
---|
| 55 | . S LRVREC=$G(^LAB(60,LRIEN,9,LRD1,0))
|
---|
| 56 | . S LRVWKIEN=$P(LRVREC,U)
|
---|
| 57 | Q
|
---|
| 58 | ACWK ;GET ACCESSION WORKLOAD CODE
|
---|
| 59 | S LRSUB=0
|
---|
| 60 | Q:'$O(^LAB(60,LRIEN,9.1,0))
|
---|
| 61 | F S LRSUB=+$O(^LAB(60,LRIEN,9.1,LRSUB)) Q:LRSUB<1 D
|
---|
| 62 | . S LRREC=$G(^LAB(60,LRIEN,9.1,LRSUB,0))
|
---|
| 63 | . S LRACCIEN=$P(LRREC,U)
|
---|
| 64 | Q
|
---|
| 65 | GRNLT(LRNLTIEN) ;GET RESULT NLT CODE
|
---|
| 66 | Q:$G(^LAM(LRNLTIEN,0))=""
|
---|
| 67 | Q:'$D(^LAM(LRNLTIEN,0))#2!($P($G(^LAM(LRNLTIEN,0)),U,2)="") S LRNAME=$P(^(0),U),LRCODE=$P(^(0),U,2)
|
---|
| 68 | D TOP Q:$G(LREND)
|
---|
| 69 | I $O(^LAM(LRNLTIEN,5,0)) D GTLNC
|
---|
| 70 | SDEFCD ;SET DEFAULT LOINC CODE
|
---|
| 71 | I $G(^LAM(LRNLTIEN,9)) S LRDEF=$P(^(0),U)
|
---|
| 72 | E S LRDEF="" ;USE GENERIC SUFFIX CODE
|
---|
| 73 | I '$O(^LAM(LRNLTIEN,5,0)) D PRT
|
---|
| 74 | Q
|
---|
| 75 | GTLNC ;GET LOINC CODE BASED ON THE SPECIMEN
|
---|
| 76 | S LRSPEC=0 F S LRSPEC=+$O(^LAM(LRNLTIEN,5,LRSPEC)) Q:LRSPEC<1!($G(LREND)) D
|
---|
| 77 | . D TOP Q:$G(LREND)
|
---|
| 78 | . S LRASP=0 F S LRASP=+$O(^LAM(LRNLTIEN,5,LRSPEC,1,LRASP)) Q:LRASP<1 D
|
---|
| 79 | . . D TOP Q:$G(LREND)
|
---|
| 80 | . . S LRX=+$G(^LAM(LRNLTIEN,5,LRSPEC,1,LRASP,1))
|
---|
| 81 | . . I $D(^LAB(95.3,LRX,0))#2 S LRLOINC=$P(^(0),U)
|
---|
| 82 | . . S LRSPNM=$P($G(^LAB(61,LRSPEC,0)),U),LRFULL=$G(^LAB(95.3,LRX,80))
|
---|
| 83 | . . I $G(LRLOINC) D PRT
|
---|
| 84 | . . S (LRLOINC,LRFULL)=""
|
---|
| 85 | Q
|
---|
| 86 | PRT ;PRINT INFO
|
---|
| 87 | D TOP Q:$G(LREND)
|
---|
| 88 | W !?2,$G(LRTSTNM),?47,$G(LRSPNM)
|
---|
| 89 | W !?2,$G(LRNLTIEN),?12,LRCODE_" "_$G(LRNAME)
|
---|
| 90 | I LRLOINC'="" W !,"LOINC CODE = ",LRLOINC," ",$G(LRFULL)
|
---|
| 91 | I LRDEF'="" W !,"DEFAULT LOINC CODE = ",$G(LRDEF)
|
---|
| 92 | I LRLOINC!LRDEF S LRCNT=LRCNT+1
|
---|
| 93 | W !,LRLINE
|
---|
| 94 | I $Y>24 D HDR,TOP Q:$G(LREND)
|
---|
| 95 | Q
|
---|
| 96 | END ;
|
---|
| 97 | I $G(LRCNT) W !?15,"Total Number of Mapped WKLD CODES/Specimens: ",LRCNT,!
|
---|
| 98 | I $E(IOST)="P-" W @IOF
|
---|
| 99 | D ^%ZISC
|
---|
| 100 | K DIR,DIRUT,DUOUT,LRACCIEN,LRASP,LRCODE,LRCNT,LRD1,LRD2,LRDEF
|
---|
| 101 | K LREND,LRFULL,LRIEN,LRLINE,LRLOINC,LRNAME,LRNLTIEN,LRNODE,LRPAGE
|
---|
| 102 | K LRPDT,LRREC,LRRNLT,LRSEL,LRSMPIEN,LRSPEC,LRSPNM,LRSREC,LRSUB
|
---|
| 103 | K LRTOP,LRTSTNM,LRVACD,LRVREC,LRVWKIEN,LRX,POP,ZTIO,ZTDESC,ZTRTN,ZTSAVE
|
---|
| 104 | ;
|
---|
| 105 | Q
|
---|
| 106 | TOP ;
|
---|
| 107 | Q:$G(LREND)
|
---|
| 108 | Q:$Y<(IOSL-4)
|
---|
| 109 | I $E(IOST,1,2)="C-" D Q:$G(LREND)
|
---|
| 110 | . S DIR(0)="E" D ^DIR
|
---|
| 111 | . S:$S($G(DIRUT):1,$G(DUOUT):1,1:0) LREND=1
|
---|
| 112 | HDR ;
|
---|
| 113 | I $G(LRPAGE) W @IOF
|
---|
| 114 | S LRPAGE=$G(LRPAGE)+1
|
---|
| 115 | Q:'$G(LRTOP)
|
---|
| 116 | W !,$$CJ^XLFSTR("Alphabetical Listing of Laboratory Tests ",IOM)
|
---|
| 117 | W !,$$CJ^XLFSTR("that are Mapped to LOINC Codes.",IOM)
|
---|
| 118 | W !,?5,LRPDT,?60,"Page: ",LRPAGE
|
---|
| 119 | W !!,"LABORATORY TEST NAME",?45,"SPECIMEN"
|
---|
| 120 | W !,"NLT IEN # WKLD CODE Name ",!
|
---|
| 121 | Q
|
---|