ACKQAS3 ;AUG/JLTP BIR/PTD-Enter Cost Information for Procedures ; [ 02/14/96 3:30 PM ]
;;3.0;QUASAR;**8**;Feb 11, 2000
;Per VHA Directive 10-93-142, this routine SHOULD NOT be modified.
ACCESS ;Only A&SP staff designated as supervisors can access this option.
N ACKDUZ
S ACKDUZ=$$PROVCHK^ACKQASU4(DUZ) S:ACKDUZ="" ACKDUZ=" "
W @IOF I $O(^ACK(509850.3,ACKDUZ,""))="" W !,"You are not listed in the A&SP STAFF file (#509850.3).",!,"Access denied." G EXIT
S X=$$STACT^ACKQUTL(ACKDUZ) I ((X=-2)!(X=-6)) W !,"Only clinicians may access this option!" G EXIT
I X W !,"The A&SP STAFF file (#509850.3) indicates that you have been inactivated.",!,"Access denied." G EXIT
I $P(^ACK(509850.3,ACKDUZ,0),"^",6)'=1 W !,"You must be listed as a SUPERVISOR in the A&SP STAFF file (#509850.3)",!,"in order to use this option. Access denied." G EXIT
OPTN ;Introduce option.
W @IOF,!,"This option allows you to enter cost data for each procedure code",!,"in the A&SP PROCEDURE CODE file (#509850.4). The information is",!,"used to generate the Cost Comparison Report.",!
I '$O(^ICPT(0)) W !,"The CPT file (#81) is required." G EXIT
CHOOSE ;Display user choices: edit selected entries or all entries.
K DIR,X,Y S DIR(0)="NAO^1:2",DIR("A",1)="Select the action you wish to take.",DIR("A",2)="",DIR("A",3)="1. Edit a selected CPT-4 code.",DIR("A",4)="2. Edit all procedure codes.",DIR("A",5)=""
S DIR("A")="Enter a number, 1 or 2: ",DIR("?")="Answer 1 to choose a code; answer 2 to loop through all procedures"
S DIR("??")="^D CHOOSE^ACKQHLP1" D ^DIR K DIR G:$D(DIRUT) EXIT
S ACKANS=+Y I ACKANS=1 K ACKANS,DIR,X,Y G SINGLE
LOOP ;Edit the cost of all CPT-4 procedure codes.
S ACK=0 F S ACK=$O(^ACK(509850.4,ACK)) Q:'ACK!($D(DIRUT)) S ACK0=^(ACK,0) D COST
EXIT ;Kill variables and exit routine.
K %,%W,%Y,ACKANS,ACK,ACK0,ACK1,ACK(1),ACKM,C,DA,DIC,DIE,DIR,DR,DIRUT,DTOUT,DUOUT,X,Y
Q
;
SINGLE ;Edit the cost of a selected CPT-4 code.
S DIC="^ACK(509850.4,",DIC(0)="QEAMZ",DIC("A")="Enter Procedure Code: " W ! D ^DIC K DIC G:Y<0 EXIT
S ACK=+Y,ACK0=Y(0)
D COST,EXIT
G SINGLE
;
COST ;Enter cost data for a single CPT-4 procedure code.
;ACK (IEN) and ACK0 (zero node) are defined upon entry.
S DIR(0)="NAO^0:9999:2",DIR("A")="Enter Cost: $ ",DIR("?")="Enter the approximate PRIVATE SECTOR cost for this procedure"
S DIR("??")="^W !?5,""Do not enter the $ sign. Enter numeric values between 0 and 9999."""
S:$P(ACK0,U,6) DIR("B")=$P(ACK0,U,6)
I '$D(^ICPT(ACK,0)) W !!,"File 81, CPT, needs to be updated. Code "_ACK_" is missing." Q
W !!,$P(^ICPT(ACK,0),U)," ",$$PROCTXT^ACKQUTL8(ACK,"")
W:'$P(ACK0,U,4) " *** INACTIVE ***",$C(7)
D ^DIR K DIR("B") K:Y=""&('$D(DTOUT)) DIRUT
I '$D(DIRUT),Y]"" S DIE="^ACK(509850.4,",DA=ACK,DR=".06////"_+Y D ^DIE K DIE
MOD ;Edit cost of modifier codes.
S ACKM="" F S ACKM=$O(^ACK(509850.4,ACK,1,"B",ACKM)) Q:ACKM=""!($D(DIRUT)) S ACK(1)=0 F S ACK(1)=$O(^(ACKM,ACK(1))) Q:'ACK(1)!($D(DIRUT)) S ACK1=^ACK(509850.4,ACK,1,ACK(1),0) D
.W !?5,ACKM,". ",$P(ACK1,U,2)
.S:$P(ACK1,U,3) DIR("B")=$P(ACK1,U,3) D ^DIR K DIR("B") K:'$D(DTOUT)&('$D(DUOUT)) DIRUT Q:$D(DIRUT)
.S DIE="^ACK(509850.4,ACK,1,",DA(1)=ACK,DA=ACK(1),DR=".03////"_+Y
.D ^DIE K DA,DIE,DR
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HACKQAS3 3246 printed Oct 16, 2024@18:32:27 Page 2
ACKQAS3 ;AUG/JLTP BIR/PTD-Enter Cost Information for Procedures ; [ 02/14/96 3:30 PM ]
+1 ;;3.0;QUASAR;**8**;Feb 11, 2000
+2 ;Per VHA Directive 10-93-142, this routine SHOULD NOT be modified.
ACCESS ;Only A&SP staff designated as supervisors can access this option.
+1 NEW ACKDUZ
+2 SET ACKDUZ=$$PROVCHK^ACKQASU4(DUZ)
if ACKDUZ=""
SET ACKDUZ=" "
+3 WRITE @IOF
IF $ORDER(^ACK(509850.3,ACKDUZ,""))=""
WRITE !,"You are not listed in the A&SP STAFF file (#509850.3).",!,"Access denied."
GOTO EXIT
+4 SET X=$$STACT^ACKQUTL(ACKDUZ)
IF ((X=-2)!(X=-6))
WRITE !,"Only clinicians may access this option!"
GOTO EXIT
+5 IF X
WRITE !,"The A&SP STAFF file (#509850.3) indicates that you have been inactivated.",!,"Access denied."
GOTO EXIT
+6 IF $PIECE(^ACK(509850.3,ACKDUZ,0),"^",6)'=1
WRITE !,"You must be listed as a SUPERVISOR in the A&SP STAFF file (#509850.3)",!,"in order to use this option. Access denied."
GOTO EXIT
OPTN ;Introduce option.
+1 WRITE @IOF,!,"This option allows you to enter cost data for each procedure code",!,"in the A&SP PROCEDURE CODE file (#509850.4). The information is",!,"used to generate the Cost Comparison Report.",!
+2 IF '$ORDER(^ICPT(0))
WRITE !,"The CPT file (#81) is required."
GOTO EXIT
CHOOSE ;Display user choices: edit selected entries or all entries.
+1 KILL DIR,X,Y
SET DIR(0)="NAO^1:2"
SET DIR("A",1)="Select the action you wish to take."
SET DIR("A",2)=""
SET DIR("A",3)="1. Edit a selected CPT-4 code."
SET DIR("A",4)="2. Edit all procedure codes."
SET DIR("A",5)=""
+2 SET DIR("A")="Enter a number, 1 or 2: "
SET DIR("?")="Answer 1 to choose a code; answer 2 to loop through all procedures"
+3 SET DIR("??")="^D CHOOSE^ACKQHLP1"
DO ^DIR
KILL DIR
if $DATA(DIRUT)
GOTO EXIT
+4 SET ACKANS=+Y
IF ACKANS=1
KILL ACKANS,DIR,X,Y
GOTO SINGLE
LOOP ;Edit the cost of all CPT-4 procedure codes.
+1 SET ACK=0
FOR
SET ACK=$ORDER(^ACK(509850.4,ACK))
if 'ACK!($DATA(DIRUT))
QUIT
SET ACK0=^(ACK,0)
DO COST
EXIT ;Kill variables and exit routine.
+1 KILL %,%W,%Y,ACKANS,ACK,ACK0,ACK1,ACK(1),ACKM,C,DA,DIC,DIE,DIR,DR,DIRUT,DTOUT,DUOUT,X,Y
+2 QUIT
+3 ;
SINGLE ;Edit the cost of a selected CPT-4 code.
+1 SET DIC="^ACK(509850.4,"
SET DIC(0)="QEAMZ"
SET DIC("A")="Enter Procedure Code: "
WRITE !
DO ^DIC
KILL DIC
if Y<0
GOTO EXIT
+2 SET ACK=+Y
SET ACK0=Y(0)
+3 DO COST
DO EXIT
+4 GOTO SINGLE
+5 ;
COST ;Enter cost data for a single CPT-4 procedure code.
+1 ;ACK (IEN) and ACK0 (zero node) are defined upon entry.
+2 SET DIR(0)="NAO^0:9999:2"
SET DIR("A")="Enter Cost: $ "
SET DIR("?")="Enter the approximate PRIVATE SECTOR cost for this procedure"
+3 SET DIR("??")="^W !?5,""Do not enter the $ sign. Enter numeric values between 0 and 9999."""
+4 if $PIECE(ACK0,U,6)
SET DIR("B")=$PIECE(ACK0,U,6)
+5 IF '$DATA(^ICPT(ACK,0))
WRITE !!,"File 81, CPT, needs to be updated. Code "_ACK_" is missing."
QUIT
+6 WRITE !!,$PIECE(^ICPT(ACK,0),U)," ",$$PROCTXT^ACKQUTL8(ACK,"")
+7 if '$PIECE(ACK0,U,4)
WRITE " *** INACTIVE ***",$CHAR(7)
+8 DO ^DIR
KILL DIR("B")
if Y=""&('$DATA(DTOUT))
KILL DIRUT
+9 IF '$DATA(DIRUT)
IF Y]""
SET DIE="^ACK(509850.4,"
SET DA=ACK
SET DR=".06////"_+Y
DO ^DIE
KILL DIE
MOD ;Edit cost of modifier codes.
+1 SET ACKM=""
FOR
SET ACKM=$ORDER(^ACK(509850.4,ACK,1,"B",ACKM))
if ACKM=""!($DATA(DIRUT))
QUIT
SET ACK(1)=0
FOR
SET ACK(1)=$ORDER(^(ACKM,ACK(1)))
if 'ACK(1)!($DATA(DIRUT))
QUIT
SET ACK1=^ACK(509850.4,ACK,1,ACK(1),0)
Begin DoDot:1
+2 WRITE !?5,ACKM,". ",$PIECE(ACK1,U,2)
+3 if $PIECE(ACK1,U,3)
SET DIR("B")=$PIECE(ACK1,U,3)
DO ^DIR
KILL DIR("B")
if '$DATA(DTOUT)&('$DATA(DUOUT))
KILL DIRUT
if $DATA(DIRUT)
QUIT
+4 SET DIE="^ACK(509850.4,ACK,1,"
SET DA(1)=ACK
SET DA=ACK(1)
SET DR=".03////"_+Y
+5 DO ^DIE
KILL DA,DIE,DR
End DoDot:1