| 1 | PSGEUDP ;BIR/MV-PRINT EXTRA UNITS DISP. ;04 JAN 95 / 12:27 PM
 | 
|---|
| 2 |  ;;5.0; INPATIENT MEDICATIONS ;;16 DEC 97
 | 
|---|
| 3 | START ;
 | 
|---|
| 4 |  ;*** The drug name will be truncated to 33 chars when print
 | 
|---|
| 5 |  ;*** by Ward/WardGroup
 | 
|---|
| 6 |  I '$D(^TMP($J)) W !!,"NO DATA FOUND ON EXTRA UNITS DISPENSED" G EXIT
 | 
|---|
| 7 |  U IO
 | 
|---|
| 8 |  NEW MSG1,MSG2,DRGO,PPNO,TMO,PNAME
 | 
|---|
| 9 |  S (PSGPG,PSJSTOP)=0
 | 
|---|
| 10 |  S MSG1="TOTAL FOR ",$P(MSG2,".",80)="."
 | 
|---|
| 11 |  D @($S(PSGSS="P":"P",1:"W"))
 | 
|---|
| 12 | EXIT D EXITDEV^PSJMUTL
 | 
|---|
| 13 |  K PSGTOTD,PSGTOTM,PSGTOTU,PSGTOTW,PSGWNO,PSGPG
 | 
|---|
| 14 |  Q
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | P ;*** Print by patient.
 | 
|---|
| 17 |  S (PPNO,DRGO)=""
 | 
|---|
| 18 |  S (PPN,DRG)="" F  S PPN=$O(^TMP($J,PPN)) Q:(PPN=""!$G(PSJSTOP))  S PNAME=$P($G(^DPT($P(PPN,"^",2),0)),"^") F  S DRG=$O(^TMP($J,PPN,DRG)) Q:(DRG=""!$G(PSJSTOP))  D
 | 
|---|
| 19 |  . F PSGDT=0:0 S PSGDT=$O(^TMP($J,PPN,DRG,PSGDT)) Q:('PSGDT!$G(PSJSTOP))  D PRTPT
 | 
|---|
| 20 |  Q:$G(PSJSTOP)
 | 
|---|
| 21 |  D:DRGO]"" TOT(PSGTOTD,"  ",46),TOT(PSGTOTU,MSG1_$P($G(^DPT($P(PPNO,"^",2),0)),"^"),46)
 | 
|---|
| 22 |  Q
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 | PRTPT ;*** Print Extra Dispensed Drug sort by patient.
 | 
|---|
| 25 |  S ND=^TMP($J,PPN,DRG,PSGDT)
 | 
|---|
| 26 |  I PPN'=PPNO D:DRGO]"" TOT(PSGTOTD,"  ",46) D:PPNO]"" TOT(PSGTOTU,MSG1_$P($G(^DPT($P(PPNO,"^",2),0)),"^"),46) D PHDR S PSGTOTU=0,PPNO=PPN,DRGO=""
 | 
|---|
| 27 |  I DRG'=DRGO D:DRGO]"" TOT(PSGTOTD,"  ",46) W !,DRG S DRGO=DRG,PSGTOTD=0
 | 
|---|
| 28 |  E  W !
 | 
|---|
| 29 |  W ?46,$J(+ND,5),?53,$$ENDTC^PSGMI(PSGDT),?69,$E($P(^VA(200,+$P(ND,U,2),0),U,2),1,4)
 | 
|---|
| 30 |  D:($Y+5)>IOSL PHDR
 | 
|---|
| 31 |  S PSGTOTD=PSGTOTD+(+ND),PSGTOTU=PSGTOTU+(+ND)
 | 
|---|
| 32 |  Q
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 | TOT(TOT,NAME,X)      ;*** Print the total line for drug,patient,team,ward...
 | 
|---|
| 35 |  W !?2,NAME,$E(MSG2,1,X-2-$L(NAME)),?X,$J(TOT,5),!
 | 
|---|
| 36 |  Q
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 | PHDR ;*** Print the header when sort by patient.
 | 
|---|
| 39 |  D HDR Q:$G(PSJSTOP)
 | 
|---|
| 40 |  W !!,PNAME,?39,"Room_Bed: "_$P(ND,U,4),!,$P(ND,U,3),?39,"    Ward: "_$P(ND,U,5),!
 | 
|---|
| 41 |  W !!,"DRUG NAME",?47,"UNIT",?53,"DATE",?69,"DISP."
 | 
|---|
| 42 |  W !?53,"DISPENSED",?69,"BY",!
 | 
|---|
| 43 |  Q
 | 
|---|
| 44 | HDR ;*** Print the report main header.
 | 
|---|
| 45 |  Q:$$PRTCHK^PSJMUTL(PSGPG)
 | 
|---|
| 46 |  S PSGPG=PSGPG+1 W:$Y @IOF
 | 
|---|
| 47 |  W !?30,"EXTRA UNITS DISPENSED REPORT",?68,"PAGE: ",PSGPG
 | 
