| 1 | PSXCOSTU ;BIR/BAB,WPB,HTW-Cost Update ; 26 Apr 2000  10:52 AM | 
|---|
| 2 | ;;2.0;CMOP;**18,19,27**;11 Apr 97 | 
|---|
| 3 | ;Reference to ^PSDRUG( supported by DBIA #2367, #1983 | 
|---|
| 4 | ; | 
|---|
| 5 | ;This routine will update the CMOP Master Database file with cost data from the drug file. Discrepancies will be reported via mail message. | 
|---|
| 6 | Q | 
|---|
| 7 | BLANK S ^XMB(3.9,XMZ,2,MCT,0)="" S MCT=MCT+1 | 
|---|
| 8 | Q | 
|---|
| 9 | EN ; | 
|---|
| 10 | W !! S DIR(0)="D^::EX",DIR("A")="Enter Begin Date ",DIR("?")="Enter the beginning date for the report" D ^DIR K DIR,DIR("?") | 
|---|
| 11 | G:($D(DIRUT))!($D(DIROUT)) EXIT | 
|---|
| 12 | S BB=Y,BEG=$$FMADD^XLFDT(BB,-1,0,0,0) K Y | 
|---|
| 13 | EDT W !! S DIR(0)="DO^::EX",DIR("A")="Enter End Date ",DIR("?")="Enter the ending date for the report" D ^DIR K DIR,DIR("?") | 
|---|
| 14 | I $G(Y)']"" W !! G EN | 
|---|
| 15 | G:($D(DIRUT))!($D(DIROUT)) EXIT | 
|---|
| 16 | I Y<BB W !,"End Date must follow Begin Date!" K Y,DIR G EDT | 
|---|
| 17 | S EE=Y,END=$$FMADD^XLFDT(EE,1,0,0,0) K Y,EE | 
|---|
| 18 | QUE S ZTRTN="GET^PSXCOSTU",ZTIO="",ZTSAVE("BEG")="",ZTSAVE("END")="" | 
|---|
| 19 | S ZTDESC="CMOP Cost Update for Master Database",ZTSAVE("DUZ")="" | 
|---|
| 20 | D ^%ZTLOAD | 
|---|
| 21 | I $D(ZTSK)[0 W !!,"Job Cancelled" | 
|---|
| 22 | E  W !!,"Job Queued" | 
|---|
| 23 | G EXIT | 
|---|
| 24 | ; Called by Taskman to Build Cost Data | 
|---|
| 25 | GET S (C1,CNT)=1 | 
|---|
| 26 | F  S BEG=$O(^PSX(552.4,"AD",BEG)) Q:BEG'>0!(BEG=END)  S XX=0 F  S XX=$O(^PSX(552.4,"AD",BEG,XX)) Q:XX'>0  S YY=0 F  S YY=$O(^PSX(552.4,"AD",BEG,XX,YY)) Q:YY'>0  D | 
|---|
| 27 | .I $P($G(^PSX(552.4,XX,1,YY,0)),U,2)'=1 Q | 
|---|
| 28 | .I $P(^PSX(552.4,XX,1,YY,0),U,11)>0 Q | 
|---|
| 29 | .S IDDRG=$P($G(^PSX(552.4,XX,1,YY,0)),U,4) Q:$G(IDDRG)="" | 
|---|
| 30 | .S CDT=$P($G(^PSX(552.4,XX,1,YY,0)),U,9) I $G(CDT) S Y=$P(CDT,".") X ^DD("DD") S CDT=Y K Y | 
|---|
| 31 | .S IEN50=$O(^PSDRUG("AQ1",IDDRG,"")) | 
|---|
| 32 | .I $G(IEN50)']"" S ^TMP($J,"PSX",CNT)=IDDRG_"     "_$G(CDT) S CNT=CNT+1 Q | 
|---|
| 33 | .S COST=$P($G(^PSDRUG(IEN50,660)),U,6) | 
|---|
| 34 | .S Z1=$P($G(^PSDRUG(IEN50,"ND")),U),Z2=$P($G(^("ND")),U,3) | 
|---|
| 35 | .I $G(Z1),($G(Z2)) S ZX=$$PROD2^PSNAPIS(Z1,Z2),TRUG=$P($G(ZX),"^") | 
|---|
| 36 | .I $G(COST)']"" S ^TMP($J,"PSX1",C1)=IDDRG_"     "_$G(CDT)_"     "_$G(TRUG) S C1=C1+1 Q | 
|---|
| 37 | .S DA(1)=XX,DA=YY,DIE="^PSX(552.4,"_XX_",1,",DR="10////"_$G(COST) D ^DIE | 
|---|
| 38 | .K DA(1),DA,COST,IDDRG,IEN50,DIE,DR,Z1,Z2 | 
|---|
| 39 | MSG ; | 
|---|
| 40 | I '$D(^TMP($J,"PSX")),('$D(^TMP($J,"PSX1"))) G EXIT | 
|---|
| 41 | S XMSUB="CMOP COST UPDATE",XMDUZ=.5 | 
|---|
| 42 | XMZ D XMZ^XMA2 | 
|---|
| 43 | I XMZ'>0 G XMZ | 
|---|
| 44 | S MCT=2 | 
|---|
| 45 | D NOW^%DTC S Y=% X ^DD("DD") | 
|---|
| 46 | S ^XMB(3.9,XMZ,2,1,0)="CMOP Master Database Drug Cost Update   "_Y K Y | 
|---|
| 47 | F I=1:1:2 D BLANK | 
|---|
| 48 | I '$D(^TMP($J,"PSX")) G PSX1 | 
|---|
| 49 | S ^XMB(3.9,XMZ,2,MCT,0)="The drug ID's listed below are missing a corresponding entry in Drug file 50,  therefore, no cost information can be updated for any prescription written" | 
|---|
| 50 | S MCT=MCT+1 | 
|---|
| 51 | S ^XMB(3.9,XMZ,2,MCT,0)="for this drug.  When the drug file entry is available, the Cost Update option  may be re-run for the dates indicated to enter the costs for these drugs." | 
|---|
| 52 | S MCT=MCT+1 | 
|---|
| 53 | D BLANK | 
|---|
| 54 | S ^XMB(3.9,XMZ,2,MCT,0)="DRUG ID   COMPLETED D/T" | 
|---|
| 55 | S MCT=MCT+1 | 
|---|
| 56 | D BLANK | 
|---|
| 57 | F I=0:0 S I=$O(^TMP($J,"PSX",I)) Q:'I  D | 
|---|
| 58 | .S ^XMB(3.9,XMZ,2,MCT,0)=^TMP($J,"PSX",I) S MCT=MCT+1 | 
|---|
| 59 | F I=1:1:2 D BLANK | 
|---|
| 60 | PSX1 I '$D(^TMP($J,"PSX1")) G MSGEND | 
|---|
| 61 | S ^XMB(3.9,XMZ,2,MCT,0)="The Drug File entries listed below do not contain cost data so prescriptions   for these drugs have not been updated.  When the cost data is entered,  " | 
|---|
| 62 | S MCT=MCT+1 | 
|---|
| 63 | S ^XMB(3.9,XMZ,2,MCT,0)="the Cost Update option may be re-run to update the prescription entries." | 
|---|
| 64 | S MCT=MCT+1 | 
|---|
| 65 | D BLANK | 
|---|
| 66 | S ^XMB(3.9,XMZ,2,MCT,0)="DRUG ID   COMPLETED D/T   DRUG NAME" | 
|---|
| 67 | S MCT=MCT+1 | 
|---|
| 68 | D BLANK | 
|---|
| 69 | F I=0:0 S I=$O(^TMP($J,"PSX1",I)) Q:'I  D | 
|---|
| 70 | .S ^XMB(3.9,XMZ,2,MCT,0)=^TMP($J,"PSX1",I) S MCT=MCT+1 | 
|---|
| 71 | MSGEND S ^XMB(3.9,XMZ,2,0)="^3.92A^"_MCT_U_MCT_U_DT,XMDUN="CMOP Manager" | 
|---|
| 72 | S XMDUZ=.5,XMY(DUZ)="" | 
|---|
| 73 | D ENT1^XMD | 
|---|
| 74 | EXIT K ID,XX,YY,BEG,END,IDDRG,IEN50,CNT,COST,^TMP($J),CDT,BB | 
|---|
| 75 | K XMSER,XQMSG,XMZ,XMSUB S ZTREQ="@" | 
|---|
| 76 | Q | 
|---|