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

BEDDMREC.m

Go to the documentation of this file.
  1. BEDDMREC ;VNGT/HS/BEE-BEDD Patient Medication Reconciliation ; 08 Nov 2011 12:00 PM
  1. ;;2.0;BEDD DASHBOARD;;Jun 04, 2014;Build 13
  1. ;
  1. ;Adapted from BEDDMEDREC/CNHS/RPF
  1. ;
  1. Q
  1. ;
  1. EN(BEDDDFN,VIEN) ;EP - Patient Medication Reconciliation
  1. ;
  1. ; Input:
  1. ; BEDDDFN (Optional) - Patient DFN
  1. ; VIEN (Optional) - Visit pointer to 9000010
  1. ;
  1. S BEDDDFN=$G(BEDDDFN,""),VIEN=$G(VIEN,"")
  1. ;
  1. NEW %,%ZIS,AGE,AGPATDFN,AUPNDAYS,AUPNDOB,AUPNDOD,AUPNPAT,AUPNSEX,DFN,DIC,DOB
  1. NEW REC,RHIFLAG,SEX,SSN,X,Y,EXIT,DFN,POP
  1. ;
  1. ;Select Patient
  1. S:BEDDDFN]"" DFN=BEDDDFN
  1. I BEDDDFN="" D PTLK^AG
  1. Q:'$D(DFN)
  1. ;
  1. ;Select Device
  1. S %ZIS="QA"
  1. D ^%ZIS
  1. I POP N IOP S IOP=ION D ^%ZIS Q
  1. I $G(IO("Q")) D QUE D HOME^%ZIS Q
  1. U IO
  1. D START
  1. D ^%ZISC
  1. D HOME^%ZIS
  1. Q
  1. ;
  1. START ;Display Report
  1. ;
  1. NEW PNAME,PSEX,PDOB,PSITE,PCHRT,RPTDTM,LINE,PAGE,APTDT,PLOC
  1. ;
  1. S PNAME=$$GET1^DIQ(2,DFN_",",.01,"E")
  1. S PSEX=$$GET1^DIQ(2,DFN_",",.02,"E")
  1. S PDOB=$$FMTE^BEDDUTIL($$GET1^DIQ(2,DFN_",",.03,"I"))
  1. S PSITE=$$GET1^DIQ(4,DUZ(2)_",",.01,"E")
  1. S PCHRT=$$GET1^DIQ(9000001.41,DUZ(2)_","_DFN_",",.02,"E")
  1. S APTDT="" I VIEN]"" S APTDT=$$GET1^DIQ(9000010,VIEN_",",.01,"I") S:APTDT]"" APTDT=$$FMTE^BEDDUTIL(APTDT)
  1. S:APTDT]"" APTDT="PATIENT APPOINTMENT: "_APTDT
  1. S PLOC="" I VIEN]"" S PLOC=$$GET1^DIQ(9000010,VIEN_",",.08,"E")
  1. S:PLOC]"" PLOC="LOCATION: "_PLOC
  1. S $P(LINE,"*",78)="*"
  1. ;
  1. S RPTDTM=$TR($$XNOW^BEDDUTIL("5FMZ"),"@"," ")
  1. ;
  1. ;PRINT THE REPORT
  1. ;
  1. D HDR(.EXIT) G END:$G(EXIT)
  1. ;
  1. ;Display Patient Allergies
  1. W !,LINE
  1. W !,"ALLERGIES: ",$$PTALG^BEDDUTIL(DFN)
  1. ;
  1. ;Print Active Medications
  1. ;
  1. NEW X,MCTR
  1. K ^TMP("TIUMED",$J)
  1. S X=$$LIST^TIULMED(DFN,"^TMP(""TIUMED"",$J)",1)
  1. ;
  1. S MCTR=1
  1. AMED S MCTR=$O(^TMP("TIUMED",$J,MCTR)) G OMED:MCTR=""
  1. NEW DATA
  1. S DATA=$G(^TMP("TIUMED",$J,MCTR,0))
  1. I DATA["ACTIVE OUTPATIENT" G AMED
  1. W !,DATA
  1. S DATA=""
  1. I $Y>IOSL D HDR(.EXIT) G END:$G(EXIT)
  1. G AMED
  1. ;
  1. ;Print blank section for outside medications
  1. ;
  1. OMED I $Y>(IOSL-5) D HDR(.EXIT) G END:$G(EXIT)
  1. W !!,LINE
  1. W !,"____ I am unsure of any outside medications and/or over the counter"
  1. W !," medications and dosages. I will bring my medications on my next visit.",!
  1. W !,LINE
  1. I $Y>(IOSL-13) D HDR(.EXIT) G END:$G(EXIT)
  1. W !,"OUTSIDE MEDICATIONS"
  1. W !,"Patient: Please list any outside medications not received at any"
  1. W !,PSITE," Pharmacy"
  1. W !!,"_____________________________________________________________________"
  1. W !!,"_____________________________________________________________________"
  1. W !!,"_____________________________________________________________________"
  1. W !!,"_____________________________________________________________________"
  1. W !!
  1. ;
  1. ;Print place for over the counter medications
  1. ;
  1. I $Y>(IOSL-14) D HDR(.EXIT) G END:$G(EXIT)
  1. W !,LINE
  1. W !,"OVER THE COUNTER MEDICATIONS"
  1. W !,"Patient: Please list any OVER the Counter Medications"
  1. W !!,"_____________________________________________________________________"
  1. W !!,"_____________________________________________________________________"
  1. W !!,"_____________________________________________________________________"
  1. W !!,"_____________________________________________________________________"
  1. W !!!
  1. ;
  1. ;Print place for new medications
  1. ;
  1. I $Y>IOSL D HDR(.EXIT) G END:$G(EXIT)
  1. W !,LINE
  1. W !!,"NEW/CHANGE MEDICATIONS"
  1. W !!,"_____________________________________________________________________"
  1. W !!,"_____________________________________________________________________"
  1. W !!,"_____________________________________________________________________"
  1. W !!,"_____________________________________________________________________"
  1. ;
  1. END ;EP - Cleanup
  1. ;
  1. I $E(IOST)="C",'$G(EXIT) K DIR D RTRN
  1. I $E(IOST)'="C" D CLOSE^%ZISH(IO)
  1. ;
  1. K ^TMP("TIUMED",$J)
  1. Q
  1. ;
  1. ;Display Header
  1. ;
  1. HDR(EXIT) ;EP - Display Report Header
  1. ;
  1. NEW ALERT,TITLE,PRINT
  1. S PAGE=$G(PAGE)+1
  1. ;
  1. ;Handle Screen Printing
  1. I PAGE>1 D RTRN(.EXIT) Q:$G(EXIT)
  1. ;
  1. I PAGE'=1 U IO W @IOF
  1. S ALERT="***ALERT*** PATIENT COPY *** PATIENT COPY *** ALERT ***"
  1. S TITLE="PATIENT MEDICATION RECONCILIATION"
  1. S PRINT="PRINTED ON "_RPTDTM
  1. ;
  1. W !,PRINT,?70,"PAGE: ",PAGE
  1. W !,?((80-$L(ALERT))/2),ALERT
  1. W !!,?((80-$L(PSITE))/2),PSITE
  1. W !,?((80-$L(TITLE))/2),TITLE
  1. I $G(APTDT)]"" W !,?((80-$L(APTDT))/2),APTDT
  1. I $G(PLOC)]"" W !,?((80-$L(PLOC))/2),PLOC
  1. ;
  1. W !!,"PATIENT NAME: ",PNAME
  1. W ?46,"SEX: ",PSEX
  1. W !,?5,"CHART #: ",PCHRT,?46,"DOB: ",PDOB
  1. W !
  1. Q
  1. ;
  1. RTRN(EXIT) ;EP - Force RETURN entry
  1. NEW DIR,DIRUT,DUOUT,Y
  1. S EXIT=""
  1. ;Only ask if displaying to screen
  1. I $E(IOST)="C" D
  1. . S DIR(0)="E"
  1. . D ^DIR
  1. . K DIR
  1. . I $G(DUOUT)!$G(DIRUT) S EXIT=1
  1. ;
  1. Q
  1. ;
  1. QUE ;Queue Task
  1. NEW ZTRTN,ZTSAVE,ZTDESC
  1. K IO("Q")
  1. S ZTRTN="START^BEDDMREC",ZTDESC="Patient Medication Reconciliation"
  1. S ZTSAVE("*")=""
  1. K ZTSK D ^%ZTLOAD
  1. I $D(ZTSK)[0 W !!?5,"Report Cancelled!"
  1. E W !!?5,"Task # ",ZTSK," queued.",!
  1. H 3
  1. Q