FBCHREQ1 ;AISC/DMK - FEE NOTIFICATION CONT ;1/20/2015
;;3.5;FEE BASIS;**103,146,154**;JAN 30, 1995;Build 12
;;Per VA Directive 6402, this routine should not be modified.
VENDOR ;ASK VENDOR FOR NOTIFICATION
W ! K FBCHVEN S DIC="^FBAAV(",DIC(0)="AEQLM",DLAYGO=161.2 D ^DIC G END:X=""!(X="^"),VENDOR:Y<0 S (DA,FBCHVEN)=+Y,DIE=DIC I $P(Y,"^",3)=1 S FBVENEW=1 D NEW^FBAAVD K DIC,DIE,DA,DLAYGO Q
ASKVOK I '$D(FBVENEW) D EN1^FBAAVD S DIR(0)="Y",DIR("A")="Is this the correct vendor",DIR("B")="YES" D ^DIR K DIR G VENDOR:$D(DIRUT)!'Y
END K DIC,DIE,DLAYGO
Q
TIMCK ;72 hour time check called from FBAA ENTER REQUEST template
S X1=$P(^FBAA(162.2,DA,0),"^",1),X=$P(^(0),"^",19),HY=Y,FBSW=""
S Y=$E(X1_"000",9,10)-$E(X_"000",9,10)*60+$E(X1_"00000",11,12)-$E(X_"00000",11,12),X2=X,X=$P(X,".",1)'=$P(X1,".",1) D ^%DTC:X S FBX=X*1440+Y
SURE I FBX>4320 W *7,!!,"This Authorization From Date exceeds the 72 hour notification period. ",!,?8,"Do you want to continue ? No// " R X:DTIME S:X="" X="N" G HELP:X["^" D VALCK^FBAAUTL1 G SURE:'VAL I "Nn"[$E(X,1) S FBSW=1,Y=HY Q
S Y=HY Q
HELP W !,"Entering an '^' is not allowed. Please answer 'Yes' or 'No'." G SURE
EN I $D(DA),DA S FBDA(0)=DA,DIE="^FBAA(162.2,",DIDEL=162.2,DR=".01////@" D ^DIE K DIDEL
I '$D(DA) W *7,!?3,"...request deleted",! I $D(^FBAA(161.5,FBDA(0),0)) S DA=FBDA(0),DIK="^FBAA(161.5," D ^DIK
K DIC,DIE,DIK,DA,X,FBDA,DR,DLAYGO,FBDATE,FBLG,FBN,FBUP,FBVT,VA D END^FBCHREQ
Q
EDIT ;EDIT A REQUEST THAT'S NOT COMPLETE
S DIC("S")="I $P(^(0),U,15)'=3" D ASKV^FBCHREQ K DIC("S") G Q:X=""!(X="^") S DA=+Y,FB(0)=^FBAA(162.2,DA,0),FBDOA=$P(FB(0),"^",19),FBFRDT=$P(FB(0),"^",5)
S FB(1)=$G(^FBAA(162.2,DA,1))
; fb*3.5*103 add REFERRING PROVIDER (162.2,17) to DR string
S DIE="^FBAA(162.2,",DR="1;2;3.5;S:X=FBDOA!(X<FBFRDT) Y=""@10"";S FBDOA=X;4////^S X=FBDOA;I 1;@10;4;5;17;I $G(X) W !,""REFERRING PROVIDER NPI: "",$$REFNPI^FBCH78(X);6;S FBCHVEN=X" D ^DIE S FBN(0)=^FBAA(162.2,DA,0)
S FBN(1)=$G(^FBAA(162.2,DA,1))
I FB(0)'=FBN(0)!(FB(1)'=FBN(1)) D
. S DR="7////^S X=DUZ" D ^DIE
. N FBX
. S FBX=$$ADDUA^FBUTL9(162.2,DA_",","Edit CH notification.")
. I 'FBX W !,"Error adding record in User Audit. Please contact IRM."
I $D(DA),$D(^FBAA(161.5,DA,0)) D
.I FB(0)'=FBN(0) S $P(^FBAA(161.5,DA,0),"^",2)=$P(FBN(0),"^",2),$P(^(0),"^",5)=$P(FBN(0),"^",5),$P(^FBAA(161.5,DA,1),"^",7)=$P(FBN(0),"^",19),$P(^(1),U)=$P(FBN(0),U,6),DIK="^FBAA(161.5," D IX^DIK K DIK
.S FBREQED=1,DIC="^FBAA(161.5,",DIC(0)="AEQM" D EN^FBCHROC
Q K DIE,DIC,DIRUT,DUOUT,DTOUT,X,Y,DR,FB,FBN,FBDA,FBDFN,FBNAME,FBSSN,DA,FBCHVEN,FBREQED,FBDOA,FBFRDT,J
Q
DATCK ;Verify authorized from date is > or = date of admission.
I '$D(DFN) I $D(FBDFN) S DFN=FBDFN
I '$D(DFN) I $D(FBVET) S DFN=FBVET
S FBDOA=$P(^FBAA(162.2,DA,0),"^",19) I $G(FBDOA),X<FBDOA W !,*7,"Authorized From Date must be equal to or greater than the Date of Admission" S FBOUT=1
S FBDOB=$P(^DPT(DFN,0),"^",3) I $G(FBDOB),X<FBDOB W !,*7,"Authorized From Date cannot be before the Date of Birth" S FBOUT=1
; Check if this is a Newborn. If Newborn Authorization date can not be after DOB+7
N ENTDATE,NOW
S ENTDATE=X
N X
D NOW^%DTC S NOW=X,X=ENTDATE
I $$FMDIFF^XLFDT(NOW,FBDOB,1)<365 D ;PATIENT IS A NEWBORN
. I $$FMDIFF^XLFDT(X,FBDOB,1)>7 W !,*7,"Authorized From Date for a Newborn cannot be after DOB+7" S FBOUT=1
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HFBCHREQ1 3355 printed Oct 16, 2024@17:58:43 Page 2
FBCHREQ1 ;AISC/DMK - FEE NOTIFICATION CONT ;1/20/2015
+1 ;;3.5;FEE BASIS;**103,146,154**;JAN 30, 1995;Build 12
+2 ;;Per VA Directive 6402, this routine should not be modified.
VENDOR ;ASK VENDOR FOR NOTIFICATION
+1 WRITE !
KILL FBCHVEN
SET DIC="^FBAAV("
SET DIC(0)="AEQLM"
SET DLAYGO=161.2
DO ^DIC
if X=""!(X="^")
GOTO END
if Y<0
GOTO VENDOR
SET (DA,FBCHVEN)=+Y
SET DIE=DIC
IF $PIECE(Y,"^",3)=1
SET FBVENEW=1
DO NEW^FBAAVD
KILL DIC,DIE,DA,DLAYGO
QUIT
ASKVOK IF '$DATA(FBVENEW)
DO EN1^FBAAVD
SET DIR(0)="Y"
SET DIR("A")="Is this the correct vendor"
SET DIR("B")="YES"
DO ^DIR
KILL DIR
if $DATA(DIRUT)!'Y
GOTO VENDOR
END KILL DIC,DIE,DLAYGO
+1 QUIT
TIMCK ;72 hour time check called from FBAA ENTER REQUEST template
+1 SET X1=$PIECE(^FBAA(162.2,DA,0),"^",1)
SET X=$PIECE(^(0),"^",19)
SET HY=Y
SET FBSW=""
+2 SET Y=$EXTRACT(X1_"000",9,10)-$EXTRACT(X_"000",9,10)*60+$EXTRACT(X1_"00000",11,12)-$EXTRACT(X_"00000",11,12)
SET X2=X
SET X=$PIECE(X,".",1)'=$PIECE(X1,".",1)
if X
DO ^%DTC
SET FBX=X*1440+Y
SURE IF FBX>4320
WRITE *7,!!,"This Authorization From Date exceeds the 72 hour notification period. ",!,?8,"Do you want to continue ? No// "
READ X:DTIME
if X=""
SET X="N"
if X["^"
GOTO HELP
DO VALCK^FBAAUTL1
if 'VAL
GOTO SURE
IF "Nn"[$EXTRACT(X,1)
SET FBSW=1
SET Y=HY
QUIT
+1 SET Y=HY
QUIT
HELP WRITE !,"Entering an '^' is not allowed. Please answer 'Yes' or 'No'."
GOTO SURE
EN IF $DATA(DA)
IF DA
SET FBDA(0)=DA
SET DIE="^FBAA(162.2,"
SET DIDEL=162.2
SET DR=".01////@"
DO ^DIE
KILL DIDEL
+1 IF '$DATA(DA)
WRITE *7,!?3,"...request deleted",!
IF $DATA(^FBAA(161.5,FBDA(0),0))
SET DA=FBDA(0)
SET DIK="^FBAA(161.5,"
DO ^DIK
+2 KILL DIC,DIE,DIK,DA,X,FBDA,DR,DLAYGO,FBDATE,FBLG,FBN,FBUP,FBVT,VA
DO END^FBCHREQ
+3 QUIT
EDIT ;EDIT A REQUEST THAT'S NOT COMPLETE
+1 SET DIC("S")="I $P(^(0),U,15)'=3"
DO ASKV^FBCHREQ
KILL DIC("S")
if X=""!(X="^")
GOTO Q
SET DA=+Y
SET FB(0)=^FBAA(162.2,DA,0)
SET FBDOA=$PIECE(FB(0),"^",19)
SET FBFRDT=$PIECE(FB(0),"^",5)
+2 SET FB(1)=$GET(^FBAA(162.2,DA,1))
+3 ; fb*3.5*103 add REFERRING PROVIDER (162.2,17) to DR string
+4 SET DIE="^FBAA(162.2,"
SET DR="1;2;3.5;S:X=FBDOA!(X<FBFRDT) Y=""@10"";S FBDOA=X;4////^S X=FBDOA;I 1;@10;4;5;17;I $G(X) W !,""REFERRING PROVIDER NPI: "",$$REFNPI^FBCH78(X);6;S FBCHVEN=X"
DO ^DIE
SET FBN(0)=^FBAA(162.2,DA,0)
+5 SET FBN(1)=$GET(^FBAA(162.2,DA,1))
+6 IF FB(0)'=FBN(0)!(FB(1)'=FBN(1))
Begin DoDot:1
+7 SET DR="7////^S X=DUZ"
DO ^DIE
+8 NEW FBX
+9 SET FBX=$$ADDUA^FBUTL9(162.2,DA_",","Edit CH notification.")
+10 IF 'FBX
WRITE !,"Error adding record in User Audit. Please contact IRM."
End DoDot:1
+11 IF $DATA(DA)
IF $DATA(^FBAA(161.5,DA,0))
Begin DoDot:1
+12 IF FB(0)'=FBN(0)
SET $PIECE(^FBAA(161.5,DA,0),"^",2)=$PIECE(FBN(0),"^",2)
SET $PIECE(^(0),"^",5)=$PIECE(FBN(0),"^",5)
SET $PIECE(^FBAA(161.5,DA,1),"^",7)=$PIECE(FBN(0),"^",19)
SET $PIECE(^(1),U)=$PIECE(FBN(0),U,6)
SET DIK="^FBAA(161.5,"
DO IX^DIK
KILL DIK
+13 SET FBREQED=1
SET DIC="^FBAA(161.5,"
SET DIC(0)="AEQM"
DO EN^FBCHROC
End DoDot:1
Q KILL DIE,DIC,DIRUT,DUOUT,DTOUT,X,Y,DR,FB,FBN,FBDA,FBDFN,FBNAME,FBSSN,DA,FBCHVEN,FBREQED,FBDOA,FBFRDT,J
+1 QUIT
DATCK ;Verify authorized from date is > or = date of admission.
+1 IF '$DATA(DFN)
IF $DATA(FBDFN)
SET DFN=FBDFN
+2 IF '$DATA(DFN)
IF $DATA(FBVET)
SET DFN=FBVET
+3 SET FBDOA=$PIECE(^FBAA(162.2,DA,0),"^",19)
IF $GET(FBDOA)
IF X<FBDOA
WRITE !,*7,"Authorized From Date must be equal to or greater than the Date of Admission"
SET FBOUT=1
+4 SET FBDOB=$PIECE(^DPT(DFN,0),"^",3)
IF $GET(FBDOB)
IF X<FBDOB
WRITE !,*7,"Authorized From Date cannot be before the Date of Birth"
SET FBOUT=1
+5 ; Check if this is a Newborn. If Newborn Authorization date can not be after DOB+7
+6 NEW ENTDATE,NOW
+7 SET ENTDATE=X
+8 NEW X
+9 DO NOW^%DTC
SET NOW=X
SET X=ENTDATE
+10 ;PATIENT IS A NEWBORN
IF $$FMDIFF^XLFDT(NOW,FBDOB,1)<365
Begin DoDot:1
+11 IF $$FMDIFF^XLFDT(X,FBDOB,1)>7
WRITE !,*7,"Authorized From Date for a Newborn cannot be after DOB+7"
SET FBOUT=1
End DoDot:1
+12 QUIT