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