| 1 | PSBPRN ;BIRMINGHAM/EFC-BCMA PRN FUNCTIONS ;Mar 2004 | 
|---|
| 2 | ;;3.0;BAR CODE MED ADMIN;**5,3,13**;Mar 2004 | 
|---|
| 3 | ; | 
|---|
| 4 | ;Reference/IA | 
|---|
| 5 | ;DEM^VADPT/10061 | 
|---|
| 6 | ;INP^VADPT/10061 | 
|---|
| 7 | ;$$GET1^DIQ/2056 | 
|---|
| 8 | EN ; | 
|---|
| 9 | Q | 
|---|
| 10 | ; | 
|---|
| 11 | EDIT ; Edit Medication Log PRN Effectiveness | 
|---|
| 12 | NEW DFN ;* Undef DFN at EDIT+7^PSBPRN (NOIS: HUN-0699-21494) | 
|---|
| 13 | W !! S DA="" | 
|---|
| 14 | S DIC="^DPT(",DIC(0)="AEQM",DIC("A")="Select Patient Name: " | 
|---|
| 15 | D ^DIC K DIC Q:+Y<1 | 
|---|
| 16 | S DFN=+Y | 
|---|
| 17 | D EDIT1 | 
|---|
| 18 | K DFN,DA | 
|---|
| 19 | G EDIT | 
|---|
| 20 | ; | 
|---|
| 21 | EDIT1 ; | 
|---|
| 22 | S %DT="AEQ",%DT("A")="Select Date to Begin Searching Back From: " | 
|---|
| 23 | S %DT("B")="Today" | 
|---|
| 24 | W !! D ^%DT Q:+Y<1  S PSBDT=Y | 
|---|
| 25 | F  D  Q:'PSBDT | 
|---|
| 26 | .W @IOF,!,"Searching Date " S Y=PSBDT D D^DIQ W Y | 
|---|
| 27 | .W !," #  Medication",?45,"St",?50,"D/T Given",?75,"Int" | 
|---|
| 28 | .W !,$TR($J("",IOM)," ","-") | 
|---|
| 29 | .S PSBSRCH=PSBDT+.9,PSBCNT=0 | 
|---|
| 30 | .K PSBTMP | 
|---|
| 31 | .F  S PSBSRCH=$O(^PSB(53.79,"APRN",DFN,PSBSRCH),-1) Q:'PSBSRCH!(PSBSRCH<PSBDT)  D | 
|---|
| 32 | ..S PSBIEN="" | 
|---|
| 33 | ..F  S PSBIEN=$O(^PSB(53.79,"APRN",DFN,PSBSRCH,PSBIEN),-1) Q:'PSBIEN  D | 
|---|
| 34 | ...Q:$P($G(^PSB(53.79,PSBIEN,.2)),U,2)]"" | 
|---|
| 35 | ...Q:$P($G(^PSB(53.79,PSBIEN,0)),U,9)'="G" | 
|---|
| 36 | ...S PSBCNT=PSBCNT+1,PSBTMP(PSBCNT)=PSBIEN | 
|---|
| 37 | ...I $Y>19 W ! S DIR(0)="E" D ^DIR W @IOF,!,"Searching Date " S Y=PSBDT D D^DIQ W Y,!," #  Medication",?45,"St",?50,"D/T Given",?75,"Int",!,$TR($J("",IOM)," ","-") | 
|---|
| 38 | ...W !,$J(PSBCNT,2),". " | 
|---|
| 39 | ...W ?5,$$GET1^DIQ(53.79,PSBIEN_",",.08) | 
|---|
| 40 | ...W ?45,$P(^PSB(53.79,PSBIEN,0),U,9) | 
|---|
| 41 | ...W ?50,$$GET1^DIQ(53.79,PSBIEN_",",.06) | 
|---|
| 42 | ...W ?75,$$GET1^DIQ(53.79,PSBIEN_",","ACTION BY:INITIAL") | 
|---|
| 43 | .I PSBCNT W ! S DIR(0)="NO^1:"_PSBCNT_":0" D ^DIR S:Y DA=PSBTMP(Y),PSBDT="" Q:Y | 
|---|
| 44 | .I 'PSBCNT W !!?5,"No Meds Found!" | 
|---|
| 45 | .S X1=PSBDT,X2=-1 D C^%DTC S (PSBDT,Y)=X D D^DIQ | 
|---|
| 46 | .W !!,"Continue With ",Y | 
|---|
| 47 | .S %=1 D YN^DICN I %'=1 S PSBDT=0 | 
|---|
| 48 | I DA S DDSFILE=53.79,DR="[PSB PRN EFFECTIVENESS]" D ^DDS S %=2 W !,"Edit another entry" D YN^DICN G:%=1 EDIT1 | 
|---|
| 49 | K PSBCNT,PSBDT,PSBIEN,PSBSRCH,PSBTMP,DA,DR,DDSFILE | 
|---|
| 50 | Q | 
|---|
| 51 | ; | 
|---|
| 52 | GETPRNS(RESULTS,DFN,PSBORD) ; Get the PRN's for a pt needing effectness | 
|---|
| 53 | ; | 
|---|
| 54 | ; RPC PSB GETPRNS | 
|---|
| 55 | ; | 
|---|
| 56 | ; Description: | 
|---|
| 57 | ; Returns all administrations of a PRN order that have NOT had | 
|---|
| 58 | ; the PRN Effectiveness documented BASED ON THE TRANSFER DATE AND SITE PARAM | 
|---|
| 59 | ; | 
|---|
| 60 | N PSBIEN,PSBSTOP | 
|---|
| 61 | K ^TMP("PSB",$J),RESULTS | 
|---|
| 62 | ; | 
|---|
| 63 | Q:$$DISCHRGD(DFN) | 
|---|
| 64 | ; | 
|---|
| 65 | D INP^VADPT S PSBTRDT=+VAIN(7) | 
|---|
| 66 | S PSBHOUR=$$GET^XPAR("DIV","PSB PRN DOCUMENTATION") I PSBHOUR="" S PSBHOUR=72 | 
|---|
| 67 | D NOW^%DTC S PSBSTRT=%,PSBPRNDT=$$FMADD^XLFDT(PSBSTRT,"",-PSBHOUR) | 
|---|
| 68 | ; | 
|---|
| 69 | ;Use the (OLDER) value of PSBPRNDT(site param) or PSBTRDT(admission) | 
|---|
| 70 | I PSBPRNDT>PSBTRDT S PSBPRNDT=PSBTRDT | 
|---|
| 71 | S PSBSTRT="" F  S PSBSTRT=$O(^PSB(53.79,"APRN",DFN,PSBSTRT),-1) Q:(PSBSTRT<PSBPRNDT)  D | 
|---|
| 72 | .S PSBIEN="" | 
|---|
| 73 | .F  S PSBIEN=$O(^PSB(53.79,"APRN",DFN,PSBSTRT,PSBIEN),-1) Q:'PSBIEN  D | 
|---|
| 74 | ..Q:(PSBORD'="")&($P(^PSB(53.79,PSBIEN,.1),U)'=PSBORD)  ;  Not the right order | 
|---|
| 75 | ..I ($P(^PSB(53.79,PSBIEN,0),U,9)'="G")&($P(^PSB(53.79,PSBIEN,0),U,9)'="RM") Q    ; Med was never given | 
|---|
| 76 | ..Q:$P($G(^PSB(53.79,PSBIEN,.2)),U,2)]""  ; Already entered | 
|---|
| 77 | ..S PSBX=PSBIEN_U_DFN,PSBIENS=PSBIEN_"," | 
|---|
| 78 | ..S PSBX=PSBX_U_$$GET1^DIQ(53.79,PSBIENS,.02) | 
|---|
| 79 | ..S PSBX=PSBX_U_$$GET1^DIQ(53.79,PSBIENS,.06,"I") | 
|---|
| 80 | ..S PSBX=PSBX_U_$$GET1^DIQ(53.79,PSBIENS,.07) | 
|---|
| 81 | ..S PSBX=PSBX_U_$$GET1^DIQ(53.79,PSBIENS,.08) | 
|---|
| 82 | ..S PSBX=PSBX_U_$$GET1^DIQ(53.79,PSBIENS,.21) | 
|---|
| 83 | ..D PSJ1^PSBVT(DFN,$$GET1^DIQ(53.79,PSBIENS,.11)) | 
|---|
| 84 | ..S PSBX=PSBX_U_PSBOIT_U_PSBONX | 
|---|
| 85 | ..S PSBX=PSBX_U_$$GET1^DIQ(53.79,PSBIENS,.27) | 
|---|
| 86 | ..S Y=$O(^TMP("PSB",$J,""),-1)+1 | 
|---|
| 87 | ..S ^TMP("PSB",$J,Y)=PSBX | 
|---|
| 88 | ..;Special instructions | 
|---|
| 89 | ..S Y=Y+1,^TMP("PSB",$J,Y)=PSBOTXT | 
|---|
| 90 | ..F PSBZ=.5,.6,.7 F PSBY=0:0 S PSBY=$O(^PSB(53.79,PSBIEN,PSBZ,PSBY)) Q:'PSBY  D | 
|---|
| 91 | ...S PSBDD=$S(PSBZ=.5:53.795,PSBZ=.6:53.796,1:53.797) | 
|---|
| 92 | ...S PSBSOL=$S(PSBZ=.5:"DD",PSBZ=.6:"ADD",1:"SOL") | 
|---|
| 93 | ...Q:'$D(^PSB(53.79,PSBIEN,PSBZ,PSBY)) | 
|---|
| 94 | ...S PSBUNIT=$$GET1^DIQ(PSBDD,PSBY_","_PSBIEN_",",.03) | 
|---|
| 95 | ...S PSBUNFR=$$GET1^DIQ(PSBDD,PSBY_","_PSBIEN_",",.04) | 
|---|
| 96 | ...S Y=Y+1 | 
|---|
| 97 | ...S ^TMP("PSB",$J,Y)=PSBSOL_U_$$GET1^DIQ(PSBDD,PSBY_","_PSBIEN_",",.01)_U_PSBUNIT_U_PSBUNFR | 
|---|
| 98 | ..S Y=Y+1,^TMP("PSB",$J,Y)="END" | 
|---|
| 99 | S ^TMP("PSB",$J,0)=+$O(^TMP("PSB",$J,""),-1) | 
|---|
| 100 | S RESULTS=$NAME(^TMP("PSB",$J)) | 
|---|
| 101 | K PSBTRDT,PSBHOUR,PSBPRNDT | 
|---|
| 102 | D CLEAN^PSBVT | 
|---|
| 103 | Q | 
|---|
| 104 | ; | 
|---|
| 105 | DISCHRGD(DFN) ; Patient Discharged OR Deceased? | 
|---|
| 106 | ; | 
|---|
| 107 | S DISCHRGD=0 | 
|---|
| 108 | ; | 
|---|
| 109 | D DEM^VADPT ;check for date of death entry | 
|---|
| 110 | I VADM(6)]"" S DISCHRGD=1,^TMP("PSB",$J,0)=0 K VADM | 
|---|
| 111 | ; | 
|---|
| 112 | I DISCHRGD=0 D  ;check for discharge if they're not dead | 
|---|
| 113 | .D INP^VADPT | 
|---|
| 114 | .I VAIN(1)']"" S DISCHRGD=1,^TMP("PSB",$J,0)=0 K VAIN | 
|---|
| 115 | ; | 
|---|
| 116 | I DISCHRGD D  ;setup results and clean up | 
|---|
| 117 | .S RESULTS=$NAME(^TMP("PSB",$J)) | 
|---|
| 118 | .K PSBTRDT,PSBHOUR,PSBPRNDT | 
|---|
| 119 | .D CLEAN^PSBVT | 
|---|
| 120 | ; | 
|---|
| 121 | Q DISCHRGD | 
|---|
| 122 | ; | 
|---|