| 1 | PSBOCM1 ;BIRMINGHAM/TEJ-COVERSHEET MEDICATION OVERVIEW REPORT ;Mar 2004
 | 
|---|
| 2 |  ;;3.0;BAR CODE MED ADMIN;**32**;Mar 2004;Build 32
 | 
|---|
| 3 |  ;Per VHA Directive 2004-038 (or future revisions regarding same), this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | BUILDLN ; Constr recs
 | 
|---|
| 6 |  K J S J(0)="" F PSBFLD=1:1:8 S J=1 D FORMDAT(PSBFLD) S J($O(PSBRPLN(""),-1))=""
 | 
|---|
| 7 |  ; Write administration info...
 | 
|---|
| 8 |  Q:'PSBXFLG
 | 
|---|
| 9 |  S J=($O(J(""),-1)+1),PSBRPLN(J)=PSBBLANK,J(J)="",J=J+1
 | 
|---|
| 10 |  S (N,Y)="",J=($O(J(""),-1)+1)
 | 
|---|
| 11 |  F  S Y=$O(PSBADM(PSBX2X,Y)) Q:Y']""  D
 | 
|---|
| 12 |  .F  S N=$O(PSBADM(PSBX2X,Y,N)) Q:N']""  D
 | 
|---|
| 13 |  ..I $D(PSBBID(PSBX2X,$P(N,U,2))) S PSBDATA(2,0)="BAG ID: "_PSBBID(PSBX2X,$P(N,U,2))
 | 
|---|
| 14 |  ..S $E(PSBDATA(2,0),25)="ACTION BY: "_$P(PSBADM(PSBX2X,Y,N),U,7)_" "_$$FMTDT^PSBOCE1($E($P(PSBADM(PSBX2X,Y,N),U,6),1,12))
 | 
|---|
| 15 |  ..S X=$P(PSBADM(PSBX2X,Y,N),U,5) S $E(PSBDATA(2,0),56)="ACTION: "_$S(X="G":"GIVEN",X="R":"REFUSED",X="RM":"REMOVED",X="H":"HELD",X="S":"STOPPED",X="I":"INFUSING",X="C":"COMPLETED",X="M":"MISSING DOSE",X=" ":"*UNKNOWN*",1:" ")
 | 
|---|
| 16 |  ..I $D(PSBPRNR(PSBX2X)) S $E(PSBDATA(2,0),72)="PRN REASON: "_PSBPRNR(PSBX2X,$P(N,U,2))
 | 
|---|
| 17 |  ..I $G(PSBDATA(2,0))]" " D WRAPPER(1,132-1,PSBDATA(2,0)) K PSBDATA(2) S J=J+1
 | 
|---|
| 18 |  ..I $D(PSBPRNEF(PSBX2X,$P(N,U,2))) S PSBDATA(2,0)="PRN EFFECTIVENESS: "_PSBPRNEF(PSBX2X,$P(N,U,2))
 | 
|---|
| 19 |  ..I $G(PSBDATA(2,0))]" " D WRAPPER(30,132-30,PSBDATA(2,0)) K PSBDATA(2) S J=J+1
 | 
|---|
| 20 |  ..I ('PSBCFLG)!('$D(PSBCMT(PSBX2X,$P(N,U,2)))) S PSBRPLN(J)=PSBBLANK,J(J)="",J=J+1 Q
 | 
|---|
| 21 |  ..S X="" F   S X=$O(PSBCMT(PSBX2X,$P(N,U,2),X)) Q:X']""  D
 | 
|---|
| 22 |  ...S PSBDATA(2,0)="COMMENT BY: "_$S($P(PSBCMT(PSBX2X,$P(N,U,2),X),U,5)]"":$P(PSBCMT(PSBX2X,$P(N,U,2),X),U,5)_" "_$$FMTDT^PSBOCE1($E($P(PSBCMT(PSBX2X,$P(N,U,2),X),U,6),1,12)),1:" n/a ")
 | 
