| 1 | LRLNCPMP ;DALOI/FHS - PRINT LAB TESTS MAPPED/NOT MAPPED TO LOINC CODES ;1-OCT-1998 | 
|---|
| 2 | ;;5.2;LAB SERVICE;**215,232,278,303**;Sep 27,1994 | 
|---|
| 3 | EN ; | 
|---|
| 4 | W @IOF K LRMAP,LREND | 
|---|
| 5 | W !,$$CJ^XLFSTR("This option prints a list of the LABORATORY TESTS from the LABORATORY TEST FILE.",IOM) | 
|---|
| 6 | W !,$$CJ^XLFSTR("You will be prompted to print lab tests that are",IOM) | 
|---|
| 7 | W !,$$CJ^XLFSTR("mapped/not mapped to a LOINC code.",IOM) | 
|---|
| 8 | W !,$$CJ^XLFSTR("Inactive(Type:Neither) lab tests are not reported.",IOM) | 
|---|
| 9 | WHICH ; | 
|---|
| 10 | W !!!,"Print lab tests that are mapped/not mapped to a LOINC code." | 
|---|
| 11 | K DIR,LRMAP | 
|---|
| 12 | S DIR("?")="Select 1 for mapped, 0 for not mapped or 2 for Individual" | 
|---|
| 13 | S DIR(0)="SO^0:Not Mapped;1:Mapped test;2:Individual Mapped Test" | 
|---|
| 14 | D ^DIR K DIR | 
|---|
| 15 | I Y=""!($D(DIRUT)) D EXIT Q | 
|---|
| 16 | S LRMAP=Y | 
|---|
| 17 | D:+Y=2 SING G:$G(LREND) EXIT | 
|---|
| 18 | K %ZIS S %ZIS="Q" D ^%ZIS G:POP EXIT | 
|---|
| 19 | I $D(IO("Q")) D QUE Q | 
|---|
| 20 | ; | 
|---|
| 21 | U IO | 
|---|
| 22 | D START,^%ZISC | 
|---|
| 23 | Q | 
|---|
| 24 | ; | 
|---|
| 25 | ; | 
|---|
| 26 | SING ; Select individual lab test for report | 
|---|
| 27 | I LRMAP=2 D | 
|---|
| 28 | . K LRMAP | 
|---|
| 29 | . S LREND=0,LRMAP=2 | 
|---|
| 30 | . W !,$$CJ^XLFSTR("You can only select test that have been mapped.",IOM) | 
|---|
| 31 | . W !,$$CJ^XLFSTR("You can a quick list of mapped tests by entering '?'.",IOM) | 
|---|
| 32 | . W !,$$CJ^XLFSTR("Then enter 'Yes' you want a complete list.",IOM),! | 
|---|
| 33 | . K DIR,X,Y | 
|---|
| 34 | . S DIR(0)="PO^60:EZNMQ" | 
|---|
| 35 | . S DIR("S")="I $S($D(^LAM(""AL"",+Y)):1,$D(^LAM(""AM"",+Y)):1,1:0)" | 
|---|
| 36 | . S DIR("?")="You must select a Mapped LABORATORY TEST" | 
|---|
| 37 | . F  D ^DIR Q:Y<1!($D(DIRUT))  S LRMAP(+Y)=Y | 
|---|
| 38 | . I '$O(LRMAP(0)) W !!?5,"Nothing Selected" S LREND=1 | 
|---|
| 39 | Q | 
|---|
| 40 | QUE ; | 
|---|
| 41 | S ZTRTN="START^LRLNCPMP" | 
|---|
| 42 | S ZTDESC="LAB TESTS MAP REPORT",ZTSAVE("LRMAP*")="" | 
|---|
| 43 | D ^%ZTLOAD | 
|---|
| 44 | I $D(ZTSK)'[0 W !,"REQUEST QUEUED ",ION | 
|---|
| 45 | D HOME^%ZIS | 
|---|
| 46 | K IO("Q") | 
|---|
| 47 | Q | 
|---|
| 48 | ; | 
|---|
| 49 | ; | 
|---|
| 50 | START ; Begins report | 
|---|
| 51 | N LINE,LOINCDTA,LOINCDTB,LOINCTAS,LRAA,LRAA1,LRPNTA,LRPNTB,LRSUB | 
|---|
| 52 | S LINE=0 | 
|---|
| 53 | D INI | 
|---|
| 54 | I LRMAP'=2 D EN1 | 
|---|
| 55 | I LRMAP=2 D | 
|---|
| 56 | . S LRIEN=0 | 
|---|
| 57 | . F  S LRIEN=$O(LRMAP(LRIEN)) Q:LRIEN<1  S LRNODE=$G(^LAB(60,LRIEN,0)) D YMAP | 
|---|
| 58 | D YMAPPRT,EXIT | 
|---|
| 59 | Q | 
|---|
| 60 | ; | 
|---|
| 61 | ; | 
|---|
| 62 | EN1 ; Print mapped or not mapped lab tests if there is a data name | 
|---|
| 63 | S LRTEST="" | 
|---|
| 64 | S LRTST="^LAB(60,""B"",0)" | 
|---|
| 65 | F  S LRTST=$Q(@LRTST) Q:$QS(LRTST,2)'="B"  D  Q:$G(LREND) | 
|---|
| 66 | . Q:$G(@LRTST) | 
|---|
| 67 | . S LRIEN=$QS(LRTST,4) | 
|---|
| 68 | . Q:'$D(^LAB(60,LRIEN,0))#2  S LRNODE=^(0) | 
|---|
| 69 | . I $S($P(LRNODE,U,3)="":1,$P(LRNODE,U,3)="N":1,'$P($P(LRNODE,U,5),";",2):1,1:0) Q | 
|---|
| 70 | . N LRNLT | 
|---|
| 71 | . S LRNLT=+$P($G(^LAB(60,LRIEN,64)),U,2) | 
|---|
| 72 | . I 'LRMAP,$S(('$D(^LAM("AL",LRIEN))&('$D(^LAM("AM",LRIEN)))):1,1:0) D NMAP | 
|---|
| 73 | . I LRMAP,$S($D(^LAM("AL",LRIEN)):1,$D(^LAM("AM",LRIEN)):1,1:0) D YMAP | 
|---|
| 74 | Q | 
|---|
| 75 | ; | 
|---|
| 76 | ; | 
|---|
| 77 | YMAPPRT I $D(^TMP($J,"LRDATA")) D | 
|---|
| 78 | . S LRPRT=0 | 
|---|
| 79 | . F  S LRPRT=$O(^TMP($J,"LRDATA",LRPRT)) Q:LRPRT=""  D  Q:$G(LREND) | 
|---|
| 80 | .. I $Y+4>IOSL D HDR Q:$G(LREND) | 
|---|
| 81 | .. W !,^TMP($J,"LRDATA",LRPRT) | 
|---|
| 82 | Q | 
|---|
| 83 | ; | 
|---|
| 84 | ; | 
|---|
| 85 | NMAP ; | 
|---|
| 86 | I $Y+4>IOSL D HDR Q:$G(LREND) | 
|---|
| 87 | S LRTESTN=$P(LRNODE,U) | 
|---|
| 88 | W !,?1,LRTESTN | 
|---|
| 89 | S LRNLT=$P($G(^LAB(60,LRIEN,64)),U,2) | 
|---|
| 90 | I LRNLT D | 
|---|
| 91 | . N LROUT | 
|---|
| 92 | . D GETS^DIQ(64,LRNLT_",",".01;1","E","LROUT") | 
|---|
| 93 | . W !?5,$G(LROUT(64,LRNLT_",",1,"E")),?18,$G(LROUT(64,LRNLT_",",.01,"E")) | 
|---|
| 94 | W ! | 
|---|
| 95 | Q | 
|---|
| 96 | ; | 
|---|
| 97 | ; | 
|---|
| 98 | YMAP ; | 
|---|
| 99 | S LINE=$G(LINE)+1 | 
|---|
| 100 | S ^TMP($J,"LRDATA",LINE)="LAB TEST :  "_$P(LRNODE,U),LINE=LINE+1 | 
|---|
| 101 | S LRSUB="LOCAL REPORT" | 
|---|
| 102 | N LRA,LRNLTX | 
|---|
| 103 | S LRNLT=0 | 
|---|
| 104 | F  S LRNLT=$O(^LAM("AM",LRIEN,LRNLT)) Q:LRNLT=""  I '$D(LRNLTX(LRNLT)) D | 
|---|
| 105 | . S LRA=LRNLT,LRNLTX(LRNLT)=1 | 
|---|
| 106 | . D LOINCLA^LRSRVR1 | 
|---|
| 107 | S LRNLT=0 | 
|---|
| 108 | F  S LRNLT=$O(^LAM("AL",LRIEN,LRNLT)) Q:LRNLT=""  I '$D(LRNLTX(LRNLT)) D | 
|---|
| 109 | . S LRA=LRNLT,LRNLTX(LRNLT)=1 | 
|---|
| 110 | . D LOINCLA^LRSRVR1 | 
|---|
| 111 | S LINE=$G(LINE)+1,^TMP($J,"LRDATA",LINE)="-------------------" | 
|---|
| 112 | S LINE=LINE+1,^TMP($J,"LRDATA",LINE)="",LINE=LINE+1 | 
|---|
| 113 | Q | 
|---|
| 114 | ; | 
|---|
| 115 | ; | 
|---|
| 116 | INI ; Initialize variables | 
|---|
| 117 | K ^TMP($J,"LRDATA") | 
|---|
| 118 | S (LREND,LRPAGE)=0,$P(LRLINE,"=",(IOM-1))="" | 
|---|
| 119 | S LRPDT=$$HTE^XLFDT($H,"MZ") | 
|---|
| 120 | ; | 
|---|
| 121 | HDR ; Print heading | 
|---|
| 122 | I LRPAGE,$E(IOST,1,2)="C-" W !,"Press RETURN to continue or '^' to exit: " R N:DTIME S LREND='$T!(N="^") Q:LREND | 
|---|
| 123 | S LRPAGE=LRPAGE+1 | 
|---|
| 124 | W @IOF,!?16,"LAB TESTS"_$S(LRMAP=2:" Individual Mapped",LRMAP=1:" Mapped",LRMAP'=1:" NOT Mapped",1:0)_" TO LOINC CODES" | 
|---|
| 125 | W !?5,LRPDT,?(IOM-15)," Page ",$J(LRPAGE,3) | 
|---|
| 126 | I 'LRMAP W !,?5,"LAB TEST" | 
|---|
| 127 | I 'LRMAP W !,?10,"RESULT NLT" | 
|---|
| 128 | W !,LRLINE,! | 
|---|
| 129 | Q | 
|---|
| 130 | ; | 
|---|
| 131 | ; | 
|---|
| 132 | EXIT I $E(IOST,1,2)="P-" W @IOF | 
|---|
| 133 | S:$D(ZTQUEUED) ZTREQ="@" | 
|---|
| 134 | Q:$G(LRDBUG) | 
|---|
| 135 | K DIR,DIRUT,LREND,LRPAGE,I,J,LRA,LRLOC,LRIEN,LRPREV,ZTIO,ZTDESC,ZTRTN | 
|---|
| 136 | K LRMAP,LRSPEC,LRTEST,LRTESTN,LRLOINC,LRPDT,LRLINE,LRX,DUOUT,ZTSAVE | 
|---|
| 137 | K LRNLT,LRNLTN,LRNODE,LRPRT,LRSPECN,LRTST,N,Y,POP,ZTSK,ZTQUEUED,ZTREQ | 
|---|
| 138 | K ^TMP($J,"LRDATA") | 
|---|
| 139 | Q | 
|---|