[623] | 1 | RGEX01 ;BAY/ALS-LIST MANAGER FOR MPI/PD EXCEPTIONS ;10/07/99
|
---|
| 2 | ;;1.0;CLINICAL INFO RESOURCE NETWORK;**3,12,19,23,43,45,47,48**;30 Apr 99;Build 3
|
---|
| 3 | ;
|
---|
| 4 | ;Reference to MAIN^VAFCPDAT supported by IA #3299
|
---|
| 5 | EN ; -- main entry point for RG EXCPT SUMMARY
|
---|
| 6 | N STDT,ENDDT,PRGSTAT,XFLAG,NOW,%,X,%H,%I,INDT,RUN,INDTT
|
---|
| 7 | S XFLAG=0 D NOW^%DTC S NOW=%
|
---|
| 8 | S STDT=$P($G(^RGSITE(991.8,1,"EXCPRG")),"^",1),INDT=STDT
|
---|
| 9 | I $D(STDT) S STDT=$$FMTE^XLFDT(STDT,1)
|
---|
| 10 | S PRGSTAT=$P($G(^RGSITE(991.8,1,"EXCPRG")),"^",3)
|
---|
| 11 | ;status shows 'running' but lock shows 'not running';**47
|
---|
| 12 | I PRGSTAT="R" D
|
---|
| 13 | .L +^RGHL7(991.1,"RG PURGE EXCEPTION"):0 I $T D ;can get lock
|
---|
| 14 | ..L +^RGSITE(991.8):10
|
---|
| 15 | ..S DIE="^RGSITE(991.8,",DA=1,DR="42///@"
|
---|
| 16 | ..D ^DIE K DA,DIE,DR ;delete old status
|
---|
| 17 | ..L -^RGSITE(991.8)
|
---|
| 18 | ..S PRGSTAT=""
|
---|
| 19 | .L -^RGHL7(991.1,"RG PURGE EXCEPTION")
|
---|
| 20 | I PRGSTAT="" D
|
---|
| 21 | . W $C(7)
|
---|
| 22 | . W !!,"The MPI/PD Exception Purge process has not been run."
|
---|
| 23 | . ;**48 NO LONGER A CHOICE
|
---|
| 24 | . W !!,"The MPI/PD Exception Purge process will now run."
|
---|
| 25 | . W !,"Please come back to this option in five minutes."
|
---|
| 26 | . W !!,"Please contact IRM to schedule the MPI/PD EXCEPTION PURGE"
|
---|
| 27 | . W !,"[RG EXCEPTION PURGE] option via TaskMan with a frequency of once an hour."
|
---|
| 28 | . S XFLAG=1 D QUEPRG
|
---|
| 29 | L +^RGHL7(991.1,"RG PURGE EXCEPTION"):0 I '$T W $C(7),!!,"The MPI/PD Exception Purge process is currently running.",!,"Please try this option again in five minutes." S XFLAG=1 G EXIT
|
---|
| 30 | L -^RGHL7(991.1,"RG PURGE EXCEPTION")
|
---|
| 31 | S RUN=0
|
---|
| 32 | I $G(PRGSTAT)="C" D
|
---|
| 33 | . I $P(INDT,".")<$P(NOW,".") S RUN=1 ;RAN A PREVIOUS DAY
|
---|
| 34 | . I $P(INDT,".")=$P(NOW,".") D
|
---|
| 35 | .. S INDTT=$E($P(INDT,".",2),1,4),INDTT=INDTT+101
|
---|
| 36 | .. I INDTT<$E($P(NOW,".",2),1,4) S RUN=1
|
---|
| 37 | . Q:RUN=0
|
---|
| 38 | . ;** if job ran more than 1 hour ago, run it now.
|
---|
| 39 | . W !!,"The MPI/PD Exception Purge process last ran "_STDT_"."
|
---|
| 40 | . W !!,"The MPI/PD Exception Purge process will now run."
|
---|
| 41 | . W !,"Please come back to this option in five minutes."
|
---|
| 42 | . W !!,"Please contact IRM to verify that the MPI/PD EXCEPTION PURGE "
|
---|
| 43 | . W !,"[RG EXCEPTION PURGE] option is scheduled to run via TaskMan"
|
---|
| 44 | . W !,"with a frequency of once an hour."
|
---|
| 45 | . S XFLAG=1 D QUEPRG
|
---|
| 46 | I XFLAG=1 G EXIT
|
---|
| 47 | K RGANS
|
---|
| 48 | D WAIT^DICD
|
---|
| 49 | D EN^VALM("RG EXCPT SUMMARY")
|
---|
| 50 | Q
|
---|
| 51 | ;
|
---|
| 52 | HDR ; -- header code
|
---|
| 53 | S VALMHDR(1)="MPI/PD Exception Handling"
|
---|
| 54 | S VALMHDR(2)=""
|
---|
| 55 | Q
|
---|
| 56 | ;
|
---|
| 57 | INIT ; -- init variables and list array
|
---|
| 58 | I '$D(RGSORT) S RGSORT="SD"
|
---|
| 59 | K @VALMAR
|
---|
| 60 | I RGSORT="SD" D DTLIST^RGEXHND1
|
---|
| 61 | E I RGSORT="ST" D EXCLST^RGEXHND1
|
---|
| 62 | E I RGSORT="SN" D PATLST^RGEXHND1
|
---|
| 63 | E I RGSORT="VT" D SELTYP^RGEXHND1
|
---|
| 64 | Q
|
---|
| 65 | ;
|
---|
| 66 | SORT ;
|
---|
| 67 | D INIT
|
---|
| 68 | S VALMBCK="R"
|
---|
| 69 | Q
|
---|
| 70 | HELP ; -- help code
|
---|
| 71 | S X="?" D DISP^XQORM1 W !!
|
---|
| 72 | Q
|
---|
| 73 | HLPPRG ;
|
---|
| 74 | W !,"Enter Y(YES) to run the MPI/PD Exception Purge process now."
|
---|
| 75 | W !!,"Enter N(NO) to go directly into the MPI/PD Exception Handling option."
|
---|
| 76 | Q
|
---|
| 77 | ;
|
---|
| 78 | EXIT ; -- exit code
|
---|
| 79 | K VADM,RGDFN,RGNM,RGSORT,RGSSN,STAT,STRING,NDX,NM,IEN,IEN2,X,DATA,CNT,EXCTYPE,ETYPE,^TMP("RGEXC",$J),^TMP("RGEX01",$J)
|
---|
| 80 | Q
|
---|
| 81 | QUEPRG S ZTRTN="MAIN^RGEVPRG",ZTDESC="PURGE ZZ*, OVER 30 DAY AND DUPLICATE RECORDS FROM THE CIRN HL7 EXCEPTION LOG FILE"
|
---|
| 82 | D NOW^%DTC
|
---|
| 83 | S ZTIO="",ZTDTH=%
|
---|
| 84 | I $D(DUZ) S ZTSAVE("DUZ")=DUZ
|
---|
| 85 | D ^%ZTLOAD
|
---|
| 86 | D HOME^%ZIS K IO("Q")
|
---|
| 87 | K ZTDESC,ZTDTH,ZTIO,ZTQUEUED,ZTREQ,ZTRTN,ZTSAVE,ZTSK,%
|
---|
| 88 | Q
|
---|
| 89 | ;
|
---|
| 90 | EXPND ; -- expand code
|
---|
| 91 | Q
|
---|
| 92 | ;
|
---|
| 93 | CUREX() ;Are there any patients in the CIRN HL7 EXCEPTION LOG file (#991.1)
|
---|
| 94 | ;that are NOT PROCESSED for specific exception types?
|
---|
| 95 | ; Return RGEX:
|
---|
| 96 | ;If RGEX=3 both unprocessed and Primary View Reject exceptions exist
|
---|
| 97 | ;If RGEX=2 only Primary View Reject exceptions exist
|
---|
| 98 | ;If RGEX=1 only unprocessed exceptions exist
|
---|
| 99 | ;If RGEX=0 no unprocessed exceptions exist
|
---|
| 100 | ;
|
---|
| 101 | N EXCTYP,RG1,RG2,RGEX
|
---|
| 102 | S EXCTYP="",(RG1,RG2,RGEX)=0
|
---|
| 103 | F S EXCTYP=$O(^RGHL7(991.1,"ASTAT","0",EXCTYP)) Q:'EXCTYP D
|
---|
| 104 | .I ((EXCTYP=234)!((EXCTYP>214)&(EXCTYP<219))) S RG1=1
|
---|
| 105 | .I (EXCTYP=234) S RG2=1 ;Primary View Reject
|
---|
| 106 | I (RG1=1),(RG2=1) S RGEX=3 ;Send both messages
|
---|
| 107 | I (RG1=1),(RG2=0) S RGEX=1 ;Only unresolved exceptions exist
|
---|
| 108 | I (RG1=0),(RG2=1) S RGEX=2 ;Only Primary View Reject exceptions exist
|
---|
| 109 | Q RGEX
|
---|
| 110 | ;
|
---|
| 111 | PROC ; For a given patient, set exceptions STATUS to PROCESSED.
|
---|
| 112 | ; DFN must be defined
|
---|
| 113 | Q:'$D(DFN)
|
---|
| 114 | S EXCTYP=""
|
---|
| 115 | S HOME=$$SITE^VASITE()
|
---|
| 116 | F S EXCTYP=$O(^RGHL7(991.1,"ADFN",EXCTYP)) Q:'EXCTYP D
|
---|
| 117 | . S RGDFN="",ICN=""
|
---|
| 118 | . F S RGDFN=$O(^RGHL7(991.1,"ADFN",EXCTYP,RGDFN)) Q:'RGDFN D
|
---|
| 119 | .. I DFN=RGDFN D
|
---|
| 120 | ... S ICN=+$$GETICN^MPIF001(DFN)
|
---|
| 121 | ... ;Only set to PROCESSED if patient has national ICN.
|
---|
| 122 | ... I $E(ICN,1,3)'=$E($P(HOME,"^",3),1,3)&(ICN>0) D
|
---|
| 123 | .... ;Exclude Death exceptions (215-217); they must be processed manually.
|
---|
| 124 | .... ;Exclude 218 Potential Matches Returned exception **43
|
---|
| 125 | .... I (EXCTYP>218)!(EXCTYP<215) D
|
---|
| 126 | ..... S IEN=0
|
---|
| 127 | ..... F S IEN=$O(^RGHL7(991.1,"ADFN",EXCTYP,RGDFN,IEN)) Q:'IEN D
|
---|
| 128 | ...... S IEN2=0
|
---|
| 129 | ...... F S IEN2=$O(^RGHL7(991.1,"ADFN",EXCTYP,RGDFN,IEN,IEN2)) Q:'IEN2 D
|
---|
| 130 | ....... L +^RGHL7(991.1,IEN):10
|
---|
| 131 | ....... S DA(1)=IEN,DA=IEN2,DR="6///"_1,DIE="^RGHL7(991.1,"_DA(1)_",1,"
|
---|
| 132 | ....... D ^DIE K DIE,DA,DR
|
---|
| 133 | ....... L -^RGHL7(991.1,IEN)
|
---|
| 134 | K IEN,IEN2,RGDFN,EXCTYP,ICN
|
---|
| 135 | Q
|
---|
| 136 | PDAT ;
|
---|
| 137 | K DIRUT
|
---|
| 138 | W !,"This report prints MPI/PD Data for a selected patient. The"
|
---|
| 139 | W !,"information displayed includes the Integration Control Number"
|
---|
| 140 | W !,"(ICN), patient identity information, and Treating Facility list."
|
---|
| 141 | W !!,"The information is pulled from the Patient (#2) file and the"
|
---|
| 142 | W !,"Treating Facility List (#391.91) file."
|
---|
| 143 | ;
|
---|
| 144 | ASK ;Ask for PATIENT
|
---|
| 145 | I $D(DIRUT) G QUIT
|
---|
| 146 | W !!,"Patient lookup can be done by Patient Name/SSN or by ICN.",!
|
---|
| 147 | N DFN,ICN
|
---|
| 148 | S DIC="^DPT(",DIC(0)="QEAM",DIC("A")="Select PATIENT: ",D="SSN^AICN^B^BS^BS5"
|
---|
| 149 | D MIX^DIC1 K DIC
|
---|
| 150 | G:Y<0 QUIT
|
---|
| 151 | S DFN=+Y
|
---|
| 152 | D MAIN^VAFCPDAT
|
---|
| 153 | G ASK
|
---|
| 154 | Q
|
---|
| 155 | QUIT ;
|
---|
| 156 | K DFN,ICN,D,Y,HOME
|
---|