| [613] | 1 | IBCU72 ;ALB/CPM - ADD/EDIT/DELETE PROCEDURE DIAGNOSES ;18-JUN-96 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**62,210**; 21-MAR-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | DX(IBIFN,IBPROC) ; Add/edit/delete procedure diagnoses. | 
|---|
|  | 6 | ; Input:  IBIFN  --  Pointer to the claim in file #399 | 
|---|
|  | 7 | ;        IBPROC  --  Pointer to the claim procedure in file #399.0304 | 
|---|
|  | 8 | ; | 
|---|
|  | 9 | I '$G(IBIFN) G DXQ | 
|---|
|  | 10 | I '$G(IBPROC) G DXQ | 
|---|
|  | 11 | ; | 
|---|
|  | 12 | N DIE,DA ; need to preserve these variables for IBCU7. | 
|---|
|  | 13 | ; | 
|---|
|  | 14 | N IBPROCD,IBDX,IBDXSCR,IBLINE,IBI,IBDEF,IBQUIT,IBPROMPT | 
|---|
|  | 15 | S IBPROCD=$G(^DGCR(399,IBIFN,"CP",IBPROC,0)) | 
|---|
|  | 16 | I 'IBPROCD G DXQ | 
|---|
|  | 17 | ; | 
|---|
|  | 18 | ; - get diagnoses and display. | 
|---|
|  | 19 | D SET^IBCSC4D(IBIFN,.IBDXSCR,.IBDX),DISP(.IBDX) | 
|---|
|  | 20 | I '$O(IBDX(0)) W "There are no diagnoses associated with this bill." G DXQ | 
|---|
|  | 21 | ; | 
|---|
|  | 22 | ; - build workable array; determine default values | 
|---|
|  | 23 | S IBI=0 F  S IBI=$O(IBDX(IBI)) Q:'IBI  S IBDX(IBI)=IBDXSCR(+IBDX(IBI))_U_$P($$ICD9^IBACSV(+IBDX(IBI)),U) | 
|---|
|  | 24 | S IBDEF="" F I=11:1:14 S X=$P(IBPROCD,U,I) I X D | 
|---|
|  | 25 | . S J=0 F  S J=$O(IBDX(J)) Q:'J  I +IBDX(J)=X S IBDEF=IBDEF_J_":"_$P(IBDX(J),U,2)_"," Q | 
|---|
|  | 26 | I IBDEF]"" S IBDEF=$E(IBDEF,1,$L(IBDEF)-1) | 
|---|
|  | 27 | ; | 
|---|
|  | 28 | ; - display instructions and default values | 
|---|
|  | 29 | W !," *** Please select procedure diagnoses by number to left of diagnosis code ***" | 
|---|
|  | 30 | I IBDEF]"" W !,"Current Values:  " F I=1:1:$L(IBDEF,",") S X=$P(IBDEF,",",I) I X]"" W "Dx ",I,": ",+X," - ",$P(X,":",2),"   " | 
|---|
|  | 31 | ; | 
|---|
|  | 32 | ; - prompt for the four associated dx prompts | 
|---|
|  | 33 | W ! S IBQUIT=0 F IBPROMPT=1:1:4 D ASKEM Q:IBQUIT | 
|---|
|  | 34 | ; | 
|---|
|  | 35 | DXQ Q | 
|---|
|  | 36 | ; | 
|---|
|  | 37 | ; | 
|---|
|  | 38 | ; | 
|---|
|  | 39 | DISP(X) ; Display of existing dx's for a bill. | 
|---|
|  | 40 | N IBX,IBY,IBZ,IBDATE | 
|---|
|  | 41 | S IBDATE=$$BDATE^IBACSV($G(IBIFN)) | 
|---|
|  | 42 | W !!,?5,"-----------------  Existing Diagnoses for Bill  -----------------",! | 
|---|
|  | 43 | S IBX=0 F  S IBX=$O(X(IBX)) Q:'IBX  S IBZ=X(IBX),IBY=$$ICD9^IBACSV(+IBZ,IBDATE) D | 
|---|
|  | 44 | . W !?5,IBX,".",?12,$P(IBY,U),?26,$P(IBY,U,3),?60,$S($P(IBZ,U,2)<1000:"("_$P(IBZ,U,2)_")",1:"") | 
|---|
|  | 45 | W ! | 
|---|
|  | 46 | Q | 
|---|
|  | 47 | ; | 
|---|
|  | 48 | ASKEM ; Allow entry of the procedure diagnoses. | 
|---|
|  | 49 | N IBP | 
|---|
|  | 50 | S IBP=$P(IBDEF,",",IBPROMPT) | 
|---|
|  | 51 | W !,"Associated Diagnosis (",IBPROMPT,"): ",$S(IBP]"":+IBP_" - "_$P(IBP,":",2)_" // ",1:"") | 
|---|
|  | 52 | R X:DTIME | 
|---|
|  | 53 | I $E(X)="^" S IBQUIT=1 G ASKEMQ | 
|---|
|  | 54 | I $E(X)="@" D:IBP]"" UPD("@",IBPROMPT+9) W:IBP]"" "   deleted." G ASKEMQ | 
|---|
|  | 55 | I $E(X)="?" D HELP1 G ASKEM | 
|---|
|  | 56 | I X="" S:'$$NEXT() IBQUIT=1 G ASKEMQ | 
|---|
|  | 57 | I '$D(IBDX(X)) D HELP1 G ASKEM | 
|---|
|  | 58 | W "   ",$P(IBDX(X),"^",2) | 
|---|
|  | 59 | I +IBP'=X D UPD("/"_+IBDX(X),IBPROMPT+9) | 
|---|
|  | 60 | ASKEMQ Q | 
|---|
|  | 61 | ; | 
|---|
|  | 62 | UPD(IBVALUE,IBFIELD) ; Update an associated diagnosis. | 
|---|
|  | 63 | S DIE="^DGCR(399,"_IBIFN_",""CP"",",DA=IBPROC,DA(1)=IBIFN | 
|---|
|  | 64 | S DR=IBFIELD_"///"_IBVALUE D ^DIE K DA,DIE,DR | 
|---|
|  | 65 | Q | 
|---|
|  | 66 | ; | 
|---|
|  | 67 | HELP1 ; Help for entering associated diagnoses. | 
|---|
|  | 68 | N X | 
|---|
|  | 69 | W !!,"Please enter one of the following billing diagnoses by number at left of code:" | 
|---|
|  | 70 | S X=0 F  S X=$O(IBDX(X)) Q:'X  W:X#4=1 ! W ?((X-1)#4*18),X,".",$J($P(IBDX(X),"^",2),9) | 
|---|
|  | 71 | W !!,"You may also enter '^' to exit, '@' to delete a procedure diagnosis, or" | 
|---|
|  | 72 | W !,"<CR> to accept a current value or skip a prompt.",! | 
|---|
|  | 73 | Q | 
|---|
|  | 74 | ; | 
|---|
|  | 75 | NEXT() ; Advance to the next prompt? | 
|---|
|  | 76 | N I,X S X=0 | 
|---|
|  | 77 | I IBPROMPT=4 G NEXTQ | 
|---|
|  | 78 | I IBP]"" S X=1 G NEXTQ | 
|---|
|  | 79 | F I=(IBPROMPT+1):1:4 I $P(IBDEF,",",I)]"" S X=1 Q | 
|---|
|  | 80 | NEXTQ Q X | 
|---|