| 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 |  ;
 | 
|---|