Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PSBPRND

PSBPRND.m

Go to the documentation of this file.
  1. PSBPRND ;BIRMINGHAM/EFC-BCMA PRN DOCUMENTING ;May 2002
  1. ;;2.0;BAR CODE MED ADMIN;**32**;May 2002
  1. ;
  1. ;Queue the routine
  1. ENV(PSBPRNDT,PSBSTRT,PSBDUZ,PRNMSG) ;
  1. I $G(DUZ)="" W !,"Your DUZ is not defined. It must be defined." Q
  1. K ZTSAVE,ZTSK S ZTRTN="PROCESS^PSBPRND(PSBPRNDT,PSBSTRTE,PSBDUZ,PSBPRNM)",ZTDESC="BCMA PRN DOCUMENTATION",ZTIO=""
  1. W !!
  1. S ZTSAVE("PSBPRNDT")=""
  1. S ZTSAVE("PSBSTRTE")=""
  1. S ZTSAVE("PSBDUZ")=""
  1. S ZTSAVE("PSBPRNM")=""
  1. D ^%ZTLOAD
  1. I $D(ZTSK) D
  1. .W !!,"The PRN effectiveness documenting process was ",$S($G(ZTSK):"",1:"NOT"),"queued",!
  1. .W !," TASK#: "_$G(ZTSK)
  1. Q
  1. PSBPRNS ;Document all administrations of a PRN order that have NOT had
  1. ; the PRN Effectiveness documented for dates user provided
  1. ;
  1. N PSBIEN
  1. I $G(DUZ)="" W !,"Your DUZ is not defined. It must be defined." Q
  1. S PSBDUZ=$G(DUZ)
  1. D HEADER
  1. ;get start date
  1. S %DT="AEQ",%DT("A")="Select Date to Process From: "
  1. S %DT("B")=""
  1. W ! D ^%DT Q:+Y<1 S PSBDT=Y
  1. S PSBPRNDT=PSBDT D D^DIQ
  1. ;Get stop date
  1. S %DT="AEQ",%DT("A")="Select Date to Process Up to: "
  1. S %DT("B")=""
  1. W ! D ^%DT Q:+Y<1 S PSBDTA=Y
  1. S PSBSTRTE=PSBDTA D D^DIQ
  1. I PSBPRNDT>PSBSTRTE W !,"Start date cannot be greater than end date" Q
  1. ;Write user running routine
  1. S PSBNAME=$P(^VA(200,PSBDUZ,0),"^",1)
  1. W !!,"PRN effectiveness entered by: ",PSBNAME,!
  1. D HEADER
  1. ;COMMIT OR QUIT
  1. S Y=PSBDTA D DD^%DT S PSBRDT=Y
  1. S Y=PSBPRNDT D DD^%DT S PSBRDTA=Y
  1. W !!!,?10,"**PRN DOCUMENTATION WILL BE FILED FOR THE FOLLOWING**"
  1. W !!,?5,"PRN START DATE...........: ",PSBRDTA
  1. W !,?5,"PRN END DATE.............: ",PSBRDT
  1. W !,?5,"PRN ENTERED BY...........: ",PSBNAME
  1. W !,?5,"PRN DOCUMENTATION STATEMENT: "
  1. ;Set mesage to be used
  1. S PSBPRNM="Administrative Closure"
  1. I $L(PSBPRNM)>0 D
  1. .W ?9,$E(PSBPRNM,1,52)
  1. R !!,"Would you like to CONTINUE ? (Y/N):",PSBANS:30
  1. S PSBFLAG=""
  1. I (PSBANS["Y")!(PSBANS="y") S PSBFLAG=1
  1. I PSBFLAG'=1 D Q
  1. .W !!,"You have chosen not to continue! Application ending!!"
  1. D HEADER
  1. D ENV(PSBPRNDT,PSBSTRTE,PSBDUZ,PSBPRNM)
  1. Q
  1. ;
  1. PROCESS(PSBPRNDT,PSBSTRTE,PSBDUZ,PSBPRNM) ;
  1. ;Gather Patient DFN
  1. S PSBSRTD=PSBSTRTE+1
  1. S PSBPRTA=PSBPRNDT-1
  1. S PSBCNT="0"
  1. S DFN="" F S DFN=$O(^PSB(53.79,"APRN",DFN)) Q:DFN="" D
  1. .S PSBSTRT="" F S PSBSTRT=$O(^PSB(53.79,"APRN",DFN,PSBSTRT)) Q:PSBSTRT="" D
  1. ..I PSBSTRT>PSBPRTA,PSBSTRT<PSBSRTD D
  1. ...S PSBIEN="" F S PSBIEN=$O(^PSB(53.79,"APRN",DFN,PSBSTRT,PSBIEN)) Q:'PSBIEN D
  1. ....I ($P(^PSB(53.79,PSBIEN,0),U,9)'="G")&($P(^PSB(53.79,PSBIEN,0),U,9)'="RM") Q ;Med was never given
  1. ....Q:$P($G(^PSB(53.79,PSBIEN,.2)),U,2)]"" ;PRN already entered
  1. ....D FILEIT(PSBIEN,PSBPRNM)
  1. ....;increment counter
  1. ....S PSBCNT=PSBCNT+1
  1. ;Email the results
  1. D PSBEMAIL(PSBCNT,PSBPRNM,PSBSTRTE,PSBPRNDT,PSBDUZ)
  1. K PSBCNT,PSBPRNM,PSBDTA,PSBPRNDT,PSBDUZ,PSBPRMG,PSBSTRTE
  1. K PSBSRTD,PSBPRTA
  1. Q
  1. ;File PRN
  1. FILEIT(PSBIEN,PSBPRNM) ;
  1. ;
  1. S PSBREC(0)=PSBPRNM
  1. S PSBIEN=PSBIEN_","
  1. D VAL^PSBML(53.79,PSBIEN,.22,PSBREC(0))
  1. D FILEIT^PSBML
  1. Q
  1. ;
  1. ;
  1. W #
  1. W !,$TR($J("",IOM)," ","-")
  1. W !,?23,"PRN EFFECTIVENESS DOCUMENTATION ROUTINE"
  1. W !,$TR($J("",IOM)," ","-")
  1. Q
  1. ;
  1. ;
  1. PSBEMAIL(PSB1,PSB2,PSB3,PSB4,PSB5) ;
  1. ; PSB1 = PRN Count
  1. ; PSB2 = PRN message to file
  1. ; PSB3 = START date for search
  1. ; PSB4 = FINISH date for search
  1. ; PSB5 = DUZ for PRN entered by
  1. ; Send PRN documentation changes to user
  1. S Y=PSB3 D DD^%DT S PSB3X=Y
  1. S Y=PSB4 D DD^%DT S PSB4X=Y
  1. S PSB5=$P(^VA(200,PSB5,0),"^",1)
  1. S PSBMG=DUZ ;
  1. Q:PSBMG=""
  1. S PSBMSG(1)=" "
  1. S PSBMSG(2)=" PRN effectiveness not documented have been fixed. "
  1. S PSBMSG(3)=" "
  1. S PSBMSG(4)=" PRN effectiveness entered by.: "_PSB5
  1. S PSBMSG(5)=" Number of PRNs documented....: "_PSB1
  1. S PSBMSG(6)=" Start Date.......: "_PSB4X
  1. S PSBMSG(7)=" Finish Date......: "_PSB3X
  1. S PSBMSG(8)=" Message documented for PRNs..: "_PSB2
  1. S PSBMSG(9)=" "
  1. S PSBMSG(10)=" "
  1. S PSBMSG(11)=" "
  1. S PSBMSG(12)=""
  1. S PSBMSG(13)=" "
  1. S PSBMSG(14)=" "
  1. S PSBMSG(15)=" "
  1. S XMY(DUZ)="",XMTEXT="PSBMSG(",XMSUB="BCMA PRN DOCUMENTATION Notification."
  1. D ^XMD
  1. K PSB1,PSB2,PSB3,PSB4,PSB5,PSB4X,PSB3X
  1. K PSBMSG,PSBMG,XMY,XMSUB,XMTEXT
  1. Q
  1. ;
  1. ;
  1. ;
  1. ;
  1. ;