1 | LRCAPPHX ;DALOI/FHS - RESET AND RESUBMIT PCE WORKLOAD FOR EMPTY PCE NODES ;5/1/2001
|
---|
2 | ;;5.2;LAB SERVICE;**278**;Sep 27, 1994
|
---|
3 | EN ;
|
---|
4 | L +^LRO("LRCAPPH","NITE"):1 I '$T W:'$D(LRQUIET) !!,$$CJ^XLFSTR("PCE API is currently running",80) G FIN
|
---|
5 | I '$D(LRQUIET) D
|
---|
6 | . W @IOF
|
---|
7 | . W !,$$CJ^XLFSTR(" Resend PCE CPT Workload ",IOM)
|
---|
8 | . W !,$$CJ^XLFSTR("Only orders that have NO recorded PCE workload will be rescanned",IOM)
|
---|
9 | N DIR,DIRUT,DTOUT,DUOUT,LRCE,LRCOUNT,LREND,LREND,LRNOD,LRSET,LRSN,X,Y
|
---|
10 | N LRDPF,LRDUZ,LRSDT,LREDT,LRTS,LRDLOC
|
---|
11 | DATE ;Get date range
|
---|
12 | W !
|
---|
13 | S DIR("A")="Enter Starting Date: "
|
---|
14 | S DIR(0)="DO^::EX" D ^DIR,RD G FIN:$G(LREND)
|
---|
15 | G FIN:Y<1
|
---|
16 | S LRSDT=Y,DIR("A")="Enter Stop/End Date: "
|
---|
17 | D ^DIR,RD G FIN:$G(LREND)
|
---|
18 | G FIN:Y<1
|
---|
19 | S LREDT=Y
|
---|
20 | SW ;Exchange dates if out of sequence
|
---|
21 | Q:$G(LRSDT)'?7N.E!($G(LREDT)'?7N.E)
|
---|
22 | I LRSDT>LREDT S X=LRSDT,LRSDT=LREDT,LREDT=X
|
---|
23 | S LRSDT=LRSDT-.0001,LRCOUNT=0
|
---|
24 | LOOP ;Check entries to determine if appropriate to resend
|
---|
25 | F S LRSDT=+$O(^LRO(69,LRSDT)) Q:LRSDT<1!(LRSDT>LREDT) D
|
---|
26 | . I '$D(LRQUIET) W !,$$FMTE^XLFDT(LRSDT),!
|
---|
27 | . S LRSN=0 F S LRSN=$O(^LRO(69,LRSDT,1,LRSN)) Q:LRSN<1 D
|
---|
28 | . . S (LRCE,LRSET)=0
|
---|
29 | . . S LRCE=$P($G(^LRO(69,LRSDT,1,LRSN,.1)),U) Q:'LRCE
|
---|
30 | . . I $L($G(^LRO(69,LRSDT,1,LRSN,"PCE")))>1 Q
|
---|
31 | . . D SET
|
---|
32 | . . I $G(LRSET) S ^LRO(69,"AA",LRCE,LRSDT_"|"_LRSN)="",LRCOUNT=$G(LRCOUNT)+1
|
---|
33 | . . I '$D(LRQUIET),'(LRCOUNT#20) W "."
|
---|
34 | G END
|
---|
35 | Q
|
---|
36 | SET ;Reset node if not canceled
|
---|
37 | S LRTS=0 F S LRTS=$O(^LRO(69,LRSDT,1,LRSN,2,LRTS)) Q:LRTS<1 D
|
---|
38 | . S LRNOD(1)=$G(^LRO(69,LRSDT,1,LRSN,2,LRTS,0))
|
---|
39 | . I $S('+LRNOD(1):1,$P(LRNOD(1),U,9)="CA":1,$P(LRNOD(1),U,11):1,1:0) Q
|
---|
40 | . S LRSET=1,$P(LRNOD(1),U,12)=""
|
---|
41 | . S ^LRO(69,LRSDT,1,LRSN,2,LRTS,0)=LRNOD(1)
|
---|
42 | Q
|
---|
43 | RD ;
|
---|
44 | S LREND=0
|
---|
45 | I $D(DUOUT)!($D(DTOUT))!($D(DIRUT)) S LREND=1
|
---|
46 | Q
|
---|
47 | END ;Indicate if accessions were reset and process ^LRO(69,"AA" data
|
---|
48 | I '$O(^LRO(69,"AA",0)) W:'$D(LRQUIET) !!?5,"No PCE Workload to process",!! G FIN
|
---|
49 | S LRINS=+$P($G(^XMB(1,1,"XUS")),U,17) G FIN:'LRINS
|
---|
50 | W:'$D(LRQUIET) !,$$CJ^XLFSTR("Processing PCE Workload",80)
|
---|
51 | I $G(^LRO(69,"AE"))'=DT D EN0^LRCAPPH3 S ^LRO(69,"AA")=DT
|
---|
52 | I $D(ZTQUEUED) S ZTREQ="@" K LRDBUG
|
---|
53 | I '$G(LRDBUG) K ^TMP("LRMOD",$J)
|
---|
54 | S LRDPRAC=+$P($G(^LAB(69.9,1,12)),U)
|
---|
55 | S LRDLOC=+$G(^LAB(69.9,1,.8))
|
---|
56 | I LRDPRAC D
|
---|
57 | . N DIC,X
|
---|
58 | . S DIC(0)="NZ",DIC=200,X="`"_LRDPRAC
|
---|
59 | . D ^DIC S LRDPRAC=$S(Y<1:0,$P($G(Y(0)),U,11):0,1:+Y)
|
---|
60 | . I $$GET^XUA4A72(LRDPRAC)<1 S LRDPRAC=0
|
---|
61 | S LROK=+$G(^LAB(69.9,1,.8)) G:'LROK FIN
|
---|
62 | I $P($G(^SC(LROK,0)),U)'["LAB DIV " G FIN
|
---|
63 | K LROK
|
---|
64 | S:'$D(^LAB(69.9,1,"NITE")) ^("NITE")=""
|
---|
65 | S LRWRKL=$S($P(^LAB(69.9,1,0),U,14):1,1:0)
|
---|
66 | I $D(XRTL) S XRTN="LRCAPPH" D T0^%ZOSV
|
---|
67 | S LRPKG=$O(^DIC(9.4,"C","LR",0))
|
---|
68 | S:'LRPKG LRPKG=$O(^DIC(9.4,"B","LAB SERVICE",0))
|
---|
69 | G:'LRPKG FIN
|
---|
70 | S LRVSIT=$P($G(^LAB(69.9,1,"VSIT")),U)
|
---|
71 | S X="PXAI" X ^%ZOSF("TEST") I '$T G FIN
|
---|
72 | S:'$G(LRNP) $P(^LAB(69.9,1,"NITE"),U,2)=$$NOW^XLFDT
|
---|
73 | S LRPCEON=$$PKGON^VSIT("PX")
|
---|
74 | S ^TMP("LRMOD",$J)=""
|
---|
75 | AA ;
|
---|
76 | W:'$D(LRQUIET) !,$$CJ^XLFSTR("Will Print Every 20th. Order Number Re-scanned",80)
|
---|
77 | S (LRCEX,LRCEXV,LRCOUNT,LREND,LROA)=0
|
---|
78 | F S LRCEX=$O(^LRO(69,"AA",LRCEX)) Q:LRCEX=""!(LREND) D
|
---|
79 | . K LRXCPT S LRCOUNT=LRCOUNT+1 I '$D(LRQUIET),'(LRCOUNT#20) W LRCEX_" "
|
---|
80 | . S (LROA,LRCC)=""
|
---|
81 | . F S LROA=$O(^LRO(69,"AA",LRCEX,LROA)) Q:LROA="" D
|
---|
82 | . . S LRCDT=+LROA,LRSN=+$P(LROA,"|",2)
|
---|
83 | . . I LRCDT,LRSN D LOOK
|
---|
84 | . . K:'$G(^LRO(69,"AA",LRCEX,LROA)) ^(LROA)
|
---|
85 | FIN L -^LRO("LRCAPPH","NITE")
|
---|
86 | W:'$D(LRQUIET) !,"END",!
|
---|
87 | K AFTER812,AC,ANS,CH1,CLN,CM,CX,D,D0,DDER
|
---|
88 | K DEF,DFN,DI,DIF,DIG,DIH,DISL,DIU,DIV,DQ
|
---|
89 | K EC,FPRI,J,LI,LL,LN,LV,N,PG
|
---|
90 | K LRVSITN,PXALOOK,PXASUB,PXJ,PXJJ,SDCNT,SDFLAG,SDT1
|
---|
91 | K SPEL,SUBL,T,TYPEI,Z1
|
---|
92 | D END0^LRCAPPH
|
---|
93 | K ^TMP("LRMOD",$J)
|
---|
94 | Q
|
---|
95 | LOOK ;Process only collected specimens
|
---|
96 | Q:'$D(^LRO(69,LRCDT,1,LRSN,0))#2 S NODE=^(0)
|
---|
97 | S LRDFN=+NODE Q:'$D(^LR(LRDFN,0))#2
|
---|
98 | S LRDPF=+$P(^(0),U,2),DFN=+$P(^(0),U,3)
|
---|
99 | Q:'DFN!(LRDPF'=2)
|
---|
100 | S LRDUZ=$S($P(NODE,U,2):$P(NODE,U,2),1:DUZ)
|
---|
101 | Q:'$D(^LRO(69,LRCDT,1,LRSN,1))#2 S NODE(1)=^(1)
|
---|
102 | Q:$P(NODE(1),U,4)'="C"
|
---|
103 | S LRNT=+NODE(1),LRIN=$S($P(NODE(1),U,8):$P(NODE(1),U,8),1:LRINS)
|
---|
104 | S LRCE=+$G(^LRO(69,LRCDT,1,LRSN,.1)) Q:'LRCE
|
---|
105 | D EN3^LRCAPPH1
|
---|
106 | Q
|
---|
107 | DQ ;Queue with START DATE(LRSDT) AND END DATE(LREDT) defined
|
---|
108 | ;Recommended that this routine not be queued. User feedback
|
---|
109 | ;can be very important. Screen displays are very helpful.
|
---|
110 | N LRQUIET
|
---|
111 | S LRQUIET=1
|
---|
112 | D SW
|
---|
113 | Q
|
---|