- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/OUTPATIENT_PHARMACY-PSO-APSP-HUIP/PSOHLEXP.m
r613 r623 1 PSOHLEXP ;BIR/RTR-Auto expire prescriptions ; 10/10/07 11:16am 2 ;;7.0;OUTPATIENT PHARMACY;**10,22,36,73,148,257**;DEC 1997;Build 19 3 ; 4 ;External reference to ^PS(59.7 supported by DBIA 694 5 ;External reference to STATUS^ORQOR2 is supported by DBIA 3458 6 ;External references to LOCK1^ORX2 and UNLK1^ORX2 are supported by DBIA 867 7 EN N PSOEXRX,PSOEXCOM,PSOEXSTS,SUSD,PSOEXSTA,ZZDT,ZZEDT,IFN,NODE,RF,PIFN,PSUSD,PRFDT,PDA,PSDTEST,ORN,CPRSDC 8 I '$G(DT) S DT=$$DT^XLFDT 9 S X1=DT,X2=-1 D C^%DTC S ZZEDT=X 10 S ZZDT=$P($G(^PS(59.7,1,49.99)),"^",8) I +ZZDT=0 S X1=DT,X2=-2 D C^%DTC S ZZDT=X 11 F S ZZDT=$O(^PSRX("AG",ZZDT)) Q:ZZDT>ZZEDT Q:ZZDT="" D EN1 12 Q 13 EN1 F PSOEXRX=0:0 S PSOEXRX=$O(^PSRX("AG",ZZDT,PSOEXRX)) Q:'PSOEXRX D:$D(^PSRX(PSOEXRX,0)) 14 .N CPRSDC,CPRSSTA 15 .S CPRSDC=",1,7,12,13," 16 .S ORN=$P($G(^PSRX(PSOEXRX,"OR1")),"^",2),CPRSSTA="" 17 .I ORN S CPRSSTA=+$$STATUS^ORQOR2(ORN) I CPRSSTA=0 S ORN="" 18 .Q:$P($G(^PSRX(PSOEXRX,2)),"^",6)'=ZZDT 19 .K CMOP S DA=PSOEXRX I DA D ^PSOCMOPA ;*257 ;SET UP CMOP() ARRAY 20 .S DA=$O(^PS(52.5,"B",PSOEXRX,0)) 21 .I DA S SUSD=$P($G(^PS(52.5,DA,0)),"^",2) I SUSD,$P($G(^(0)),"^",3) S DIK="^PS(52.5," D ^DIK K DIK 22 .I $D(^PS(52.4,PSOEXRX,0)) S DIK="^PS(52.4,",DA=PSOEXRX D ^DIK K DIK 23 .I $G(^PSRX(PSOEXRX,"H"))]"" K:$P(^PSRX(PSOEXRX,"H"),"^") ^PSRX("AH",$P(^PSRX(PSOEXRX,"H"),"^"),PSOEXRX) S ^PSRX(PSOEXRX,"H")="" 24 .S PSOEXSTA=$P($G(^PSRX(PSOEXRX,"STA")),"^") 25 .I PSOEXSTA=13 D Q 26 ..I 'ORN D EN^PSOHDR("PRES",PSOEXRX) 27 .I PSOEXSTA=12!(PSOEXSTA=14)!(PSOEXSTA=15) I ORN,CPRSDC'[(","_CPRSSTA_",") D 28 ..D EN^PSOHLSN1(PSOEXRX,"OD","","","A") 29 ..I ORN S CPRSSTA=+$$STATUS^ORQOR2(ORN) 30 .I PSOEXSTA=11 I ORN,CPRSDC'[(","_CPRSSTA_",") D 31 ..S $P(^PSRX(PSOEXRX,0),"^",19)=1 32 ..D EN^PSOHLSN1(PSOEXRX,"SC","ZE","Prescription is expired") 33 .I PSOEXSTA>9&(PSOEXSTA'=16) Q 34 .S $P(^PSRX(PSOEXRX,"STA"),"^")=11 35 .D REVERSE^PSOBPSU1(PSOEXRX,0,"DE",5,"RX EXPIRED") 36 .S (PIFN,PSUSD,PRFDT)=0 F S PIFN=$O(^PSRX(PSOEXRX,1,PIFN)) Q:'PIFN S PSUSD=PIFN,PRFDT=+$P($G(^PSRX(PSOEXRX,1,PIFN,0)),"^") 37 .S ORN=$P($G(^PSRX(PSOEXRX,"OR1")),"^",2) 38 .I $G(PSUSD) I '$P($G(^PSRX(PSOEXRX,1,PSUSD,0)),"^",18) S PSDTEST=0 D I 'PSDTEST K ^PSRX(PSOEXRX,1,PSUSD),^PSRX("AD",PRFDT,PSOEXRX,PSUSD),^PSRX(PSOEXRX,1,"B",PRFDT,PSUSD) D NSET 39 ..D REVERSE^PSOBPSU1(PSOEXRX,PSUSD,"DE",5,"RX EXPIRED") 40 ..F PDA=0:0 S PDA=$O(^PSRX(PSOEXRX,"L",PDA)) Q:'PDA I $P($G(^PSRX(PSOEXRX,"L",PDA,0)),"^",2)=PSUSD S PSDTEST=1 41 ..I $G(CMOP(CMOP("L")))="",".L.X."[("."_$G(CMOP("S"))_".") S PSDTEST=1 42 ..N PSOORL 43 ..S PSOORL=$$LOCK1^ORX2(ORN) S:'PSOORL PSDTEST=1 I PSOORL D UNLK1^ORX2(ORN) 44 ..N PDA0 45 ..;S PDAQ=0 46 ..F PDA=0:0 S PDA=$O(^PSRX(PSOEXRX,4,PDA)) Q:'PDA D 47 ...S PDA0=$G(^PSRX(PSOEXRX,4,PDA,0)) 48 ...I $P(PDA0,"^",3)=PSUSD S PSDTEST=1 ;*257 49 ..;Q:'PDAQ 50 ..;S PSDTEST=1 51 .I 'ORN D EN^PSOHDR("PRES",PSOEXRX) Q 52 .I CPRSDC[(","_CPRSSTA_",") D EN^PSOHDR("PRES",PSOEXRX) Q 53 .S $P(^PSRX(PSOEXRX,0),"^",19)=1 54 .S PSOEXCOM="Prescription past expiration date" D EN^PSOHLSN1(PSOEXRX,"SC","ZE",PSOEXCOM) 55 S DIE=59.7,DA=1,DR="49.95///"_ZZDT D ^DIE K DIE,DA,DR 56 Q 57 NSET ; 58 N PSONM,PSONMX 59 S PSONM="" F PSONMX=0:0 S PSONMX=$O(^PSRX(PSOEXRX,1,PSONMX)) Q:'PSONMX S PSONM=PSONMX 60 S ^PSRX(PSOEXRX,1,0)="^52.1DA^"_$G(PSONM)_"^"_$G(PSONM) 61 Q 62 SETUP ; 63 K %DT,DIC,DTOUT S DIC(0)="XZM",DIC="^DIC(19.2,",X="PSO EXPIRE PRESCRIPTIONS" D ^DIC 64 I +Y>0 D EDIT^XUTMOPT("PSO EXPIRE PRESCRIPTIONS") K DIC,Y,X Q 65 D RESCH^XUTMOPT("PSO EXPIRE PRESCRIPTIONS","","","24H","L"),EDIT^XUTMOPT("PSO EXPIRE PRESCRIPTIONS") K DIC,Y,X 66 OUT Q 1 PSOHLEXP ;BIR/RTR-Auto expire prescriptions ;10/10/96 2 ;;7.0;OUTPATIENT PHARMACY;**10,22,36,73,148**;DEC 1997 3 ;External reference to STATUS^ORQOR2 is supported by DBIA 3458 4 ; 5 EN N PSOEXRX,PSOEXCOM,PSOEXSTS,SUSD,PSOEXSTA,ZZDT,IFN,NODE,RF,PIFN,PSUSD,PRFDT,PDA,PSDTEST,ORN 6 I '$G(DT) S DT=$$DT^XLFDT 7 S X1=DT,X2=-1 D C^%DTC S ZZDT=X 8 F PSOEXRX=0:0 S PSOEXRX=$O(^PSRX("AG",ZZDT,PSOEXRX)) Q:'PSOEXRX D:$D(^PSRX(PSOEXRX,0)) 9 .Q:$P($G(^PSRX(PSOEXRX,2)),"^",6)'=ZZDT 10 .S DA=$O(^PS(52.5,"B",PSOEXRX,0)) 11 .I DA S SUSD=$P($G(^PS(52.5,DA,0)),"^",2) I SUSD,$P($G(^(0)),"^",3) S DIK="^PS(52.5," D ^DIK K DIK 12 .I $D(^PS(52.4,PSOEXRX,0)) S DIK="^PS(52.4,",DA=PSOEXRX D ^DIK K DIK 13 .I $G(^PSRX(PSOEXRX,"H"))]"" K:$P(^PSRX(PSOEXRX,"H"),"^") ^PSRX("AH",$P(^PSRX(PSOEXRX,"H"),"^"),PSOEXRX) S ^PSRX(PSOEXRX,"H")="" 14 .S PSOEXSTA=$P($G(^PSRX(PSOEXRX,"STA")),"^") 15 .Q:PSOEXSTA=13!(PSOEXSTA="") 16 .I '$P($G(^PSRX(PSOEXRX,"OR1")),"^",2) D EN^PSOHLSN1(PSOEXRX,"ZC","") I $P($G(^PSRX(PSOEXRX,"OR1")),"^",2) D 17 ..I PSOEXSTA=12!(PSOEXSTA=14)!(PSOEXSTA=15) D EN^PSOHLSN1(PSOEXRX,"OD","","","A") 18 .I PSOEXSTA=11 S ORN=$P($G(^PSRX(PSOEXRX,"OR1")),"^",2) I ORN,+$$STATUS^ORQOR2(ORN)=6 D 19 ..S $P(^PSRX(PSOEXRX,0),"^",19)=1 20 ..D EN^PSOHLSN1(PSOEXRX,"SC","ZE","Prescription is expired") 21 .Q:PSOEXSTA>9 22 .S $P(^PSRX(PSOEXRX,"STA"),"^")=11 23 .I '$G(PSUSD) D REVERSE^PSOBPSU1(PSOEXRX,0,"DE",5,"RX EXPIRED") 24 .S (PIFN,PSUSD,PRFDT)=0 F S PIFN=$O(^PSRX(PSOEXRX,1,PIFN)) Q:'PIFN S PSUSD=PIFN,PRFDT=+$P($G(^PSRX(PSOEXRX,1,PIFN,0)),"^") 25 .I $G(PSUSD) I '$P($G(^PSRX(PSOEXRX,1,PSUSD,0)),"^",18) S PSDTEST=0 D I 'PSDTEST K ^PSRX(PSOEXRX,1,PSUSD),^PSRX("AD",PRFDT,PSOEXRX,PSUSD),^PSRX(PSOEXRX,1,"B",PRFDT,PSUSD) D NSET 26 ..D REVERSE^PSOBPSU1(PSOEXRX,PSUSD,"DE",5,"RX EXPIRED") 27 ..F PDA=0:0 S PDA=$O(^PSRX(PSOEXRX,"L",PDA)) Q:'PDA I $P($G(^PSRX(PSOEXRX,"L",PDA,0)),"^",2)=PSUSD S PSDTEST=1 28 ..S DA=PSOEXRX K CMOP D ^PSOCMOPA I $G(CMOP(CMOP("L")))="",$G(CMOP("S"))'="L" Q 29 ..S PSDTEST=1 30 .Q:'$P($G(^PSRX(PSOEXRX,"OR1")),"^",2) 31 .S $P(^PSRX(PSOEXRX,0),"^",19)=1 32 .S PSOEXCOM="Prescription past expiration date" D EN^PSOHLSN1(PSOEXRX,"SC","ZE",PSOEXCOM) 33 Q 34 NSET ; 35 N PSONM,PSONMX 36 S PSONM="" F PSONMX=0:0 S PSONMX=$O(^PSRX(PSOEXRX,1,PSONMX)) Q:'PSONMX S PSONM=PSONMX 37 S ^PSRX(PSOEXRX,1,0)="^52.1DA^"_$G(PSONM)_"^"_$G(PSONM) 38 Q 39 SETUP ; 40 K %DT,DIC,DTOUT S DIC(0)="XZM",DIC="^DIC(19.2,",X="PSO EXPIRE PRESCRIPTIONS" D ^DIC 41 I +Y>0 D EDIT^XUTMOPT("PSO EXPIRE PRESCRIPTIONS") K DIC,Y,X Q 42 D RESCH^XUTMOPT("PSO EXPIRE PRESCRIPTIONS","","","24H","L"),EDIT^XUTMOPT("PSO EXPIRE PRESCRIPTIONS") K DIC,Y,X 43 OUT Q
Note:
See TracChangeset
for help on using the changeset viewer.