|---|
| 48 |  W !?17,"REPORT FROM: ",$$ENDTC^PSGMI(PSGSDT)," TO: ",$$ENDTC^PSGMI(PSGEDT),!
 | 
|---|
| 49 |  Q
 | 
|---|
| 50 | W ;***Print by ward/ward group.
 | 
|---|
| 51 |  S (DRGO,PSGWN,PSGWNO,TMO)="",(PSGTOTD,PSGTOTM,PSGTOTU,PSGTOTW)=0
 | 
|---|
| 52 |  F  S PSGWN=$O(^TMP($J,PSGWN)) Q:(PSGWN=""!$G(PSJSTOP))  S TM="" F  S TM=$O(^TMP($J,PSGWN,TM)) Q:(TM=""!$G(PSJSTOP))  D
 | 
|---|
| 53 |  . S DRG="" F  S DRG=$O(^TMP($J,PSGWN,TM,DRG)) Q:(DRG=""!$G(PSJSTOP))  S PPN="" F  S PPN=$O(^TMP($J,PSGWN,TM,DRG,PPN)) Q:(PPN=""!$G(PSJSTOP))  S PNAME=$P($G(^DPT($P(PPN,"^",2),0)),"^") D
 | 
|---|
| 54 |  . . F PSGDT=0:0 S PSGDT=$O(^TMP($J,PSGWN,TM,DRG,PPN,PSGDT)) Q:('PSGDT!$G(PSJSTOP))  D PRTW
 | 
|---|
| 55 |  Q:$G(PSJSTOP)
 | 
|---|
| 56 |  D:PSGTOTD TOT(PSGTOTD,"   ",53) D:TMO]""&(PSGTOTM&($G(PSGTM)!$G(PSGTMALL))) TOT(PSGTOTM,MSG1_TMO,53) D:PSGTOTW TOT(PSGTOTW,MSG1_PSGWNO,53) D:$G(PSGWGNM)]"" TOT(PSGTOTU,MSG1_PSGWGNM,53)
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 | PRTW ;*** Print output for ward/ward group
 | 
|---|
| 60 |  S ND=^TMP($J,PSGWN,TM,DRG,PPN,PSGDT)
 | 
|---|
| 61 |  D:'PSGPG WHDR
 | 
|---|
| 62 |  I PSGWN'=PSGWNO D
 | 
|---|
| 63 |  . D:DRGO]"" TOT(PSGTOTD,"   ",53) D:TMO]""&($G(PSGTM)!$G(PSGTMALL)) TOT(PSGTOTM,MSG1_TMO,53) D:PSGWNO]"" TOT(PSGTOTW,MSG1_PSGWNO,53)
 | 
|---|
| 64 |  . W !,"WARD: ",PSGWN W:$G(PSGTM)!$G(PSGTMALL) !,"TEAM: ",TM
 | 
|---|
| 65 |  . S DRGO="",TMO=TM,PSGWNO=PSGWN,(PSGTOTD,PSGTOTM,PSGTOTW)=0
 | 
|---|
| 66 |  I ($G(PSGTM)!$G(PSGTMALL)),TM'=TMO D:DRGO]"" TOT(PSGTOTD,"   ",53) D:TMO]"" TOT(PSGTOTM,MSG1_TMO,53) W !,"TEAM: ",TM S TMO=TM,DRGO="",(PSGTOTD,PSGTOTM)=0
 | 
|---|
| 67 |  I DRG'=DRGO D:DRGO]"" TOT(PSGTOTD,"   ",53) W !!,$E(DRG,1,31) S DRGO=DRG,PSGTOTD=0
 | 
|---|
| 68 |  E  W !
 | 
|---|
| 69 |  W ?33,$E(PNAME,1,13)_"("_$P(ND,U,3)_")",?53,$J(+ND,5),?59,$$ENDTC^PSGMI(PSGDT),?75,$E($P(^VA(200,+$P(ND,U,2),0),U,2),1,4)
 | 
|---|
| 70 |  D:($Y+5)>IOSL WHDR
 | 
|---|
| 71 |  S PSGTOTD=PSGTOTD+(+ND),PSGTOTU=PSGTOTU+(+ND),PSGTOTM=PSGTOTM+(+ND),PSGTOTW=PSGTOTW+(+ND)
 | 
|---|
| 72 |  Q
 | 
|---|
| 73 |  ;
 | 
|---|
| 74 | WHDR ;***Print ward/ward group header
 | 
|---|
| 75 |  D HDR
 | 
|---|
| 76 |  Q:$G(PSJSTOP)
 | 
|---|
| 77 |  W !!,"DRUG NAME",?33,"PATIENT",?54,"UNIT",?59,"DATE",?75,"DISP.",!,?59,"DISPENSED",?75,"BY",!
 | 
|---|
| 78 |  F X=1:1:80 W "="
 | 
|---|
| 79 |  W !
 | 
|---|
| 80 |  Q
 | 
|---|
| 81 |  ;
 | 
|---|