1 | IBAPDX1 ;ALB/CPM - BUILD DISPLAY SET FOR EXTRACTED PDX BILLING DATA ; 09-APR-93
|
---|
2 | ;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | DISP(IN,SPTR,OUT,OFF) ; PDX Entry Point to build output array from extract.
|
---|
6 | ; Input: IN -- Root for the input extract array
|
---|
7 | ; OUT -- Root for the output display array
|
---|
8 | ; OFF -- Offset to begin line-numbering
|
---|
9 | ; SPTR -- Pointer to extracted segment in file #394.71
|
---|
10 | ; Output: NUM -- Number of lines in the output display array, or
|
---|
11 | ; -1^err -- if an error was encountered.
|
---|
12 | ;
|
---|
13 | N NUM,IBCT,IBCTR,IBDOL,IBDT,IBFR,IBHDR,IBI,IBST,IBTO,X
|
---|
14 | I $G(IN)="" S NUM="-1^Did not pass root for the input extract array." G DISPQ
|
---|
15 | I $G(OUT)="" S NUM="-1^Did not pass root for the output display array." G DISPQ
|
---|
16 | I '$D(OFF) S NUM="-1^Did not pass the offset line number." G DISPQ
|
---|
17 | I '$G(SPTR) S NUM="-1^Did not pass the extraction segment pointer." G DISPQ
|
---|
18 | ;
|
---|
19 | ; - build display header
|
---|
20 | S IBTTL=$P($G(^VAT(394.71,+SPTR,0)),"^"),IBCTR="< "_$S(IBTTL]"":IBTTL,1:"Segment Description Missing")_" >"
|
---|
21 | S @OUT@("DISPLAY",+OFF,0)=$$CENTER^VAQDIS20($TR($J("",79)," ","-"),IBCTR)
|
---|
22 | S @OUT@("DISPLAY",+OFF+1,0)=""
|
---|
23 | S @OUT@("DISPLAY",+OFF+2,0)=$J("",24)_"MEANS TEST BILLING INFORMATION"
|
---|
24 | S @OUT@("DISPLAY",+OFF+3,0)=""
|
---|
25 | ;
|
---|
26 | ; - build continuous patient display
|
---|
27 | I @IN@("VALUE",351.1,.01,0)="" S NUM=4 G CLOCK
|
---|
28 | S IBDT=@IN@("VALUE",351.1,.02,0)
|
---|
29 | I IBDT="" S @OUT@("DISPLAY",+OFF+4,0)=" ** This patient has been continuously hospitalized since 7/1/86 **",@OUT@("DISPLAY",+OFF+5,0)="",NUM=6 G CLOCK
|
---|
30 | S @OUT@("DISPLAY",+OFF+4,0)="This patient was a continuous patient up through "_IBDT_" (No longer continuous)",@OUT@("DISPLAY",+OFF+5,0)="",NUM=6
|
---|
31 | ;
|
---|
32 | CLOCK ; - build active billing clock data display
|
---|
33 | I @IN@("VALUE",351,.01,0)="" S @OUT@("DISPLAY",+OFF+NUM,0)=" --- This patient has no current Means Test Billing activity ---",NUM=NUM+1 G DISPQ
|
---|
34 | S @OUT@("DISPLAY",+OFF+NUM,0)="Means Test Active Billing Clock Information:",NUM=NUM+1
|
---|
35 | S @OUT@("DISPLAY",+OFF+NUM,0)=$TR($J("",80)," ","-"),NUM=NUM+1
|
---|
36 | S @OUT@("DISPLAY",+OFF+NUM,0)=" Clock Start Date: "_@IN@("VALUE",351,.03,0)_$J("",14)_"Inpatient Days: "_@IN@("VALUE",351,.09,0),NUM=NUM+1
|
---|
37 | S @OUT@("DISPLAY",+OFF+NUM,0)="",NUM=NUM+1
|
---|
38 | S @OUT@("DISPLAY",+OFF+NUM,0)=" Medicare Deductible Co-payments:",NUM=NUM+1
|
---|
39 | S IBDOL=@IN@("VALUE",351,.05,0)
|
---|
40 | S @OUT@("DISPLAY",+OFF+NUM,0)=$J("",15)_"1st 90 days: $"_IBDOL_$J("",13+(3-$L(IBDOL)))_"3rd 90 days: $"_@IN@("VALUE",351,.07,0),NUM=NUM+1
|
---|
41 | S IBDOL=@IN@("VALUE",351,.06,0)
|
---|
42 | S @OUT@("DISPLAY",+OFF+NUM,0)=$J("",15)_"2nd 90 days: $"_IBDOL_$J("",13+(3-$L(IBDOL)))_"4th 90 days: $"_@IN@("VALUE",351,.08,0),NUM=NUM+1
|
---|
43 | S @OUT@("DISPLAY",+OFF+NUM,0)=$TR($J("",80)," ","-"),NUM=NUM+1
|
---|
44 | S @OUT@("DISPLAY",+OFF+NUM,0)="",NUM=NUM+1
|
---|
45 | S @OUT@("DISPLAY",+OFF+NUM,0)="",NUM=NUM+1
|
---|
46 | ;
|
---|
47 | ; - build list of charges billed in active billing clock period
|
---|
48 | I @IN@("VALUE",350,.01,0)="" S @OUT@("DISPLAY",+OFF+NUM,0)=" --- There were no charges billed during this active billing clock period ---",NUM=NUM+1 G DISPQ
|
---|
49 | S @OUT@("DISPLAY",+OFF+NUM,0)="Charges Billed in this Active Billing Clock Period:",NUM=NUM+1
|
---|
50 | S @OUT@("DISPLAY",+OFF+NUM,0)=$TR($J("",80)," ","-"),NUM=NUM+1
|
---|
51 | S @OUT@("DISPLAY",+OFF+NUM,0)=" Bill From Bill To Charge Type"_$J("",15)_"Status"_$J("",13)_"Charge",NUM=NUM+1
|
---|
52 | S @OUT@("DISPLAY",+OFF+NUM,0)=$TR($J("",80)," ","-"),NUM=NUM+1
|
---|
53 | ;
|
---|
54 | F IBI=0:1 Q:'$D(@IN@("VALUE",350,.01,IBI)) D
|
---|
55 | .S IBFR=@IN@("VALUE",350,.14,IBI),IBTO=@IN@("VALUE",350,.15,IBI)
|
---|
56 | .S IBCT=@IN@("VALUE",350,.03,IBI),IBST=@IN@("VALUE",350,.05,IBI)
|
---|
57 | .S X=" "_$S(IBFR]"":IBFR,1:$J("",8))_" "_$S(IBTO]"":IBTO,1:$J("",8))_" "
|
---|
58 | .S X=X_IBCT_$J("",(26-$L(IBCT)))_IBST_$J("",(19-$L(IBST)))
|
---|
59 | .S X=X_$S(IBCT["CANCEL":"($",1:" $")_@IN@("VALUE",350,.07,IBI)_$S(IBCT["CANCEL":")",1:"")
|
---|
60 | .S @OUT@("DISPLAY",+OFF+NUM,0)=X,NUM=NUM+1
|
---|
61 | ;
|
---|
62 | DISPQ Q NUM
|
---|