|---|
| 23 |  ...S PSBDATA(2,0)=PSBDATA(2,0)_"  COMMENT: "_$S($P(PSBCMT(PSBX2X,$P(N,U,2),X),U,2)]"":$P(PSBCMT(PSBX2X,$P(N,U,2),X),U,2),1:" ")
 | 
|---|
| 24 |  ...I $G(PSBDATA(2,0))]" " D WRAPPER(30,132-30,PSBDATA(2,0)) K PSBDATA(2) S J=J+1
 | 
|---|
| 25 |  ..S PSBRPLN(J)=PSBBLANK,J(J)="",J=J+1
 | 
|---|
| 26 |  Q
 | 
|---|
| 27 | FORMDAT(FLD) ;
 | 
|---|
| 28 |  K PSBVAL
 | 
|---|
| 29 |  Q:'$D(PSBDATA(1,FLD))
 | 
|---|
| 30 |  S PSBVAL=PSBDATA(1,FLD)
 | 
|---|
| 31 |  D WRAPPER(@("PSBTAB"_(FLD-1))+1,((@("PSBTAB"_(FLD))-(@("PSBTAB"_(FLD-1))+1))),PSBVAL)
 | 
|---|
| 32 |  I FLD=4 S J=$O(J(""),-1)+1,PSBVAL=PSBDATA(1,4,0) D WRAPPER(@("PSBTAB"_(FLD-1))+1,((@("PSBTAB"_(FLD))-(@("PSBTAB"_(FLD-1))+1))),PSBVAL)
 | 
|---|
| 33 |  Q
 | 
|---|
| 34 | WRAPPER(X,Y,Z) ;  Text WRAP
 | 
|---|
| 35 |  N PSB
 | 
