FBAAVD1 ;AISC/DMK/GRR-COMMUNITY NURSING HOME VENDOR DISPLAY ; 1/15/10 2:06pm
;;3.5;FEE BASIS;**9,111**;JAN 30, 1995;Build 17
;;Per VHA Directive 10-93-142, this routine should not be modified.
I $Y+11>IOSL D Q:'Y
. I $E(IOST,1,2)="C-" S DIR(0)="E" D ^DIR K DIR I 'Y Q
. W @IOF,!,$J("Name:",13),?15,$E(Z(1),1,30),?48,"ID Number: ",Z(2)
. S Y=1 ; continue
W !?23,">>> CNH INFORMATION <<<",!
W !,$J("Total Beds:",13),?15,$P(V,"^",8),?37,"Inspected/Accredited:",?59,$S($P(V,"^",4)="I":"Inspected by VA",$P(V,"^",4)="A":"Accredited by JCAH",$P(V,"^",4)="B":"Inspect. & Accred.",1:"")
Q:'$D(^FBAA(161.21,"C",DA))
S FBX=$$CNH(DA,1)
W !,$J("Contract #:",13),?15,$P(FBX,U)
W ?40,$J("Medicare/Medicaid:",13),?59,$S($P(V,"^",5)=1:"Not Cert. for either",$P(V,"^",5)=2:"Cert. for Medicare",$P(V,"^",5)=3:"Cert. for Medicaid",$P(V,"^",5)=4:"Cert. for both",1:"")
W !,$J("Effect. DT:",13),?15,$$DATX^FBAAUTL($P(FBX,U,2))
W ?42,"Last Assessment:",?59,$$DATX^FBAAUTL($P(V,"^",6))
W !,$J("End Date:",13),?15,$$DATX^FBAAUTL($P(FBX,U,3))
S FBCNUM=$P(FBX,U) K FBX
W !
S FBVIEN=DA D DISPLAY K FBVIEN
Q
;
CNH(X,Z) ;retrieve latest vendor contract
;X=IEN for vendor
;returns contract number
;if Z=1 returns array C#^effect dt^expire dt
N Y
I $S('$G(X):1,'$D(^FBAAV(+X,0)):1,1:0) Q ""
S Y=$P($G(^FBAA(161.21,+$O(^(+$O(^FBAA(161.21,"ACR",X,-DT-.9)),0)),0)),U,1,3)
I Y="" S Y=$P($G(^FBAA(161.21,+$O(^(+$O(^FBAA(161.21,"AC",X,DT)),0)),0)),U,1,3)
Q $S($G(Z):Y,1:$P(Y,U))
;
RATE(X,FBCNRTS) ;retrieve rates
;X=contract number
;FBCNRTS = optional array, contains the associated rates.
;returns the number of rates associated with a contract.
N I,CNT
I $S('$D(X):1,X']"":1,'$D(^FBAA(161.21,"B",X)):1,1:0) Q ""
S X=$O(^FBAA(161.21,"B",X,0))
S (I,CNT)=0,Y="" F S I=$O(^FBAA(161.22,"AC",X,I)) Q:'I I $D(^FBAA(161.22,I,0)) S CNT=CNT+1 D
.S FBCNRTS(CNT)=$P(^FBAA(161.22,I,0),"^",2)
Q CNT
;
DISPLAY ;
;will display rates on screen for selection
;if FBRATE is passed in the display will allow user
;selection and return 'FBRATE' equal to the dollar amount
;FBCNUM=contract number
;must pass in IEN of vendor in 161.2 as FBVIEN
I $S('$G(FBVIEN):1,'$D(^FBAAV(FBVIEN,0)):1,1:0) S FBX="" Q
I $S($G(FBCNUM)']"":1,'$D(^FBAA(161.21,"B",FBCNUM)):1,1:0) S FBX="" Q
N I,J
N FBCONRTS,FBX S FBX=$$RATE(FBCNUM,.FBCONRTS) I $G(FBX)<0 S FBRATE="" Q
S J="" F I=1:1 S J=$G(FBCONRTS(I)) Q:'J S X=J,X2="2$" D COMMA^%DTC S J=X D
.W:I#2 !?10,$S($D(FBRATE):I_")"_J,1:"RATE "_I_":"_J)
.W:I#2=0 ?40,$S($D(FBRATE):I_")"_J,1:"RATE "_I_":"_J)
Q:'$D(FBRATE)
W ! S DIR(0)="N^1:"_(I-1) D ^DIR K DIR I $D(DIRUT) S FBRATE="" Q
;S FBRATE=$P(FBX,U,Y)
S FBRATE=$G(FBCONRTS(Y))
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HFBAAVD1 2726 printed Oct 16, 2024@17:57:53 Page 2
FBAAVD1 ;AISC/DMK/GRR-COMMUNITY NURSING HOME VENDOR DISPLAY ; 1/15/10 2:06pm
+1 ;;3.5;FEE BASIS;**9,111**;JAN 30, 1995;Build 17
+2 ;;Per VHA Directive 10-93-142, this routine should not be modified.
+3 IF $Y+11>IOSL
Begin DoDot:1
+4 IF $EXTRACT(IOST,1,2)="C-"
SET DIR(0)="E"
DO ^DIR
KILL DIR
IF 'Y
QUIT
+5 WRITE @IOF,!,$JUSTIFY("Name:",13),?15,$EXTRACT(Z(1),1,30),?48,"ID Number: ",Z(2)
+6 ; continue
SET Y=1
End DoDot:1
if 'Y
QUIT
+7 WRITE !?23,">>> CNH INFORMATION <<<",!
+8 WRITE !,$JUSTIFY("Total Beds:",13),?15,$PIECE(V,"^",8),?37,"Inspected/Accredited:",?59,$SELECT($PIECE(V,"^",4)="I":"Inspected by VA",$PIECE(V,"^",4)="A":"Accredited by JCAH",$PIECE(V,"^",4)="B":"Inspect. & Accred.",1:"")
+9 if '$DATA(^FBAA(161.21,"C",DA))
QUIT
+10 SET FBX=$$CNH(DA,1)
+11 WRITE !,$JUSTIFY("Contract #:",13),?15,$PIECE(FBX,U)
+12 WRITE ?40,$JUSTIFY("Medicare/Medicaid:",13),?59,$SELECT($PIECE(V,"^",5)=1:"Not Cert. for either",$PIECE(V,"^",5)=2:"Cert. for Medicare",$PIECE(V,"^",5)=3:"Cert. for Medicaid",$PIECE(V,"^",5)=4:"Cert. for both",1:"")
+13 WRITE !,$JUSTIFY("Effect. DT:",13),?15,$$DATX^FBAAUTL($PIECE(FBX,U,2))
+14 WRITE ?42,"Last Assessment:",?59,$$DATX^FBAAUTL($PIECE(V,"^",6))
+15 WRITE !,$JUSTIFY("End Date:",13),?15,$$DATX^FBAAUTL($PIECE(FBX,U,3))
+16 SET FBCNUM=$PIECE(FBX,U)
KILL FBX
+17 WRITE !
+18 SET FBVIEN=DA
DO DISPLAY
KILL FBVIEN
+19 QUIT
+20 ;
CNH(X,Z) ;retrieve latest vendor contract
+1 ;X=IEN for vendor
+2 ;returns contract number
+3 ;if Z=1 returns array C#^effect dt^expire dt
+4 NEW Y
+5 IF $SELECT('$GET(X):1,'$DATA(^FBAAV(+X,0)):1,1:0)
QUIT ""
+6 SET Y=$PIECE($GET(^FBAA(161.21,+$ORDER(^(+$ORDER(^FBAA(161.21,"ACR",X,-DT-.9)),0)),0)),U,1,3)
+7 IF Y=""
SET Y=$PIECE($GET(^FBAA(161.21,+$ORDER(^(+$ORDER(^FBAA(161.21,"AC",X,DT)),0)),0)),U,1,3)
+8 QUIT $SELECT($GET(Z):Y,1:$PIECE(Y,U))
+9 ;
RATE(X,FBCNRTS) ;retrieve rates
+1 ;X=contract number
+2 ;FBCNRTS = optional array, contains the associated rates.
+3 ;returns the number of rates associated with a contract.
+4 NEW I,CNT
+5 IF $SELECT('$DATA(X):1,X']"":1,'$DATA(^FBAA(161.21,"B",X)):1,1:0)
QUIT ""
+6 SET X=$ORDER(^FBAA(161.21,"B",X,0))
+7 SET (I,CNT)=0
SET Y=""
FOR
SET I=$ORDER(^FBAA(161.22,"AC",X,I))
if 'I
QUIT
IF $DATA(^FBAA(161.22,I,0))
SET CNT=CNT+1
Begin DoDot:1
+8 SET FBCNRTS(CNT)=$PIECE(^FBAA(161.22,I,0),"^",2)
End DoDot:1
+9 QUIT CNT
+10 ;
DISPLAY ;
+1 ;will display rates on screen for selection
+2 ;if FBRATE is passed in the display will allow user
+3 ;selection and return 'FBRATE' equal to the dollar amount
+4 ;FBCNUM=contract number
+5 ;must pass in IEN of vendor in 161.2 as FBVIEN
+6 IF $SELECT('$GET(FBVIEN):1,'$DATA(^FBAAV(FBVIEN,0)):1,1:0)
SET FBX=""
QUIT
+7 IF $SELECT($GET(FBCNUM)']"":1,'$DATA(^FBAA(161.21,"B",FBCNUM)):1,1:0)
SET FBX=""
QUIT
+8 NEW I,J
+9 NEW FBCONRTS,FBX
SET FBX=$$RATE(FBCNUM,.FBCONRTS)
IF $GET(FBX)<0
SET FBRATE=""
QUIT
+10 SET J=""
FOR I=1:1
SET J=$GET(FBCONRTS(I))
if 'J
QUIT
SET X=J
SET X2="2$"
DO COMMA^%DTC
SET J=X
Begin DoDot:1
+11 if I#2
WRITE !?10,$SELECT($DATA(FBRATE):I_")"_J,1:"RATE "_I_":"_J)
+12 if I#2=0
WRITE ?40,$SELECT($DATA(FBRATE):I_")"_J,1:"RATE "_I_":"_J)
End DoDot:1
+13 if '$DATA(FBRATE)
QUIT
+14 WRITE !
SET DIR(0)="N^1:"_(I-1)
DO ^DIR
KILL DIR
IF $DATA(DIRUT)
SET FBRATE=""
QUIT
+15 ;S FBRATE=$P(FBX,U,Y)
+16 SET FBRATE=$GET(FBCONRTS(Y))
+17 QUIT