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
|
---|