1 | PSBPRND ;BIRMINGHAM/EFC-BCMA PRN DOCUMENTING ;May 2002
|
---|
2 | ;;2.0;BAR CODE MED ADMIN;**32**;May 2002
|
---|
3 | ;
|
---|
4 | ;Queue the routine
|
---|
5 | ENV(PSBPRNDT,PSBSTRT,PSBDUZ,PRNMSG) ;
|
---|
6 | I $G(DUZ)="" W !,"Your DUZ is not defined. It must be defined." Q
|
---|
7 | K ZTSAVE,ZTSK S ZTRTN="PROCESS^PSBPRND(PSBPRNDT,PSBSTRTE,PSBDUZ,PSBPRNM)",ZTDESC="BCMA PRN DOCUMENTATION",ZTIO=""
|
---|
8 | W !!
|
---|
9 | S ZTSAVE("PSBPRNDT")=""
|
---|
10 | S ZTSAVE("PSBSTRTE")=""
|
---|
11 | S ZTSAVE("PSBDUZ")=""
|
---|
12 | S ZTSAVE("PSBPRNM")=""
|
---|
13 | D ^%ZTLOAD
|
---|
14 | I $D(ZTSK) D
|
---|
15 | .W !!,"The PRN effectiveness documenting process was ",$S($G(ZTSK):"",1:"NOT"),"queued",!
|
---|
16 | .W !," TASK#: "_$G(ZTSK)
|
---|
17 | Q
|
---|
18 | PSBPRNS ;Document all administrations of a PRN order that have NOT had
|
---|
19 | ; the PRN Effectiveness documented for dates user provided
|
---|
20 | ;
|
---|
21 | N PSBIEN
|
---|
22 | I $G(DUZ)="" W !,"Your DUZ is not defined. It must be defined." Q
|
---|
23 | S PSBDUZ=$G(DUZ)
|
---|
24 | D HEADER
|
---|
25 | ;get start date
|
---|
26 | S %DT="AEQ",%DT("A")="Select Date to Process From: "
|
---|
27 | S %DT("B")=""
|
---|
28 | W ! D ^%DT Q:+Y<1 S PSBDT=Y
|
---|
29 | S PSBPRNDT=PSBDT D D^DIQ
|
---|
30 | ;Get stop date
|
---|
31 | S %DT="AEQ",%DT("A")="Select Date to Process Up to: "
|
---|
32 | S %DT("B")=""
|
---|
33 | W ! D ^%DT Q:+Y<1 S PSBDTA=Y
|
---|
34 | S PSBSTRTE=PSBDTA D D^DIQ
|
---|
35 | I PSBPRNDT>PSBSTRTE W !,"Start date cannot be greater than end date" Q
|
---|
36 | ;Write user running routine
|
---|
37 | S PSBNAME=$P(^VA(200,PSBDUZ,0),"^",1)
|
---|
38 | W !!,"PRN effectiveness entered by: ",PSBNAME,!
|
---|
39 | D HEADER
|
---|
40 | ;COMMIT OR QUIT
|
---|
41 | S Y=PSBDTA D DD^%DT S PSBRDT=Y
|
---|
42 | S Y=PSBPRNDT D DD^%DT S PSBRDTA=Y
|
---|
43 | W !!!,?10,"**PRN DOCUMENTATION WILL BE FILED FOR THE FOLLOWING**"
|
---|
44 | W !!,?5,"PRN START DATE...........: ",PSBRDTA
|
---|
45 | W !,?5,"PRN END DATE.............: ",PSBRDT
|
---|
46 | W !,?5,"PRN ENTERED BY...........: ",PSBNAME
|
---|
47 | W !,?5,"PRN DOCUMENTATION STATEMENT: "
|
---|
48 | ;Set mesage to be used
|
---|
49 | S PSBPRNM="Administrative Closure"
|
---|
50 | I $L(PSBPRNM)>0 D
|
---|
51 | .W ?9,$E(PSBPRNM,1,52)
|
---|
52 | R !!,"Would you like to CONTINUE ? (Y/N):",PSBANS:30
|
---|
53 | S PSBFLAG=""
|
---|
54 | I (PSBANS["Y")!(PSBANS="y") S PSBFLAG=1
|
---|
55 | I PSBFLAG'=1 D Q
|
---|
56 | .W !!,"You have chosen not to continue! Application ending!!"
|
---|
57 | D HEADER
|
---|
58 | D ENV(PSBPRNDT,PSBSTRTE,PSBDUZ,PSBPRNM)
|
---|
59 | Q
|
---|
60 | ;
|
---|
61 | PROCESS(PSBPRNDT,PSBSTRTE,PSBDUZ,PSBPRNM) ;
|
---|
62 | ;Gather Patient DFN
|
---|
63 | S PSBSRTD=PSBSTRTE+1
|
---|
64 | S PSBPRTA=PSBPRNDT-1
|
---|
65 | S PSBCNT="0"
|
---|
66 | S DFN="" F S DFN=$O(^PSB(53.79,"APRN",DFN)) Q:DFN="" D
|
---|
67 | .S PSBSTRT="" F S PSBSTRT=$O(^PSB(53.79,"APRN",DFN,PSBSTRT)) Q:PSBSTRT="" D
|
---|
68 | ..I PSBSTRT>PSBPRTA,PSBSTRT<PSBSRTD D
|
---|
69 | ...S PSBIEN="" F S PSBIEN=$O(^PSB(53.79,"APRN",DFN,PSBSTRT,PSBIEN)) Q:'PSBIEN D
|
---|
70 | ....I ($P(^PSB(53.79,PSBIEN,0),U,9)'="G")&($P(^PSB(53.79,PSBIEN,0),U,9)'="RM") Q ;Med was never given
|
---|
71 | ....Q:$P($G(^PSB(53.79,PSBIEN,.2)),U,2)]"" ;PRN already entered
|
---|
72 | ....D FILEIT(PSBIEN,PSBPRNM)
|
---|
73 | ....;increment counter
|
---|
74 | ....S PSBCNT=PSBCNT+1
|
---|
75 | ;Email the results
|
---|
76 | D PSBEMAIL(PSBCNT,PSBPRNM,PSBSTRTE,PSBPRNDT,PSBDUZ)
|
---|
77 | K PSBCNT,PSBPRNM,PSBDTA,PSBPRNDT,PSBDUZ,PSBPRMG,PSBSTRTE
|
---|
78 | K PSBSRTD,PSBPRTA
|
---|
79 | Q
|
---|
80 | ;File PRN
|
---|
81 | FILEIT(PSBIEN,PSBPRNM) ;
|
---|
82 | ;
|
---|
83 | S PSBREC(0)=PSBPRNM
|
---|
84 | S PSBIEN=PSBIEN_","
|
---|
85 | D VAL^PSBML(53.79,PSBIEN,.22,PSBREC(0))
|
---|
86 | D FILEIT^PSBML
|
---|
87 | Q
|
---|
88 | ;
|
---|
89 | ;
|
---|
90 | HEADER ;Header
|
---|
91 | W #
|
---|
92 | W !,$TR($J("",IOM)," ","-")
|
---|
93 | W !,?23,"PRN EFFECTIVENESS DOCUMENTATION ROUTINE"
|
---|
94 | W !,$TR($J("",IOM)," ","-")
|
---|
95 | Q
|
---|
96 | ;
|
---|
97 | ;
|
---|
98 | PSBEMAIL(PSB1,PSB2,PSB3,PSB4,PSB5) ;
|
---|
99 | ; PSB1 = PRN Count
|
---|
100 | ; PSB2 = PRN message to file
|
---|
101 | ; PSB3 = START date for search
|
---|
102 | ; PSB4 = FINISH date for search
|
---|
103 | ; PSB5 = DUZ for PRN entered by
|
---|
104 | ; Send PRN documentation changes to user
|
---|
105 | S Y=PSB3 D DD^%DT S PSB3X=Y
|
---|
106 | S Y=PSB4 D DD^%DT S PSB4X=Y
|
---|
107 | S PSB5=$P(^VA(200,PSB5,0),"^",1)
|
---|
108 | S PSBMG=DUZ ;
|
---|
109 | Q:PSBMG=""
|
---|
110 | S PSBMSG(1)=" "
|
---|
111 | S PSBMSG(2)=" PRN effectiveness not documented have been fixed. "
|
---|
112 | S PSBMSG(3)=" "
|
---|
113 | S PSBMSG(4)=" PRN effectiveness entered by.: "_PSB5
|
---|
114 | S PSBMSG(5)=" Number of PRNs documented....: "_PSB1
|
---|
115 | S PSBMSG(6)=" Start Date.......: "_PSB4X
|
---|
116 | S PSBMSG(7)=" Finish Date......: "_PSB3X
|
---|
117 | S PSBMSG(8)=" Message documented for PRNs..: "_PSB2
|
---|
118 | S PSBMSG(9)=" "
|
---|
119 | S PSBMSG(10)=" "
|
---|
120 | S PSBMSG(11)=" "
|
---|
121 | S PSBMSG(12)=""
|
---|
122 | S PSBMSG(13)=" "
|
---|
123 | S PSBMSG(14)=" "
|
---|
124 | S PSBMSG(15)=" "
|
---|
125 | S XMY(DUZ)="",XMTEXT="PSBMSG(",XMSUB="BCMA PRN DOCUMENTATION Notification."
|
---|
126 | D ^XMD
|
---|
127 | K PSB1,PSB2,PSB3,PSB4,PSB5,PSB4X,PSB3X
|
---|
128 | K PSBMSG,PSBMG,XMY,XMSUB,XMTEXT
|
---|
129 | Q
|
---|
130 | ;
|
---|
131 | ;
|
---|
132 | ;
|
---|
133 | ;
|
---|
134 | ;
|
---|