| 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
 | 
|---|