1 | LRLABLDS ;DALOI/FHS/DRH - PRINT SINGLE LABELS ON DEMAND FOR FUTURE LAB COLLECT ;8/29/94 12:36
|
---|
2 | ;;5.2;LAB SERVICE;**161,218**;Sep 27, 1994
|
---|
3 | EN ;
|
---|
4 | N DIC,DIR,DIRUT,DTOUT,DTOUT,LRBATCH,LROK
|
---|
5 | K ^TMP($J)
|
---|
6 | S LRBATCH=0,LRPICK=2,LRSING=1
|
---|
7 | S DIR(0)="NO^1:"_$O(^LRO(69,"C",""),-1)_":0",DIR("A")="Enter Order Number"
|
---|
8 | S DIR("?")="Enter the order number for which you need a label"
|
---|
9 | D ^DIR
|
---|
10 | I $D(DIRUT) D CLEAN Q
|
---|
11 | I '$D(^LRO(69,"C",Y)) W !?10,"Number does not exist",!,$C(7) G EN
|
---|
12 | S LRORDN=Y
|
---|
13 | GET K DA
|
---|
14 | S (LREND,LROK,LRSN)=0
|
---|
15 | S LRODT=$O(^LRO(69,"C",LRORDN,""))
|
---|
16 | F S LRSN=$O(^LRO(69,"C",LRORDN,LRODT,LRSN)) Q:LRSN="" D
|
---|
17 | . S LRSN(0)=$G(^LRO(69,LRODT,1,LRSN,0)),LRSN(1)=$G(^LRO(69,LRODT,1,LRSN,1))
|
---|
18 | . S DA=LRSN,DA(1)=LRODT,DIC="^LRO(69,"_DA(1)_",1,"
|
---|
19 | . D EN^DIQ,CHK
|
---|
20 | . I 'LREND S LROK=1
|
---|
21 | I 'LROK G EN
|
---|
22 | K DIR W !
|
---|
23 | S DIR(0)="YO",DIR("A")="Is this the correct patient",DIR("B")="YES"
|
---|
24 | D ^DIR
|
---|
25 | I $D(DIRUT) D CLEAN Q
|
---|
26 | I Y'=1 G EN
|
---|
27 | K %ZIS S %ZIS="Q" D ^%ZIS
|
---|
28 | I POP D CLEAN Q
|
---|
29 | I $D(IO("Q")) D G EN
|
---|
30 | . S ZTRTN="QUE^LRLABLDS",ZTDESC="Print Future Collection Labels"
|
---|
31 | . S ZTSAVE("LR*")=""
|
---|
32 | . D ^%ZTLOAD,CLEAN
|
---|
33 | QUE ;
|
---|
34 | U IO
|
---|
35 | S (LREND,LROK,LRSN)=0
|
---|
36 | F S LRSN=$O(^LRO(69,"C",LRORDN,LRODT,LRSN)) Q:LRSN="" D
|
---|
37 | . S LRSN(0)=$G(^LRO(69,LRODT,1,LRSN,0)),LRSN(1)=$G(^LRO(69,LRODT,1,LRSN,1))
|
---|
38 | . I '$D(ZTQUEUED) S LROK=1
|
---|
39 | . E D CHK S:'LREND LROK=1 Q:LREND
|
---|
40 | . S LRDFN=+LRSN(0) D BLDTMP^LRLABLD0
|
---|
41 | I LROK D ^LRLABELF
|
---|
42 | Q:$D(ZTQUEUED)
|
---|
43 | D CLEAN
|
---|
44 | G EN
|
---|
45 | ;
|
---|
46 | CHK ; Check order for collection type/status/date-time
|
---|
47 | N LRMSG
|
---|
48 | S LREND=0
|
---|
49 | I '$L($P(LRSN(0),U,4)) S LREND=1,LRMSG="No Collection Type on Order"
|
---|
50 | I 'LREND,'$P(LRSN(0),U,8) S LREND=1,LRMSG="No Est. Date/Time of Collection on Order"
|
---|
51 | I 'LREND,$L($P(LRSN(1),U,4)),"CM"[$P(LRSN(1),U,4) S LREND=1,LRMSG="Collection status: "_$$EXTERNAL^DILFD(69.01,13,,$P(LRSN(1),U,4))
|
---|
52 | I 'LREND,$P(LRSN(1),U) S LREND=1,LRMSG="Order already collected"
|
---|
53 | I 'LREND D
|
---|
54 | . N LRTEST,LROK
|
---|
55 | . S LROK=0 ; Flag to indicate there are still tests on the order
|
---|
56 | . S LRTEST=0
|
---|
57 | . F S LRTEST=$O(^LRO(69,LRODT,1,LRSN,2,LRTEST)) Q:'LRTEST I '$P($G(^LRO(69,LRODT,1,LRSN,2,LRTEST,0)),U,11) S LROK=1 ; Found a 'good' test.
|
---|
58 | . I 'LROK S LREND=1,LRMSG="No active tests on specimen"
|
---|
59 | I LREND,'LRBATCH D Q
|
---|
60 | . I $D(ZTQUEUED),LRPICK=2 Q ; Don't print error msg on label printer.
|
---|
61 | . U IO(0)
|
---|
62 | . W !,$C(7),"Can not print label for Order Number: ",$P($G(^LRO(69,LRODT,1,LRSN,.1),"Unknown"),U)
|
---|
63 | . W !,?26,"Specimen #: ",LRSN
|
---|
64 | . W !,?5,"Reason - ",LRMSG,!
|
---|
65 | Q
|
---|
66 | ;
|
---|
67 | CLEAN ;
|
---|
68 | D END^LRLABELF
|
---|
69 | K DA,DIC,A,DX
|
---|
70 | Q
|
---|