1 | PSBOPE ;BIRMINGHAM/EFC-PRN EFFECTIVENESS WORKSHEET ;Mar 2004
|
---|
2 | ;;3.0;BAR CODE MED ADMIN;**5,23,32**;Mar 2004;Build 32
|
---|
3 | ;Per VHA Directive 2004-038 (or future revisions regarding same), this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ; Reference/IA
|
---|
6 | ; ^DPT/10035
|
---|
7 | ; EN^PSJBCMA/2828
|
---|
8 | ;
|
---|
9 | EN ; Called from DQ^PSBO
|
---|
10 | N PSBSTRT,PSBSTOP,DFN
|
---|
11 | K ^TMP("PSB",$J)
|
---|
12 | S PSBSTRT=$P(PSBRPT(.1),U,6)+$P(PSBRPT(.1),U,7)
|
---|
13 | S PSBSTOP=$P(PSBRPT(.1),U,8)+$P(PSBRPT(.1),U,9)
|
---|
14 | F DFN=0:0 S DFN=$O(^TMP("PSBO",$J,DFN)) Q:'DFN D EN1
|
---|
15 | D PRINT
|
---|
16 | K ^TMP("PSJ",$J),^TMP("PSB",$J)
|
---|
17 | Q
|
---|
18 | ;
|
---|
19 | EN1 ; Expects DFN,PSBSTRT,PSBSTOP from EN
|
---|
20 | N PSBGBL,PSBHDR,PSBX,PSBADMIN,PSBDFN,PSBDT,PSBMED,PSBORD,PSBOSTRT,PSBSCHED
|
---|
21 | K ^TMP("PSJ",$J)
|
---|
22 | S PSBDT=PSBSTRT-.0000001
|
---|
23 | F S PSBDT=$O(^PSB(53.79,"AADT",DFN,PSBDT)) Q:'PSBDT!(PSBDT>PSBSTOP) D
|
---|
24 | .S PSBIEN=0
|
---|
25 | .F S PSBIEN=$O(^PSB(53.79,"AADT",DFN,PSBDT,PSBIEN)) Q:'PSBIEN D
|
---|
26 | ..Q:$P($G(^PSB(53.79,PSBIEN,.1)),U,2)'="P" ; Not a PRN Administration
|
---|
27 | ..Q:$P($G(^PSB(53.79,PSBIEN,.2)),U,2)]"" ; Effectiveness entered
|
---|
28 | ..Q:($P($G(^PSB(53.79,PSBIEN,0)),U,9)'="G")&($P($G(^PSB(53.79,PSBIEN,0)),U,9)'="RM") ;Allow only entries with at status of "GIVEN" and "REMOVED"
|
---|
29 | ..Q:$P($G(^PSB(53.79,PSBIEN,0)),U,6)<PSBDT
|
---|
30 | ..Q:$P($G(^PSB(53.79,PSBIEN,0)),U,6)>PSBSTOP
|
---|
31 | ..S ^TMP("PSB",$J,DFN,PSBIEN)=""
|
---|
32 | Q
|
---|
33 | PRINT ; Print meds stored in ^TMP("PSB",$J,DFN,....
|
---|
34 | N PSBHDR,PSBDT,PSBMED,DFN
|
---|
35 | ;
|
---|
36 | ; Print by Patient
|
---|
37 | ;
|
---|
38 | D:$P(PSBRPT(.1),U,1)="P"
|
---|
39 | .S PSBHDR(1)="PRN EFFECTIVENESS LIST for "_$$FMTE^XLFDT(PSBSTRT)_" to "_$$FMTE^XLFDT(PSBSTOP)
|
---|
40 | .S DFN=$P(PSBRPT(.1),U,2)
|
---|
41 | .W $$PTHDR()
|
---|
42 | .I '$O(^TMP("PSB",$J,DFN,0)) W !,"No PRN Medications Found",$$PTFTR^PSBOHDR() Q
|
---|
43 | .W ! ; Line Break Between Admin Times
|
---|
44 | .S PSBIEN=""
|
---|
45 | .F S PSBIEN=$O(^TMP("PSB",$J,DFN,PSBIEN)) Q:PSBIEN="" D
|
---|
46 | ..S PSBIENS=PSBIEN_","
|
---|
47 | ..I $Y>(IOSL-5) W $$PTFTR^PSBOHDR(),$$PTHDR()
|
---|
48 | ..W !,$$GET1^DIQ(53.79,PSBIENS,.06),?30,$$GET1^DIQ(53.79,PSBIENS,.08),?72,$$GET1^DIQ(53.79,PSBIENS,"ACTION BY")
|
---|
49 | ..W !,?5,"PRN Reason: ",$$GET1^DIQ(53.79,PSBIENS,.21)
|
---|
50 | .W $$PTFTR^PSBOHDR()
|
---|
51 | .Q
|
---|
52 | ;
|
---|
53 | ; Print by Ward
|
---|
54 | ;
|
---|
55 | D:$P(PSBRPT(.1),U,1)="W"
|
---|
56 | .S PSBHDR(1)="PRN EFFECTIVENESS LIST from "_$$FMTE^XLFDT(PSBSTRT)_" thru "_$$FMTE^XLFDT(PSBSTOP)
|
---|
57 | .S PSBWARD=$P(PSBRPT(.1),U,3)
|
---|
58 | .W $$WRDHDR()
|
---|
59 | .I '$O(^TMP("PSB",$J,0)) W !,"No PRN Medications Found" Q
|
---|
60 | .S PSBSORT=$P(PSBRPT(.1),U,5)
|
---|
61 | .F DFN=0:0 S DFN=$O(^TMP("PSB",$J,DFN)) Q:'DFN D
|
---|
62 | ..S PSBINDX=$S(PSBSORT="P":$P(^DPT(DFN,0),U),1:$G(^DPT(DFN,.1))_" "_$G(^DPT(DFN,.101))) ;PSB*3*23
|
---|
63 | ..S:PSBINDX="" PSBINDX=$P(^DPT(DFN,0),U)
|
---|
64 | ..S ^TMP("PSB",$J,"B",PSBINDX,DFN)=""
|
---|
65 | .S PSBINDX=""
|
---|
66 | .F S PSBINDX=$O(^TMP("PSB",$J,"B",PSBINDX)) Q:PSBINDX="" D
|
---|
67 | ..F DFN=0:0 S DFN=$O(^TMP("PSB",$J,"B",PSBINDX,DFN)) Q:'DFN D
|
---|
68 | ...W ! ; Line Break Between Pt's
|
---|
69 | ...W:$P(PSBRPT(.1),U,5)="P" !,$$GET1^DIQ(2,DFN_",",.01),?32,$$GET1^DIQ(2,DFN_",",.1)," ",$$GET1^DIQ(2,DFN_",",.101)
|
---|
70 | ...W:$P(PSBRPT(.1),U,5)="B" !,$$GET1^DIQ(2,DFN_",",.1)," ",$$GET1^DIQ(2,DFN_",",.101),?20,$$GET1^DIQ(2,DFN_",",.01)
|
---|
71 | ...W ! ; Line Break Between Admin Times
|
---|
72 | ...S PSBIEN=""
|
---|
73 | ...F S PSBIEN=$O(^TMP("PSB",$J,DFN,PSBIEN)) Q:PSBIEN="" D
|
---|
74 | ....I $Y>(IOSL-5) W $$WRDHDR()
|
---|
75 | ....W !?5,$$GET1^DIQ(53.79,PSBIEN_",",.06),?35,$$GET1^DIQ(53.79,PSBIEN_",",.08),?77,$$GET1^DIQ(53.79,PSBIEN_",","ACTION BY")
|
---|
76 | ....W !?10,"PRN Reason: ",$$GET1^DIQ(53.79,PSBIEN_",",.21)
|
---|
77 | Q
|
---|
78 | ;
|
---|
79 | WRDHDR() ; Ward Header
|
---|
80 | D WARD^PSBOHDR(PSBWRD,.PSBHDR)
|
---|
81 | W:$P(PSBRPT(.1),U,5)="B" !,"Ward Rm-Bed",?20,"Patient"
|
---|
82 | W:$P(PSBRPT(.1),U,5)="P" !,"Patient",?32,"Ward Rm-Bed"
|
---|
83 | W !?5,"Administration Date/Time",?35,"Medication",?77,"Administered By"
|
---|
84 | W !,$TR($J("",IOM)," ","-")
|
---|
85 | Q ""
|
---|
86 | ;
|
---|
87 | PTHDR() ; Patient Header
|
---|
88 | D PT^PSBOHDR(DFN,.PSBHDR)
|
---|
89 | W !,"Administration Date/Time",?30,"Medication",?72,"Administered By"
|
---|
90 | W !,$TR($J("",IOM)," ","-")
|
---|
91 | Q ""
|
---|
92 | ;
|
---|