1 | ALPBSP1 ;OIFO-DALLAS MW,SED,KC-LIST AND SELECT PATIENT'S ORDERS ;01/01/03
|
---|
2 | ;;3.0;BAR CODE MED ADMIN;**8**;Mar 2004
|
---|
3 | ;
|
---|
4 | ; **NOTE: THIS ROUTINE IS CALLED BY A LIST MANAGER
|
---|
5 | ; PROTOCOL IN WHICH A PATIENT HAS ALREADY BEEN
|
---|
6 | ; SELECTED -- THIS ROUTINE SHOULD NOT BE RUN
|
---|
7 | ; DIRECTLY.
|
---|
8 | ;
|
---|
9 | EN ; -- main entry point for ALPB PATIENT ORDERS
|
---|
10 | D EN^VALM("PSB SELECT ORDERS")
|
---|
11 | Q
|
---|
12 | ;
|
---|
13 | HDR ; -- header code
|
---|
14 | I +$G(ALPBIEN)'>0 Q
|
---|
15 | S ALPBPT(0)=$G(^ALPB(53.7,ALPBIEN,0))
|
---|
16 | M ALPBPT(1)=^ALPB(53.7,ALPBIEN,1)
|
---|
17 | D HDR^ALPBFRM2(.ALPBPT,"A",0,.ALPBHDR)
|
---|
18 | S ALPBX=1
|
---|
19 | F S ALPBX=$O(ALPBHDR(ALPBX)) Q:'ALPBX D
|
---|
20 | .S VALMHDR(ALPBX-1)=ALPBHDR(ALPBX)
|
---|
21 | K ALPBHDR,ALPBPT,ALPBX
|
---|
22 | Q
|
---|
23 | ;
|
---|
24 | INIT ; -- init variables and list array
|
---|
25 | I +$G(ALPBIEN)'>0 Q
|
---|
26 | K ALPBORDS,^TMP("ALPBORDS",$J)
|
---|
27 | D ORDS^ALPBUTL(ALPBIEN,"",.ALPBORDS)
|
---|
28 | K ALPBORDS("B")
|
---|
29 | I $G(ALPBLTYP)="" S ALPBLTYP="Active"
|
---|
30 | S ALPBX=0
|
---|
31 | F S ALPBX=$O(ALPBORDS(ALPBX)) Q:'ALPBX D
|
---|
32 | .I $G(ALPBORDS(ALPBX,2))="" S ALPBORDS(ALPBX,2)="XX"
|
---|
33 | .S ALPBORDS("B",ALPBORDS(ALPBX,2),ALPBORDS(ALPBX),ALPBX)=""
|
---|
34 | S ALPBLINE=0
|
---|
35 | S ALPBSTAT=""
|
---|
36 | F S ALPBSTAT=$O(ALPBORDS("B",ALPBSTAT)) Q:ALPBSTAT="" D
|
---|
37 | .S ALPBSTN=$$STAT2^ALPBUTL1(ALPBSTAT)
|
---|
38 | .I ALPBLTYP'="ALL"&(ALPBSTN'="Active") K ALPBSTN Q
|
---|
39 | .S ALPBORDN=""
|
---|
40 | .F S ALPBORDN=$O(ALPBORDS("B",ALPBSTAT,ALPBORDN)) Q:ALPBORDN="" D
|
---|
41 | ..S ALPBX=0
|
---|
42 | ..F S ALPBX=$O(ALPBORDS("B",ALPBSTAT,ALPBORDN,ALPBX)) Q:'ALPBX D
|
---|
43 | ...S ^TMP("ALPBORDS",$J,"B",ALPBORDN)=ALPBX
|
---|
44 | ...S ALPBLINE=ALPBLINE+1
|
---|
45 | ...S ALPBDATA=" "_ALPBORDN
|
---|
46 | ...S ALPBDATA=$$PAD^ALPBUTL(ALPBDATA,12)_ALPBSTN
|
---|
47 | ...S ALPBDATA=$$PAD^ALPBUTL(ALPBDATA,21)_ALPBORDS(ALPBX,1)
|
---|
48 | ...I +$G(ALPBORDS(ALPBX,3,0)) D
|
---|
49 | ....S ALPBDATA=$$PAD^ALPBUTL(ALPBDATA,26)_ALPBORDS(ALPBX,3,1)
|
---|
50 | ...I $G(ALPBORDS(ALPBX,4))'="" D
|
---|
51 | ....S ALPBY=$P(ALPBORDS(ALPBX,4),"^",1,3)
|
---|
52 | ....S ALPBY=$TR(ALPBY,"^"," ")
|
---|
53 | ....S ALPBDATA=ALPBDATA_" ("_ALPBY_")"
|
---|
54 | ....K ALPBY
|
---|
55 | ...S ^TMP("ALPBORDS",$J,ALPBLINE,0)=ALPBDATA
|
---|
56 | ...K ALPBDATA
|
---|
57 | ...S ALPBY=1
|
---|
58 | ...F S ALPBY=$O(ALPBORDS(ALPBX,3,ALPBY)) Q:'ALPBY D
|
---|
59 | ....S ALPBDATA=$$PAD^ALPBUTL($G(ALPBDATA),27)_ALPBORDS(ALPBX,3,ALPBY)
|
---|
60 | ....S ALPBLINE=ALPBLINE+1
|
---|
61 | ....S ^TMP("ALPBORDS",$J,ALPBLINE,0)=ALPBDATA
|
---|
62 | ....K ALPBDATA
|
---|
63 | ...K ALPBY
|
---|
64 | ..K ALPBX
|
---|
65 | .K ALPBORDN,ALPBSTN
|
---|
66 | S VALMCNT=ALPBLINE
|
---|
67 | I +$O(^TMP("ALPBORDS",$J,0))=0&(ALPBLTYP="Active") D
|
---|
68 | .S ALPBLTYP="ALL"
|
---|
69 | .S VALM("TITLE")="BCMAbu ALL Orders List"
|
---|
70 | .D INIT
|
---|
71 | .S VALMBCK="R"
|
---|
72 | K ALPBLINE,ALPBLTYP,ALPBORDS,ALPBSTAT
|
---|
73 | Q
|
---|
74 | ;
|
---|
75 | HELP ; -- help code
|
---|
76 | S X="?" D DISP^XQORM1 W !!
|
---|
77 | Q
|
---|
78 | ;
|
---|
79 | EXIT ; -- exit code
|
---|
80 | K ^TMP("ALPBORDS",$J)
|
---|
81 | Q
|
---|
82 | ;
|
---|
83 | EXPND ; -- expand code
|
---|
84 | Q
|
---|
85 | ;
|
---|
86 | SELORD ; select an order...
|
---|
87 | I '$D(^TMP("ALPBORDS",$J)) Q
|
---|
88 | S DIR(0)="FAO^1:45"
|
---|
89 | S DIR("A")="Select ORDER#: "
|
---|
90 | S DIR("A",1)="Select order number, more than one separated by a comma, or 'ALL': "
|
---|
91 | S DIR("B")="ALL"
|
---|
92 | S DIR("?")="Select order numbers from the list or 'ALL'."
|
---|
93 | S DIR("?",1)="Separate multiple order numbers with a comma."
|
---|
94 | D ^DIR K DIR
|
---|
95 | I $D(DIRUT) K DIRUT,DTOUT,X,Y Q
|
---|
96 | S ALPBOSEL=$$UP^XLFSTR($$STRIP^XLFSTR(Y," "))
|
---|
97 | I ALPBOSEL="ALL" D
|
---|
98 | .S I=0
|
---|
99 | .S ALPBOSEL=""
|
---|
100 | .F S ALPBOSEL=$O(^TMP("ALPBORDS",$J,"B",ALPBOSEL)) Q:ALPBOSEL="" D
|
---|
101 | ..S I=I+1
|
---|
102 | ..S ALPBOSEL(I)=^TMP("ALPBORDS",$J,"B",ALPBOSEL)
|
---|
103 | .S ALPBOSEL(0)=I
|
---|
104 | I ALPBOSEL'="ALL" D
|
---|
105 | .; make sure the input is separated by a comma...
|
---|
106 | .S ALPBOSEL=$$REPL^ALPBUTL2(ALPBOSEL,",")
|
---|
107 | .; parse out the user's input...
|
---|
108 | .F I=1:1 Q:$P(ALPBOSEL,",",I)="" D
|
---|
109 | ..I $G(^TMP("ALPBORDS",$J,"B",$P(ALPBOSEL,",",I)))="" Q
|
---|
110 | ..S ALPBOSEL(I)=^TMP("ALPBORDS",$J,"B",$P(ALPBOSEL,",",I))
|
---|
111 | I +$O(ALPBOSEL(0))=0 D Q
|
---|
112 | .W $C(7)
|
---|
113 | .W !,"Invalid selection."
|
---|
114 | .S DIR(0)="EA"
|
---|
115 | .S DIR("A")="Press <enter> to continue..."
|
---|
116 | .D ^DIR K DIR,DIRUT,DTOUT,X,Y
|
---|
117 | D EN^ALPBSP2
|
---|
118 | K ALPBOSEL
|
---|
119 | Q
|
---|
120 | ;
|
---|
121 | SELALL ; set list type to ALL orders...
|
---|
122 | S ALPBLTYP="ALL"
|
---|
123 | S VALM("TITLE")="BCMAbu ALL Orders List"
|
---|
124 | D INIT
|
---|
125 | Q
|
---|
126 | ;
|
---|
127 | SELACT ; set list type to Active orders...
|
---|
128 | S ALPBLTYP="Active"
|
---|
129 | S VALM("TITLE")="BCMAbu ACTIVE Orders List"
|
---|
130 | D INIT
|
---|
131 | Q
|
---|