| [613] | 1 | IBCECOB4 ;ALB/CXW - IB EM MANAGEMENT - REVIEW STATUS SCREEN ;16-MAY-2000 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**137,181,348,349**;21-MAR-1994;Build 46 | 
|---|
|  | 3 | ;;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | EN ; -- main entry point for claims status awaiting resolution detail | 
|---|
|  | 6 | S VALMCNT=0,VALMBG=1 | 
|---|
|  | 7 | D EN^VALM("IBCEM EOB REVIEW") | 
|---|
|  | 8 | Q | 
|---|
|  | 9 | ; | 
|---|
|  | 10 | HDR ; -- header code | 
|---|
|  | 11 | ;IBDA - ien EOB selection screen | 
|---|
|  | 12 | N IBST | 
|---|
|  | 13 | S IBST=$P($G(^IBM(361.1,IBDA,0)),U,16) | 
|---|
|  | 14 | S VALMHDR(2)="Review Status= "_$S(IBST=1:"REVIEW IN PROCESS",IBST=2:"ACCEPTED-INTERIM EOB",IBST=3:"ACCEPTED-COMPLETE EOB",IBST=4:"REJECTED",IBST=9:"CLAIM CANCELLED",1:"NOT REVIEWED") | 
|---|
|  | 15 | Q | 
|---|
|  | 16 | ; | 
|---|
|  | 17 | INIT ; -- init variables and list array | 
|---|
|  | 18 | N I,X,Y,Z,IBZ,IBFST,IBPAT | 
|---|
|  | 19 | K ^TMP("IBCECOC",$J) | 
|---|
|  | 20 | SCR S VALMCNT=0 | 
|---|
|  | 21 | ; IBCMT = the data extracted into ^TMP("IBCECOB1",$J) | 
|---|
|  | 22 | ; IBIFN = the ien of the bill | 
|---|
|  | 23 | ; IBDA = the ien of the entry in 361.1 | 
|---|
|  | 24 | S Z=$G(^DPT(+$P($G(^DGCR(399,IBIFN,0)),U,2),0)) | 
|---|
|  | 25 | S IBPAT=$E($P(Z,U),1,25)_"/"_$E($P(Z,U,9),6,9) | 
|---|
|  | 26 | S X="" | 
|---|
|  | 27 | S X=$$SETFLD^VALM1($$BN1^PRCAFN(IBIFN),X,"BILL") | 
|---|
|  | 28 | S X=$$SETFLD^VALM1($$DAT1^IBOUTL($P(IBCMT,U)),X,"SERVICE") | 
|---|
|  | 29 | S X=$$SETFLD^VALM1(IBPAT,X,"PATNM") | 
|---|
|  | 30 | S X=$$SETFLD^VALM1("  "_$P("PRI^SEC^TER",U,+$P(IBCMT,U,16)),X,"SEQ") | 
|---|
|  | 31 | S X=$$SETFLD^VALM1("  "_$$TYPE^IBJTLA1($P(IBCMT,U,5))_"/"_$S(+$P(IBCMT,U,6)=2:"CMS-1500",1:"UB-04"),X,"BTYPE") | 
|---|
|  | 32 | D SET(X) | 
|---|
|  | 33 | S Z=0 F  S Z=$O(^IBM(361.1,IBDA,21,Z)) Q:'Z  S I=$G(^(Z,0)) D | 
|---|
|  | 34 | . S X=$$SETSTR^VALM1("Review Date/Time: "_$$EXPAND^IBTRE(361.121,.01,+I),"",2,40) | 
|---|
|  | 35 | . D SET(X) | 
|---|
|  | 36 | . I $P($G(^VA(200,+$P(I,U,2),0)),U)'="" S X=$$SETSTR^VALM1("Reviewed By: "_$P($G(^VA(200,+$P(I,U,2),0)),U),"",2,50) D SET(X) | 
|---|
|  | 37 | . S (IBFST,Y)=0 F  S Y=$O(^IBM(361.1,IBDA,21,Z,1,Y)) Q:'Y  D | 
|---|
|  | 38 | .. S X=$$SETSTR^VALM1($S('IBFST:"Comments: ",1:"")_$G(^IBM(361.1,IBDA,21,Z,1,Y,0)),"",2,$S('IBFST:140,1:150)) | 
|---|
|  | 39 | .. D SET(X) | 
|---|
|  | 40 | .. S IBFST=1 | 
|---|
|  | 41 | . D SET("") | 
|---|
|  | 42 | INITQ Q | 
|---|
|  | 43 | ; | 
|---|
|  | 44 | HELP ; -- help code | 
|---|
|  | 45 | S X="?" D DISP^XQORM1 W !! | 
|---|
|  | 46 | Q | 
|---|
|  | 47 | ; | 
|---|
|  | 48 | EXIT ; -- exit code | 
|---|
|  | 49 | K ^TMP("IBCECOC",$J) | 
|---|
|  | 50 | D CLEAN^VALM10 | 
|---|
|  | 51 | Q | 
|---|
|  | 52 | ; | 
|---|
|  | 53 | SET(X) ; | 
|---|
|  | 54 | S VALMCNT=VALMCNT+1 | 
|---|
|  | 55 | S ^TMP("IBCECOC",$J,VALMCNT,0)=X | 
|---|
|  | 56 | S ^TMP("IBCECOC",$J,"IDX",VALMCNT,1)="" | 
|---|
|  | 57 | S ^TMP("IBCECOC",$J,1)=VALMCNT | 
|---|
|  | 58 | Q | 
|---|
|  | 59 | ; | 
|---|
|  | 60 | STATUS ; Edit review status | 
|---|
|  | 61 | ;IBDA - EOB ien | 
|---|
|  | 62 | N DA,DIE,DR,IBOLD,DIC,DO,DD,DLAYGO,IBFINAL,IBO,IBNEW,IBFACT | 
|---|
|  | 63 | D FULL^VALM1 | 
|---|
|  | 64 | S DIE="^IBM(361.1," | 
|---|
|  | 65 | S DA=IBDA | 
|---|
|  | 66 | G:'DA STATUSQ | 
|---|
|  | 67 | S IBOLD=$P($G(^IBM(361.1,DA,0)),U,16),IBFINAL=0,IBO=$S(IBOLD'="":"/"_IBOLD,1:"@") | 
|---|
|  | 68 | S DR="@1;.16;I +X<3 S IBFINAL=0,Y=""@99"";S IBFINAL=1;.2;I X="""" W !,""For a final status, this field is required"" S Y=""@98"";S Y=""@99"";@98;.16///"_IBO_";S Y=""@1"";@99" | 
|---|
|  | 69 | L +^IBM(361.1,IBDA):3 I '$T D  G STATUSQ | 
|---|
|  | 70 | . W !,"Sorry, another user currently editing this entry (#"_IBDA_")." | 
|---|
|  | 71 | D ^DIE | 
|---|
|  | 72 | ; | 
|---|
|  | 73 | I $G(IBFINAL) D  ;Final status selected - let remarks be entered | 
|---|
|  | 74 | . N Z | 
|---|
|  | 75 | . S Z=IBDA | 
|---|
|  | 76 | . N IBDA,Q,DIE,DR,DA,X,Y | 
|---|
|  | 77 | . S IBDA(1)=Z,IBDA="" | 
|---|
|  | 78 | . D ADDCOM(.IBDA,.DUZ,.IBCOM) | 
|---|
|  | 79 | . I $P($G(^IBM(361.1,IBDA(1),0)),U,20)="F",'$O(^IBM(361.1,IBDA(1),21,+IBDA,0)) D   ; Require remarks for 'OTHER ACTION' final status | 
|---|
|  | 80 | .. W !,"Since FILED - NO ACTION final status was selected, you must enter a",!,"   comment explaining the FILED - NO ACTION" D ADDCOM(.IBDA,.DUZ,.IBCOM,1) | 
|---|
|  | 81 | .. I IBDA D | 
|---|
|  | 82 | ... ; Delete entry if just entered without a comment | 
|---|
|  | 83 | ... D KILLREV(.IBDA) | 
|---|
|  | 84 | .. I '$O(^IBM(361.1,IBDA(1),21,+IBDA,0)) S DIE="^IBM(361.1,",DA=IBDA(1),DR=".20///@;.16///"_IBO D ^DIE W !,"The review status was not changed because no comment was entered",! Q | 
|---|
|  | 85 | S IBNEW=$P($G(^IBM(361.1,DA,0)),U,16) | 
|---|
|  | 86 | ;if time out-no change in review status | 
|---|
|  | 87 | S IBFACT=$P($G(^IBM(361.1,DA,0)),U,20) | 
|---|
|  | 88 | I $G(IBFINAL),IBFACT="",IBNEW>1 D  G STATUSQ | 
|---|
|  | 89 | . W !,"The review status was not changed because no final status was selected" | 
|---|
|  | 90 | . S DR=".16////"_IBOLD,DIE="^IBM(361.1," D ^DIE | 
|---|
|  | 91 | I IBNEW>1,$P(^IBM(361.1,DA,0),U,19) D | 
|---|
|  | 92 | . I "CR"'[IBFACT D | 
|---|
|  | 93 | .. N DIR,X,Y | 
|---|
|  | 94 | .. S DIR("?",1)="IF THIS BILL HAS RECEIVED ITS FINAL ELECTRONIC MESSAGE AND NO FURTHER ACTION",DIR("?",2)="WILL BE TAKEN ON IT, ANSWER YES" | 
|---|
|  | 95 | .. S DIR("A")="DO YOU WANT TO CLOSE THE TRANSMISSION RECORD FOR THIS CLAIM?: ",DIR("B")="NO",DIR(0)="YA" D ^DIR | 
|---|
|  | 96 | .. I Y>0 S IBFACT="N" | 
|---|
|  | 97 | . I "NCR"[IBFACT D UPDEDI^IBCEM(+$P(^IBM(361.1,DA,0),U,19),IBFACT) Q | 
|---|
|  | 98 | I IBOLD'=IBNEW D  ;Note the change and who made it | 
|---|
|  | 99 | . N IBIEN,IBTEXT,DA | 
|---|
|  | 100 | . S DA(1)=IBDA,DIC="^IBM(361.1,"_DA(1)_",21,",DIC(0)="L",DLAYGO=361.121 | 
|---|
|  | 101 | . S X=$$NOW^XLFDT | 
|---|
|  | 102 | . S DIC("P")=$$GETSPEC^IBEFUNC(361.1,21) | 
|---|
|  | 103 | . D FILE^DICN K DIC,DD,DO,DLAYGO | 
|---|
|  | 104 | . Q:Y'>0 | 
|---|
|  | 105 | . S DA(2)=DA(1),DA(1)=+Y,IBIEN=DA(1)_","_DA(2)_",",IBTEXT(1)="REVIEW STATUS CHANGED TO '"_$$EXPAND^IBTRE(361.1,.16,$P(^IBM(361.1,DA(2),0),U,16))_"'  BY: "_$$EXPAND^IBTRE(361.121,.02,+$G(DUZ)) | 
|---|
|  | 106 | . D WP^DIE(361.121,IBIEN,1,,"IBTEXT") K ^TMP("DIERR",$J) | 
|---|
|  | 107 | . D HDR,INIT | 
|---|
|  | 108 | L -^IBM(361.1,DA) | 
|---|
|  | 109 | STATUSQ ; | 
|---|
|  | 110 | D PAUSE^VALM1 | 
|---|
|  | 111 | S VALMBCK="R" | 
|---|
|  | 112 | Q | 
|---|
|  | 113 | ; | 
|---|
|  | 114 | ADDCOM(IBDA,DUZ,IBCOM,ADD) ; Add review comment to file 361.1 | 
|---|
|  | 115 | ; IBDA = array containing the DA references for the file add - | 
|---|
|  | 116 | ;        pass by reference | 
|---|
|  | 117 | ; DUZ = ien of the user | 
|---|
|  | 118 | ; ADD = flag when set to 1 says the review date exists, | 
|---|
|  | 119 | ;       just allow comment entry | 
|---|
|  | 120 | ; Returns IBDA = the entry # of the comment | 
|---|
|  | 121 | ;          and IBCOM array referencing any comments added by the user | 
|---|
|  | 122 | ; | 
|---|
|  | 123 | N DA,DIC,DD,DO,DLAYGO,X,Y | 
|---|
|  | 124 | S DR=$S($G(DUZ):".02////"_DUZ_";",1:"")_"1" | 
|---|
|  | 125 | I '$G(ADD) D | 
|---|
|  | 126 | . K DO,DD | 
|---|
|  | 127 | . S DIC="^IBM(361.1,"_IBDA(1)_",21,",DA(1)=IBDA(1),X=$$NOW^XLFDT | 
|---|
|  | 128 | . W !,"New Review Date: "_$$FMTE^XLFDT(X,2) | 
|---|
|  | 129 | . S DIC("DR")=DR,DLAYGO=361.121 | 
|---|
|  | 130 | . S DIC(0)="L",DIC("P")=$$GETSPEC^IBEFUNC(361.1,21) | 
|---|
|  | 131 | . D FILE^DICN K DIC,DD,DO,DLAYGO | 
|---|
|  | 132 | . S IBDA=+Y | 
|---|
|  | 133 | I IBDA>0 D | 
|---|
|  | 134 | . I $G(ADD) S DIE="^IBM(361.1,"_IBDA(1)_",21,",DA(1)=IBDA(1),DA=IBDA D ^DIE | 
|---|
|  | 135 | . I '$O(^IBM(361.1,IBDA(1),21,IBDA,0)) D KILLREV(.IBDA) Q | 
|---|
|  | 136 | . S IBCOM(DUZ,IBDA)="" | 
|---|
|  | 137 | Q | 
|---|
|  | 138 | ; | 
|---|
|  | 139 | KILLREV(IBDA) ; Deletes a review date if no comments entered | 
|---|
|  | 140 | N DA,DIK | 
|---|
|  | 141 | S DA=IBDA,DA(1)=IBDA(1),DIK="^IBM(361.1,"_IBDA(1)_",21," | 
|---|
|  | 142 | K IBCOM(DUZ,IBDA) | 
|---|
|  | 143 | D ^DIK | 
|---|
|  | 144 | Q | 
|---|
|  | 145 | ; | 
|---|