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

PSOERPC2.m

Go to the documentation of this file.
PSOERPC2 ;BIRM/MFR - All Patients (Patient Centric) eRx Queue - Supporting APIs 2 ;09/28/22
 ;;7.0;OUTPATIENT PHARMACY;**700**;DEC 1997;Build 261
 ;
MATCHLBL(MATCH) ; Match Filter Label
 I MATCH=1 Q $S($G(MBMSITE):"PATIENT FAIL",1:"PATIENT NOT MATCHED")
 I MATCH=2 Q $S($G(MBMSITE):"PROVIDER FAIL",1:"PROVIDER NOT MATCHED")
 I MATCH=3 Q $S($G(MBMSITE):"DRUG FAIL",1:"DRUG NOT MATCHED")
 I MATCH=4 Q $S($G(MBMSITE):"BASIC",1:"ALL MATCHED")
 Q ""
 ;
REVLOCKS ; Review/Clean-up Locks
 N ERXPATID,LKTOUT,DIE,DR
 ; TEMP CHANGE UNTIL MBM GETS OFF C3
 I $G(MBMSITE) Q
 S (ERXPATID,LKTOUT)=0 F  S ERXPATID=$O(^XTMP("PSOERXLOCK",ERXPATID)) Q:'ERXPATID  D
 . L +^XTMP("PSOERXLOCK",ERXPATID):LKTOUT I '$T Q
 . L -^XTMP("PSOERXLOCK",ERXPATID) K ^XTMP("PSOERXLOCK",ERXPATID)
 . S DIE="^PS(52.46,",DR="6///@",DA=ERXPATID D ^DIE
 Q
 ;
MATCHFLT(FILTER,ERXPAT) ; Check whether the patient qualifies for Match Filter
 ; Input: FILTER - Filter Value: 1 - Patient Fail | 2 - Provider Fail | 3 - Drug Fail | 4 - Basic (All matched) | 5 - All
 ;        ERXPAT - eRx Patient IEN (Pointer to #52.46)
 ;Ouptut: 1 - Patient qualifies for Match Filter | 0 - Patient does not qualify
 ;
 N MATCHFLT,RECDAT,ERXIEN,CSERX,MTYPE,ERXSTAT,VPATIEN,VPRVIEN,VDRGIEN,FOUNDONE,STATIEN
 S FILTER=+$G(FILTER) I FILTER=5!'FILTER Q 1
 S FOUNDONE=0,MATCHFLT=0
 I FILTER=4 S MATCHFLT=1
 S RECDAT=$$FMADD^XLFDT(DT,-PSOLKBKD)
 F  S RECDAT=$O(^PS(52.49,"PAT2",ERXPAT,RECDAT)) Q:'RECDAT  D  Q:(FILTER=4&'MATCHFLT)  Q:(FILTER'=4&MATCHFLT)
 . S ERXIEN=0 F  S ERXIEN=$O(^PS(52.49,"PAT2",ERXPAT,RECDAT,ERXIEN)) Q:'ERXIEN  D  Q:(FILTER=4&'MATCHFLT)  Q:(FILTER'=4&MATCHFLT)
 . . S CSERX=+$G(^PS(52.49,ERXIEN,95))
 . . S MTYPE=$P($G(^PS(52.49,ERXIEN,0)),"^",8)
 . . S STATIEN=+$G(^PS(52.49,ERXIEN,1)),ERXSTAT=$P(^PS(52.45,STATIEN,0),"^")
 . . ; Exclude eRx's on Hold
 . . I $E(ERXSTAT,1)="H" Q
 . . I '$$ELIGSTS^PSOERPC1("PC",ERXSTAT,MTYPE) Q
 . . ; - CS/Non-CS Filter
 . . I $G(PSOCSERX)="Non-CS",CSERX Q
 . . I $G(PSOCSERX)="CS",'CSERX Q
 . . ; - Match Status Filter
 . . S VPATIEN=+$P($G(^PS(52.49,ERXIEN,0)),"^",5)  ; Vista Patient
 . . S VPRVIEN=+$P($G(^PS(52.49,ERXIEN,2)),"^",3)  ; Vista Provider
 . . S VDRGIEN=+$P($G(^PS(52.49,ERXIEN,3)),"^",2)  ; Vista Drug
 . . S FOUNDONE=1
 . . I FILTER=1,'VPATIEN S MATCHFLT=1 Q
 . . I FILTER=2,'VPRVIEN,'$$MATCHFLT(1,ERXPAT) S MATCHFLT=1 Q
 . . I FILTER=3,'VDRGIEN,'$$MATCHFLT(1,ERXPAT),'$$MATCHFLT(2,ERXPAT) S MATCHFLT=1 Q
 . . I FILTER=4,'VDRGIEN!'VPATIEN!'VPRVIEN S MATCHFLT=0 Q
 I '$G(FOUNDONE) S MATCHFLT=0
 ;
 Q MATCHFLT