| 1 | BPSUSCR1 ;BHAM ISC/FLS - STRANDED CLAIMS SCREEN ;10-MAR-2005 | 
|---|
| 2 | ;;1.0;E CLAIMS MGMT ENGINE;**1,5**;JUN 2004;Build 45 | 
|---|
| 3 | ;;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | INIT ; -- init variables and list array | 
|---|
| 7 | N BPLN,BPLM,BP59,BPSORT,BPDUZ7,BPRET,CONT | 
|---|
| 8 | ;get date/time range | 
|---|
| 9 | K ^TMP($J),^TMP("BPSUSCR",$J) | 
|---|
| 10 | S BPTMPGL="^TMP(""BPSUSCR"",$J)" | 
|---|
| 11 | S CONT=1,VALMCNT=0 | 
|---|
| 12 | D COLLECT^BPSUSCR4(.BPARR) | 
|---|
| 13 | Q | 
|---|
| 14 | ; | 
|---|
| 15 | HELP ; -- help code | 
|---|
| 16 | S X="?" D DISP^XQORM1 W !! | 
|---|
| 17 | K X | 
|---|
| 18 | Q | 
|---|
| 19 | ; | 
|---|
| 20 | EXIT ; -- exit code | 
|---|
| 21 | Q | 
|---|
| 22 | ; | 
|---|
| 23 | ; Warning message for 'Transmitting' claims | 
|---|
| 24 | MESSAGE() ; | 
|---|
| 25 | W !!!,"Please be aware that if there are claims appearing on the ECME User Screen" | 
|---|
| 26 | W !,"with a status of 'In progress - Transmitting', then there may be a problem" | 
|---|
| 27 | W !,"with HL7 or with system connectivity with the Austin Automation Center (AAC)." | 
|---|
| 28 | W !,"Please contact your IRM to verify that connectivity to the AAC is working" | 
|---|
| 29 | W !,"and the HL7 link BPS NCPDP is processing messages before using this option" | 
|---|
| 30 | W !,"to unstrand claims with a status of 'In progress - Transmitting'.",! | 
|---|
| 31 | N DIR,X,Y,BPQ | 
|---|
| 32 | S BPQ=0 | 
|---|
| 33 | S DIR(0)="YA",DIR("A")="Do you want to continue? " | 
|---|
| 34 | S DIR("B")="NO" | 
|---|
| 35 | D ^DIR | 
|---|
| 36 | I Y'=1 S BPQ=1 | 
|---|
| 37 | W !! | 
|---|
| 38 | Q BPQ | 
|---|
| 39 | ; | 
|---|
| 40 | GETDTS(BPARR) ; Transaction dates to view. | 
|---|
| 41 | N DIR | 
|---|
| 42 | K DIRUT,DIROUT,DUOUT,DTOUT,Y | 
|---|
| 43 | S DIR(0)="DA^:DT:EX",DIR("A")="FIRST TRANSACTION DATE: " | 
|---|
| 44 | S DIR("B")="T-1" | 
|---|
| 45 | D ^DIR | 
|---|
| 46 | Q:$D(DUOUT)!($D(DTOUT)) | 
|---|
| 47 | S BPARR("BDT")=Y_".000001" | 
|---|
| 48 | ENDDT ; | 
|---|
| 49 | K DIRUT,DIROUT,DUOUT,DTOUT,Y | 
|---|
| 50 | S DIR(0)="DA^"_$P(BPARR("BDT"),".",1)_":DT:EX",DIR("A")="LAST TRANSACTION DATE: " | 
|---|
| 51 | S DIR("B")="T" | 
|---|
| 52 | D ^DIR | 
|---|
| 53 | Q:$D(DUOUT)!($D(DTOUT)) | 
|---|
| 54 | S BPARR("EDT")=$$EDATE(Y) | 
|---|
| 55 | Q | 
|---|
| 56 | ; | 
|---|
| 57 | EDATE(DATE) ; | 
|---|
| 58 | N RTN,%,%H | 
|---|
| 59 | S RTN=DATE_".235959" | 
|---|
| 60 | D NOW^%DTC | 
|---|
| 61 | I $P(%,".")=DATE S $P(%H,",",2)=$P(%H,",",2)-1800 D YX^%DTC S RTN=DATE_% | 
|---|
| 62 | Q RTN | 
|---|
| 63 | ALL ; Unstrand all claims currently selected. | 
|---|
| 64 | D FULL^VALM1 | 
|---|
| 65 | N D0,DIR,SEQ,LAST | 
|---|
| 66 | S LAST=+$O(^TMP($J,2,""),-1) | 
|---|
| 67 | I LAST=0 D  Q | 
|---|
| 68 | . W !,"There are no stranded claims in this date range to unstrand" | 
|---|
| 69 | . D PRESSANY^BPSOSU5() | 
|---|
| 70 | S DIR(0)="Y",DIR("A")="ARE YOU SURE? (YES/NO) ",DIR("B")="YES" D ^DIR Q:'Y | 
|---|
| 71 | W !,"PLEASE WAIT" | 
|---|
| 72 | S SEQ=0 | 
|---|
| 73 | F  S SEQ=$O(^TMP($J,2,SEQ)) Q:'SEQ  D | 
|---|
| 74 | .  S D0="" | 
|---|
| 75 | .  F  S D0=$O(^TMP($J,2,SEQ,D0)) Q:'D0  D | 
|---|
| 76 | .  .  D UNSTRAND(D0) | 
|---|
| 77 | .  .  Q | 
|---|
| 78 | .  Q | 
|---|
| 79 | W !,"Done" | 
|---|
| 80 | D CLEAN^VALM10 | 
|---|
| 81 | D COLLECT^BPSUSCR4(.BPARR) | 
|---|
| 82 | Q | 
|---|
| 83 | SELECT ; Select entries from the list and run each through the unstrand function | 
|---|
| 84 | N D0,DIR,I,J,VAR,BPTMPGL,PT,POP,LAST | 
|---|
| 85 | S LAST=+$O(^TMP($J,2,""),-1) | 
|---|
| 86 | I LAST=0 D  Q | 
|---|
| 87 | . W !,"There are no stranded claims to select" | 
|---|
| 88 | . D PRESSANY^BPSOSU5() | 
|---|
| 89 | K DTOUT,DUOUT | 
|---|
| 90 | S BPTMPGL="^TMP(""BPSUSCR"",$J)" | 
|---|
| 91 | S VAR="" | 
|---|
| 92 | S DIR(0)="LO^1:"_LAST | 
|---|
| 93 | S DIR("A")="Enter a Selection of Stranded Claims",DIR("B")="" | 
|---|
| 94 | D ^DIR | 
|---|
| 95 | I $D(DTOUT)!$D(DUOUT) Q | 
|---|
| 96 | S VAR=Y | 
|---|
| 97 | F I=1:1:$L(VAR,",") S PT=$P(VAR,",",I) D | 
|---|
| 98 | .  Q:PT="" | 
|---|
| 99 | .  I PT'["-" S D0=$O(^TMP($J,2,PT,"")) D UNSTRAND(D0) Q | 
|---|
| 100 | .  F J=$P(PT,"-"):1:$P(PT,"-",2) S D0=$O(^TMP($J,2,J,"")) D UNSTRAND(D0) | 
|---|
| 101 | .  Q | 
|---|
| 102 | D CLEAN^VALM10 | 
|---|
| 103 | D COLLECT^BPSUSCR4(.BPARR) | 
|---|
| 104 | Q | 
|---|
| 105 | PRINT ; | 
|---|
| 106 | N %ZIS | 
|---|
| 107 | S %ZIS="M" | 
|---|
| 108 | S %ZIS("A")="Select Printer: ",%ZIS("B")="" D ^%ZIS | 
|---|
| 109 | Q:IOPAR="" | 
|---|
| 110 | D PHDR | 
|---|
| 111 | D PLINE | 
|---|
| 112 | D ^%ZISC | 
|---|
| 113 | Q | 
|---|
| 114 | PHDR ; | 
|---|
| 115 | U IO | 
|---|
| 116 | W !,"Claims Stranded from ",BPBDT," through ",BPEDT | 
|---|
| 117 | ; | 
|---|
| 118 | W !!,?4,"TRANS DT",?15,"PATIENT NAME",?36,"ID",?41,"EXTERN RX#",?54,"RF",?57,"FILL DT",?68,"INS CO" | 
|---|
| 119 | W !,?4,"--------",?15,"------------",?36,"--",?41,"----------",?54,"--",?57,"-------",?68,"------" | 
|---|
| 120 | Q | 
|---|
| 121 | PLINE ; | 
|---|
| 122 | N SEQ,LINE | 
|---|
| 123 | S SEQ=0 | 
|---|
| 124 | F  S SEQ=$O(^TMP("BPSUSCR",$J,SEQ)) Q:'SEQ  D | 
|---|
| 125 | .  S LINE=$G(^TMP("BPSUSCR",$J,SEQ,0)) | 
|---|
| 126 | .  U IO | 
|---|
| 127 | .  W !,$E(LINE,1,79) | 
|---|
| 128 | .  Q | 
|---|
| 129 | Q | 
|---|
| 130 | ; | 
|---|
| 131 | ; Unstrand the claim | 
|---|
| 132 | ; Fileman read of New Person file (VA(200)) is covered by IA# 10600 | 
|---|
| 133 | UNSTRAND(IEN59) ; | 
|---|
| 134 | N MES | 
|---|
| 135 | S MES="E STRANDED" | 
|---|
| 136 | I $P($G(^BPST(IEN59,4)),"^",1)!($P($G(^BPST(IEN59,4)),"^",4)]"") S MES="E REVERSAL STRANDED" | 
|---|
| 137 | D SETRESU^BPSOSU(IEN59,99,MES) | 
|---|
| 138 | D SETSTAT^BPSOSU(IEN59,99) | 
|---|
| 139 | S MES=$T(+0)_"-Unstranded" | 
|---|
| 140 | I $G(DUZ) S MES=MES_" by "_$$GET1^DIQ(200,DUZ,.01,"E") | 
|---|
| 141 | D LOG^BPSOSL(IEN59,MES) | 
|---|
| 142 | Q | 
|---|