[613] | 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 | ;
|
---|