1 | LR7OGM ;DALOI/STAFF- Interim report rpc memo ;Aug 16, 2004
|
---|
2 | ;;5.2;LAB SERVICE;**187,220,312,286**;Sep 27, 1994
|
---|
3 | ;
|
---|
4 | TEST ; test use only
|
---|
5 | N TESTS,I K TESTS,^TMP("LR7OGX",$J)
|
---|
6 | ;S TESTS(548)=548
|
---|
7 | ;F I=1:1:10 I $D(^LAB(60,I,0)) S TESTS(I)=I
|
---|
8 | D SELECT(2,2970202,2920202,.TESTS,0,-1)
|
---|
9 | S I=0 F S I=$O(^TMP("LR7OGX",$J,"OUTPUT",I)) Q:I<1 W !,^(I)
|
---|
10 | K ^TMP("LR7OGX",$J)
|
---|
11 | Q
|
---|
12 | ;
|
---|
13 | INTERIM(ROOT,DFN,SDATE,EDATE) ; from ORWLRR
|
---|
14 | N FORMAT,MICROCHK,TESTS K TESTS
|
---|
15 | S (FORMAT,MICROCHK)=""
|
---|
16 | S ROOT=$NA(^TMP("LR7OGX",$J,"OUTPUT"))
|
---|
17 | D SELECT(DFN,SDATE,EDATE,.TESTS,FORMAT,MICROCHK) ;
|
---|
18 | Q
|
---|
19 | ;
|
---|
20 | INTERIMG(ROOT,DFN,SDATE,DIR,FORMAT) ; from ORWLRR
|
---|
21 | N MICROCHK,TESTS K TESTS
|
---|
22 | S MICROCHK=1,FORMAT=$G(FORMAT,1)
|
---|
23 | S ROOT=$NA(^TMP("LR7OGX",$J,"OUTPUT"))
|
---|
24 | D SELECT(DFN,SDATE,DIR,.TESTS,FORMAT,MICROCHK) ;
|
---|
25 | Q
|
---|
26 | ;
|
---|
27 | INTERIMS(ROOT,DFN,SDATE,EDATE,TESTLIST) ; from ORWLRR
|
---|
28 | N FORMAT,MICROCHK,NUM,TESTS K TESTS
|
---|
29 | S (FORMAT,MICROCHK)=""
|
---|
30 | S NUM=0 F S NUM=$O(TESTLIST(NUM)) Q:NUM<1 S TESTS(+TESTLIST(NUM))=""
|
---|
31 | S ROOT=$NA(^TMP("LR7OGX",$J,"OUTPUT"))
|
---|
32 | D SELECT(DFN,SDATE,EDATE,.TESTS,FORMAT,MICROCHK) ;
|
---|
33 | Q
|
---|
34 | ;
|
---|
35 | MICRO(ROOT,DFN,SDATE,EDATE) ; from ORWLRR
|
---|
36 | N FORMAT,MICROCHK,TESTS K TESTS
|
---|
37 | S FORMAT="",MICROCHK=-1
|
---|
38 | S ROOT=$NA(^TMP("LR7OGX",$J,"OUTPUT"))
|
---|
39 | D SELECT(DFN,SDATE,EDATE,.TESTS,FORMAT,MICROCHK) ;
|
---|
40 | Q
|
---|
41 | ;
|
---|
42 | SELECT(DFN,SDATE,EDATE,TESTS,FORMAT,MICROCHK) ;
|
---|
43 | ; get patient info, and expand tests
|
---|
44 | ; route setup chem and/or micro data
|
---|
45 | ; 9th piece of output indicates format (2: CH of CH/MI exact date/time, 3: MI of CH/MI, else 1 or "")
|
---|
46 | N AGE,ALL,ASK,AVAIL,CNIDT,DIRECT,DONE,EDT,FOK,I,IDT,LRDFN,MICROSUB,MNIDT,OUTCNT,PNM,ROUTE,SEX,SDT K MICROSUB
|
---|
47 | K ^TMP("LR7OG",$J),^TMP("LR7OGX",$J,"OUTPUT"),^TMP("LRPLS",$J)
|
---|
48 | S OUTCNT=1,DONE=0
|
---|
49 | D DEMO^LR7OGU(DFN,.LRDFN,.PNM,.AGE,.SEX)
|
---|
50 | I '$G(LRDFN) Q
|
---|
51 | S ^TMP("LR7OG",$J,"G")=DFN_U_PNM_U_LRDFN_U_AGE_U_SEX_"^8"
|
---|
52 | S ALL=$S($O(TESTS(0)):0,1:1)
|
---|
53 | I 'ALL D TESTSGET^LR7OGU(.TESTS,.MICROSUB)
|
---|
54 | S DIRECT=1
|
---|
55 | I FORMAT S DIRECT=EDATE,EDATE=2700101
|
---|
56 | S EDATE=EDATE\1
|
---|
57 | S (IDT,SDT)=9999999-SDATE,EDT=9999999-EDATE
|
---|
58 | I FORMAT>1 S FOK=0 D I FOK Q
|
---|
59 | . I DIRECT=1 D Q
|
---|
60 | .. I FORMAT=2 D Q
|
---|
61 | ... D MI^LR7OGMM(LRDFN,IDT,.MICROSUB,ALL,.OUTCNT,FORMAT,.DONE)
|
---|
62 | ... S $P(^TMP("LR7OGX",$J,"OUTPUT",1),U,9)=3
|
---|
63 | ... S FOK=1
|
---|
64 | .. I FORMAT=3 D Q
|
---|
65 | ... S $P(^TMP("LR7OGX",$J,"OUTPUT",1),U,9)=1
|
---|
66 | . I DIRECT=-1 D Q
|
---|
67 | .. I FORMAT=2 D Q
|
---|
68 | ... S $P(^TMP("LR7OGX",$J,"OUTPUT",1),U,9)=1
|
---|
69 | .. I FORMAT=3 D Q
|
---|
70 | ... D CH^LR7OGMC(LRDFN,IDT,ALL,.OUTCNT,FORMAT,.DONE)
|
---|
71 | ... S $P(^TMP("LR7OGX",$J,"OUTPUT",1),U,9)=2
|
---|
72 | ... S FOK=1
|
---|
73 | I ALL S ASK="BOTH"
|
---|
74 | E I $O(MICROSUB(0)) D
|
---|
75 | . S ASK="MI" I $O(^TMP("LR7OG",$J,"TMP",0)) S ASK="BOTH"
|
---|
76 | E S ASK="CH"
|
---|
77 | S I=IDT,CNIDT=0 F S I=$O(^LR(LRDFN,"CH",I),DIRECT) Q:'I I $P($G(^(I,0)),"^",3) S CNIDT=I Q
|
---|
78 | S I=IDT,MNIDT=0 F S I=$O(^LR(LRDFN,"MI",I),DIRECT) Q:'I S MNIDT=I Q
|
---|
79 | S AVAIL="NONE"
|
---|
80 | I CNIDT,CNIDT'>EDT D
|
---|
81 | . S AVAIL="CH" I MNIDT,MNIDT'>EDT S AVAIL="BOTH"
|
---|
82 | E I MNIDT,MNIDT'>EDT S AVAIL="MI"
|
---|
83 | I DIRECT=-1 S AVAIL="BOTH"
|
---|
84 | S ROUTE="NONE"
|
---|
85 | I ASK="BOTH" S ROUTE=AVAIL
|
---|
86 | I ASK="CH",AVAIL="CH"!(AVAIL="BOTH") S ROUTE="CH"
|
---|
87 | I ASK="MI",AVAIL="MI"!(AVAIL="BOTH") S ROUTE="MI"
|
---|
88 | I MICROCHK=-1 S ROUTE="MI"
|
---|
89 | I ROUTE="NONE" D Q
|
---|
90 | . K ^TMP("LR7OG",$J)
|
---|
91 | ;
|
---|
92 | I ROUTE="CH" D Q
|
---|
93 | . F S IDT=$O(^LR(LRDFN,"CH",IDT),DIRECT) Q:IDT<1 Q:IDT>EDT D CH^LR7OGMC(LRDFN,IDT,ALL,.OUTCNT,FORMAT,.DONE) Q:DONE
|
---|
94 | . I 'FORMAT,$D(^TMP("LRPLS",$J)) D PLS^LR7OGMP
|
---|
95 | . K ^TMP("LR7OG",$J),^TMP("LRPLS",$J)
|
---|
96 | ;
|
---|
97 | I ROUTE="MI" D Q
|
---|
98 | . F S IDT=$O(^LR(LRDFN,"MI",IDT),DIRECT) Q:IDT<1 Q:IDT>EDT D MI^LR7OGMM(LRDFN,IDT,.MICROSUB,ALL,.OUTCNT,FORMAT,.DONE) Q:DONE
|
---|
99 | . K ^TMP("LR7OG",$J)
|
---|
100 | F D Q:DONE
|
---|
101 | . S I=IDT,CNIDT=0 F S I=$O(^LR(LRDFN,"CH",I),DIRECT) Q:'I I $P($G(^(I,0)),"^",3) S CNIDT=I Q
|
---|
102 | . S I=IDT,MNIDT=0 F S I=$O(^LR(LRDFN,"MI",I),DIRECT) Q:'I S MNIDT=I Q
|
---|
103 | . I 'CNIDT,'MNIDT S DONE=1 Q
|
---|
104 | . D I IDT>EDT S DONE=1 Q
|
---|
105 | .. I CNIDT=MNIDT D Q ; both chem and micro at this date/time
|
---|
106 | ... S IDT=CNIDT
|
---|
107 | ... I IDT'>EDT D
|
---|
108 | .... I FORMAT D Q
|
---|
109 | ..... I SDT=(9999999-2700101)!(DIRECT=-1) D Q
|
---|
110 | ...... D MI^LR7OGMM(LRDFN,IDT,.MICROSUB,ALL,.OUTCNT,FORMAT,.DONE)
|
---|
111 | ...... S $P(^TMP("LR7OGX",$J,"OUTPUT",1),U,9)=3
|
---|
112 | ..... D CH^LR7OGMC(LRDFN,IDT,ALL,.OUTCNT,FORMAT,.DONE)
|
---|
113 | ..... S $P(^TMP("LR7OGX",$J,"OUTPUT",1),U,9)=2
|
---|
114 | .... I MICROCHK'=1 D Q:DONE
|
---|
115 | ..... D CH^LR7OGMC(LRDFN,IDT,ALL,.OUTCNT,FORMAT,.DONE)
|
---|
116 | ..... I FORMAT S MICROCHK=1
|
---|
117 | .... D MI^LR7OGMM(LRDFN,IDT,.MICROSUB,ALL,.OUTCNT,FORMAT,.DONE)
|
---|
118 | .. I 'MNIDT D Q ; no micro since this date/time, only chem at this date/time
|
---|
119 | ... S IDT=CNIDT
|
---|
120 | ... I IDT'>EDT D CH^LR7OGMC(LRDFN,IDT,ALL,.OUTCNT,FORMAT,.DONE)
|
---|
121 | .. I 'CNIDT D Q ; no chem since this date/time, only micro at this date/time
|
---|
122 | ... S IDT=MNIDT
|
---|
123 | ... I IDT'>EDT D MI^LR7OGMM(LRDFN,IDT,.MICROSUB,ALL,.OUTCNT,FORMAT,.DONE)
|
---|
124 | .. I (DIRECT=1&(CNIDT<MNIDT))!(DIRECT=-1&(CNIDT>MNIDT)) D Q ;chem and micro data, chem is more recent
|
---|
125 | ... S IDT=CNIDT
|
---|
126 | ... I IDT'>EDT D CH^LR7OGMC(LRDFN,IDT,ALL,.OUTCNT,FORMAT,.DONE)
|
---|
127 | .. S IDT=MNIDT
|
---|
128 | .. I IDT'>EDT D MI^LR7OGMM(LRDFN,IDT,.MICROSUB,ALL,.OUTCNT,FORMAT,.DONE)
|
---|
129 | ;
|
---|
130 | I 'FORMAT,$D(^TMP("LRPLS",$J)) D PLS^LR7OGMP
|
---|
131 | ;
|
---|
132 | K ^TMP("LR7OG",$J),^TMP("LRPLS",$J)
|
---|
133 | Q
|
---|