| 1 | PSOP288R        ;REPORT FOR PATCH PSO*7.0*288 | 
|---|
| 2 | ;;7.0;OUTPATIENT PHARMACY;**288**;DEC 2007;Build 17 | 
|---|
| 3 | ;External reference to File ^PS(55 supported by DBIA 2228 | 
|---|
| 4 | ;External reference to File ^DPT supported by DBIA 10035 | 
|---|
| 5 | ;External reference to File ^SC supported by DBIA 10040 | 
|---|
| 6 | ; | 
|---|
| 7 | ;FIND ERRONEOUS RECORDS IN THE PHARMACY PATIENT FILE (#55) AND ALLOW THE USER TO CLEAN THEM UP | 
|---|
| 8 | ; | 
|---|
| 9 | EN      W !!,"CREATING REPORT...",! | 
|---|
| 10 | S ZTRTN="QUEUE^PSOP288R",ZTDESC="Erroneous Non-VA Meds Records Report",ZTIO="" D ^%ZTLOAD K IO("Q") | 
|---|
| 11 | Q | 
|---|
| 12 | QUEUE   N PSOPAT,PSONVA,PSONVA0,PSODRG,PSOI,PSOSPC,PSOPATDB,PSOTXT,PSOTEXT,XMY,XMTEXT,XMSUB,XMDUZ,PSOPATI,X,X1,X2,PSOLOC,PSODIV,PSODIVN | 
|---|
| 13 | S PSOSPC="",PSODIVN="" | 
|---|
| 14 | F PSOI=1:1:20 S $E(PSOSPC,PSOI)=" " | 
|---|
| 15 | K ^XTMP("PSOP288") S X1=DT,X2=+90 D C^%DTC S ^XTMP("PSOP288",0)=$G(X)_U_DT_"^Erroneous Pharmacy Pateint File (#55) Non-VA Meds records" | 
|---|
| 16 | S PSOPAT=0 F  S PSOPAT=$O(^PS(55,PSOPAT)) Q:'PSOPAT  D | 
|---|
| 17 | .S PSONVA=0 F  S PSONVA=$O(^PS(55,PSOPAT,"NVA",PSONVA)) Q:'PSONVA  D | 
|---|
| 18 | ..S PSONVA0=$G(^PS(55,PSOPAT,"NVA",PSONVA,0)) | 
|---|
| 19 | ..I $P(PSONVA0,"^",10)]"",$P(PSONVA0,"^",11)]"" Q | 
|---|
| 20 | ..S PSOLOC=$P(PSONVA0,"^",12) I PSOLOC S PSODIV=$P(^SC(PSOLOC,0),"^",15) I PSODIV]"" S PSODIVN=$P($G(^DG(40.8,PSODIV,0)),"^") | 
|---|
| 21 | ..S:PSODIVN="" PSODIVN="UNKNOWN" | 
|---|
| 22 | ..S PSODRG=+PSONVA0 | 
|---|
| 23 | ..S ^XTMP("PSOP288",PSODIVN,PSOPAT,PSONVA)=PSODRG_U_$P($G(^PS(50.7,PSODRG,0)),"^") | 
|---|
| 24 | REP     ;CREATE REPORT - SEND TO USER | 
|---|
| 25 | S XMY(DUZ)="" | 
|---|
| 26 | S XMDUZ=.5,XMSUB="ERRONEOUS NON-VA MEDS RECORDS IN PHARMACY PATIENT FILE" | 
|---|
| 27 | ; | 
|---|
| 28 | S PSOTXT=1 | 
|---|
| 29 | S PSOTEXT(PSOTXT)="REPORT OF ERRONEOUS PHARMACY PATIENT FILE (#55) NON-VA MEDS RECORDS" | 
|---|
| 30 | S PSODIVN=0 F  S PSODIVN=$O(^XTMP("PSOP288",PSODIVN)) Q:PSODIVN=""  D | 
|---|
| 31 | .S PSOTXT=PSOTXT+1 | 
|---|
| 32 | .S PSOTEXT(PSOTXT)="" | 
|---|
| 33 | .S PSOTEXT(PSOTXT+1)="DIVISION: "_PSODIVN | 
|---|
| 34 | .S PSOTEXT(PSOTXT+2)="" | 
|---|
| 35 | .S PSOTXT=PSOTXT+2 | 
|---|
| 36 | .S PSOTEXT(PSOTXT)="IEN - PATIENT NAME",PSOTXT=PSOTXT+1 | 
|---|
| 37 | .S PSOTEXT(PSOTXT)=$E(PSOSPC,1,3)_"DRUG IEN - DRUG NAME",PSOTXT=PSOTXT+1 | 
|---|
| 38 | .S PSOTEXT(PSOTXT)="",PSOTXT=PSOTXT+1 | 
|---|
| 39 | .S PSOPAT=0 F  S PSOPAT=$O(^XTMP("PSOP288",PSODIVN,PSOPAT)) Q:'PSOPAT  D | 
|---|
| 40 | ..S PSOPATI=$G(^DPT(PSOPAT,0)) | 
|---|
| 41 | ..S PSOTEXT(PSOTXT)=PSOPAT_" - "_$P(PSOPATI,U) | 
|---|
| 42 | ..S PSOTXT=PSOTXT+1 | 
|---|
| 43 | ..S PSONVA=0 F  S PSONVA=$O(^XTMP("PSOP288",PSODIVN,PSOPAT,PSONVA)) Q:'PSONVA  D | 
|---|
| 44 | ...S PSONVA0=$G(^PS(55,PSOPAT,"NVA",PSONVA,0)) | 
|---|
| 45 | ...S PSODRG=+PSONVA0 | 
|---|
| 46 | ...S PSOTEXT(PSOTXT)=$E(PSOSPC,1,3)_$P(PSONVA0,U)_" - "_$P($G(^PS(50.7,PSODRG,0)),U) | 
|---|
| 47 | ...S PSOTXT=PSOTXT+1 | 
|---|
| 48 | I PSOTXT=1 S PSOTEXT(PSOTXT+1)="",PSOTEXT(PSOTXT+2)="NO ERRONEOUS ENTRIES FOUND" | 
|---|
| 49 | S XMTEXT="PSOTEXT(" N DIFROM D ^XMD K XMDUZ,XMTEXT,XMSUB | 
|---|
| 50 | Q | 
|---|