|---|
| 36 |  I ($L(Z)>0),$F(Z,"""")>1 F  Q:$F(Z,"""")'>1  S Z=$TR(Z,"""","^")
 | 
|---|
| 37 |  F  Q:'$L(Z)  D
 | 
|---|
| 38 |  .I $L(Z)<Y S $E(PSBRPLN(J),X)=Z S Z="" D  Q
 | 
|---|
| 39 |  ..I $L(PSBRPLN(J),"^")>1 F X=1:1:$L(PSBRPLN(J),"^")-1 S $P(PSBRPLN(J),"^",X)=$P(PSBRPLN(J),"^",X)_""""
 | 
|---|
| 40 |  ..S PSBRPLN(J)=$TR(PSBRPLN(J),"^","""")
 | 
|---|
| 41 |  .F PSB=Y:-1:0 Q:($E(Z,PSB)=" ")  Q:($E(Z,PSB)="-")
 | 
|---|
| 42 |  .S:PSB<1 PSB=Y
 | 
|---|
| 43 |  .S $E(PSBRPLN(J),X)=$E(Z,1,PSB)
 | 
|---|
| 44 |  .S Z=$E(Z,PSB+1,250)
 | 
|---|
| 45 |  .I $L(PSBRPLN(J),"^")>1 F X=1:1:$L(PSBRPLN(J),"^")-1 S $P(PSBRPLN(J),"^",X)=$P(PSBRPLN(J),"^",X)_""""
 | 
|---|
| 46 |  .S PSBRPLN(J)=$TR(PSBRPLN(J),"^","""")
 | 
|---|
| 47 |  .S J=J+1,J(J)=""
 | 
|---|
| 48 |  Q ""
 | 
|---|
| 49 | CREATHDR ;
 | 
|---|
| 50 |  K PSBHD1,PSBHD2
 | 
|---|
| 51 |  I IOM'<132 S PSBHD1=$P($T(HD132A),"~",2),PSBHD2=$P($T(HD132B),";",2),PSBBLANK=$P($T(C132BLK),";",2)
 | 
|---|
| 52 |  E  S PSBHD1="THIS REPORT SUPPORTS >131 CHAR./LINE PRINT FORMATS ONLY" Q
 | 
|---|
| 53 |  ; reset tabs
 | 
|---|
| 54 |  S PSBTAB0=1 F PSBI=0:1:($L(PSBHD1,"|")-1) S:PSBI>0 @("PSBTAB"_PSBI)=($F(PSBHD1,"|",@("PSBTAB"_(PSBI-1))+1))-1
 | 
|---|
| 55 |  S PSBPGNUM=1
 | 
|---|
| 56 |  D HDR
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 | HD132A ;~VDL  |   Order    |Type|       Medication; Dosage, Route      |  Schedule   |      Next Action      |  Order Start  |   Order Stop  |
 | 
|---|
| 59 |  Q
 | 
|---|
| 60 | HD132B ;Tab  |   Status   |    |                                      |             |                       |   Date        |    Date       |
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 | C132BLK ;;
 | 
|---|
| 63 |  Q
 | 
|---|
| 64 | WRTRPT ;  writ
 | 
|---|
| 65 |  I $O(PSBOUTP(""),-1)<1 D  Q
 | 
|---|
| 66 |  .X PSBOUTP($O(PSBOUTP(""),-1),14)
 | 
|---|
| 67 |  .D FTR
 | 
|---|
| 68 |  S PSBPGNUM=1
 | 
|---|
| 69 |  S PSBZ="" F  S PSBZ=$O(PSBOUTP(PSBZ)) Q:PSBZ=""  D
 | 
|---|
| 70 |  .I PSBPGNUM'=PSBZ D FTR S PSBPGNUM=PSBZ D HDR,SUBHDR^PSBOCE
 | 
|---|
| 71 |  .S PSBX2X="" F  S PSBX2X=$O(PSBOUTP(PSBZ,PSBX2X)) Q:PSBX2X=""  D
 | 
|---|
| 72 |  ..X PSBOUTP(PSBZ,PSBX2X)
 | 
|---|
| 73 |  D FTR
 | 
|---|
| 74 |  K ^XTMP("PSBO",$J,"PSBLIST"),PSBOUTP
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 | HDR ;  Header
 | 
|---|
| 77 |  W:$Y>1 @IOF
 | 
|---|
| 78 |  W:$X>1 !
 | 
|---|
| 79 |  S PSBRPNM="BCMA COVERSHEET MEDICATION OVERVIEW REPORT"
 | 
|---|
| 80 |  D:$P(PSBRPT(.1),U,1)="P"
 | 
|---|
| 81 |  .S PSBHDR(0)=PSBRPNM
 | 
|---|
| 82 |  .S PSBHDR(1)="Order Status(es): --"
 | 
|---|
| 83 |  .F Y=4,5,7,8 I $P(PSBFUTR,U,Y) S $P(PSBHDR(1),": ",2)=$P(PSBHDR(1),": ",2)_$S(PSBHDR(1)["--":"",1:"/ ")_$P("^^^Future^Active^^Expired^DC'd^^^^^^^^^^",U,Y)_" " S PSBHDR(1)=$TR(PSBHDR(1),"-","")
 | 
|---|
| 84 |  .I $P(PSBFUTR,U,11) S PSBHDR(2)="Include Action(s)"_$S(PSBCFLG:" & Comments/Reasons",1:"")
 | 
|---|
| 85 |  .D PT^PSBOHDR(PSBXDFN,.PSBHDR)
 | 
|---|
| 86 |  Q
 | 
|---|
| 87 | FTR ;  Fter
 | 
|---|
| 88 |  D PTFTR^PSBOHDR()
 | 
|---|
| 89 |  S PSBPG="Page: "_PSBPGNUM_" of "_$S($O(PSBOUTP(""),-1)=0:1,1:$O(PSBOUTP(""),-1))
 | 
|---|
| 90 |  S PSBPGRM=PSBTAB8-($L(PSBPG))
 | 
|---|
| 91 |  W !,PSBRPNM,"     ",?(PSBPGRM-($L(PSBDTTM)+3)),PSBDTTM_"  "_PSBPG
 | 
|---|
| 92 |  Q
 | 
|---|