| [613] | 1 | IBCSC8A ;BP/YMG - ADD/ENTER CHIROPRACTIC DATA ;06/08/2007 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**371**;21-MAR-94;Build 57 | 
|---|
|  | 3 | ;;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | EN      ; | 
|---|
|  | 6 | N DAM,DIT,EC,LXD,OK,PCC,PCCI,UO,UR | 
|---|
|  | 7 | S UO="UNSPECIFIED [OPTIONAL]",UR="UNSPECIFIED [REQUIRED]" | 
|---|
|  | 8 | S EC="000" | 
|---|
|  | 9 | EN1     ; | 
|---|
|  | 10 | S OK=1 | 
|---|
|  | 11 | S DIT=$$GET1^DIQ(399,IBIFN,246) S:DIT="" DIT=UR | 
|---|
|  | 12 | S PCCI=$P($G(^DGCR(399,IBIFN,"U3")),U,7) | 
|---|
|  | 13 | S PCC=$S(PCCI'="":PCCI_" ("_$$EXTERNAL^DILFD(399,248,"",PCCI)_")",1:UR) | 
|---|
|  | 14 | S DAM=$$GET1^DIQ(399,IBIFN,247) S:DAM="" DAM=$S("AM"'[PCCI!(PCCI=""):UO,1:UR) | 
|---|
|  | 15 | S LXD=$$GET1^DIQ(399,IBIFN,245) S:LXD="" LXD=UO | 
|---|
|  | 16 | D DISP,EDIT G:'OK EN1 | 
|---|
|  | 17 | D CLEAN^DILF | 
|---|
|  | 18 | Q | 
|---|
|  | 19 | ; | 
|---|
|  | 20 | DISP    ; display existing values | 
|---|
|  | 21 | W @IOF,!,"============================= CHIROPRACTIC DATA ==============================",! | 
|---|
|  | 22 | D:+EC DSPERR | 
|---|
|  | 23 | W !!,?3,"----------------------  Current values for Bill  -----------------------",! | 
|---|
|  | 24 | W !,?3,"Date of initial treatment   : ",DIT | 
|---|
|  | 25 | W !,?3,"Patient condition code      : ",PCC | 
|---|
|  | 26 | W !,?3,"Date of acute manifestation : ",DAM | 
|---|
|  | 27 | W !,?3,"Last x-ray date             : ",LXD,! | 
|---|
|  | 28 | Q | 
|---|
|  | 29 | ; | 
|---|
|  | 30 | EDIT    ; edit data | 
|---|
|  | 31 | N DEL,TOUT,UOUT | 
|---|
|  | 32 | S DIE="^DGCR(399,",DR="246;248;247;245",DA=IBIFN D ^DIE S TOUT=$D(DTOUT),UOUT=$D(Y) K DIE,DR,DA D CHK | 
|---|
|  | 33 | ; if all data is valid, we are done here | 
|---|
|  | 34 | Q:'+EC | 
|---|
|  | 35 | ; we get here if: | 
|---|
|  | 36 | ; - all prompts have been answered, but data is invalid, or | 
|---|
|  | 37 | ; - editing was interrupted by user ("^" exit), or | 
|---|
|  | 38 | ; - editing timed out | 
|---|
|  | 39 | ; | 
|---|
|  | 40 | ;if "^"-exit and user doesn't want to discard data, or all prompts answered, go back to the same screen | 
|---|
|  | 41 | I 'TOUT S DEL=1 D  I DEL=0!('UOUT) S OK=0 Q | 
|---|
|  | 42 | .; if "^"-exit, ask if data should be discarded | 
|---|
|  | 43 | .I UOUT S DIR(0)="Y",DIR("A")="Delete Chiropractic Data",DIR("B")="YES" D ^DIR S DEL=$G(Y) K DIR | 
|---|
|  | 44 | .Q | 
|---|
|  | 45 | ; if user requested to delete data or entry prompt timed out, clear out chiro fields | 
|---|
|  | 46 | S DIE="^DGCR(399,",DR="246///@;248///@;247///@;245///@",DA=IBIFN D ^DIE K DIE,DR,DA | 
|---|
|  | 47 | Q | 
|---|
|  | 48 | ; | 
|---|
|  | 49 | CHK     ; check data integrity | 
|---|
|  | 50 | ; sets 3 char error code in EC, each position containing 0 means no error | 
|---|
|  | 51 | ; positions containing 1 trigger the following errors: | 
|---|
|  | 52 | ; position 1 - Date of Initial Treatment is missing | 
|---|
|  | 53 | ; position 2 - Patient Condition Code is missing | 
|---|
|  | 54 | ; position 3 - Date of Acute manifestation is missing (for Patient Condition Code = A or M) | 
|---|
|  | 55 | N IBX,PCC | 
|---|
|  | 56 | S IBX=$P($G(^DGCR(399,IBIFN,"U3")),U,4,7),EC="000" | 
|---|
|  | 57 | ; chiropractic claim if any of the fields are populated | 
|---|
|  | 58 | S:$TR(IBX,U)'="" PCC=$P(IBX,U,4),$E(EC,1)=($P(IBX,U,2)=""),$E(EC,2)=(PCC=""),$E(EC,3)=($P(IBX,U,3)=""&(PCC]"")&("AM"[PCC)) | 
|---|
|  | 59 | Q | 
|---|
|  | 60 | DSPERR  ; display errors | 
|---|
|  | 61 | W !,?3,"Errors detected:" | 
|---|
|  | 62 | W:+$E(EC,1) !,?5,"Date of Initial Treatment is required" | 
|---|
|  | 63 | W:+$E(EC,2) !,?5,"Patient Condition Code is required" | 
|---|
|  | 64 | W:+$E(EC,3) !,?5,"Condition code A or M requires Date of Acute Manifestation" | 
|---|
|  | 65 | Q | 
|---|