[613] | 1 | IBAECB1 ;WOIFO/AAT-LTC BILLING CLOCK INQUIRY ; 21-FEB-02
|
---|
| 2 | ;;2.0;INTEGRATED BILLING;**171,176**;21-MAR-94
|
---|
| 3 | ;; Per VHA Directive 10-93-142, this routine should not be modified
|
---|
| 4 | ;
|
---|
| 5 | Q
|
---|
| 6 | ;
|
---|
| 7 | ; Printing the report to the current device
|
---|
| 8 | ; Input:
|
---|
| 9 | ; IBCLK - LTC Billing Clock IEN
|
---|
| 10 | ; IOST,IOSL,IOF Must be defined
|
---|
| 11 | ; Output: IBQUIT=1 if user entered "^"
|
---|
| 12 | REPORT ;Print the report to the current device
|
---|
| 13 | N IBZ,IBN4,IBDFN,IBPTZ,IBNAM,IBSSN,IBDOB,IBVET,IBFTN,IBTAB,IBDT1,IBDT2,IBSTA
|
---|
| 14 | N:'$D(IBQUIT) IBQUIT
|
---|
| 15 | S IBQUIT=0
|
---|
| 16 | ;
|
---|
| 17 | ; Define required data
|
---|
| 18 | ;
|
---|
| 19 | S IBZ=$G(^IBA(351.81,IBCLK,0)) I IBZ="" W !,"Data not found..." Q
|
---|
| 20 | S IBDFN=+$P(IBZ,U,2) I 'IBDFN W !,"No patient data..." Q
|
---|
| 21 | S IBPTZ=$G(^DPT(IBDFN,0)) I IBPTZ="" W !,"Patient data not found... (",IBDFN,")" Q
|
---|
| 22 | S IBN4=$G(^IBA(351.81,IBCLK,4)) ; Node 4
|
---|
| 23 | S IBNAM=$P(IBPTZ,U) ; Patient name
|
---|
| 24 | S IBSSN=$P(IBPTZ,U,9) ; Patient SSN
|
---|
| 25 | S IBDOB=$P(IBPTZ,U,3) ; Patient DOB
|
---|
| 26 | S IBVET=+$P($G(^DPT(IBDFN,"TYPE")),U,1) ; Veteran type code
|
---|
| 27 | S IBVET=$S(IBVET:$P($G(^DG(391,IBVET,0)),U),1:"") ; Veteran type name
|
---|
| 28 | ; Write caption
|
---|
| 29 | W IBNAM,?32," ",$$SSN(IBSSN),?48," ",$$DAT1(IBDOB),?62,IBVET
|
---|
| 30 | W ! D LINE("=",80)
|
---|
| 31 | ;
|
---|
| 32 | ; The body of report
|
---|
| 33 | S IBFTN=$P(IBZ,U)
|
---|
| 34 | ;; W !,$$FRM("Facility Clock Number"),IBFTN
|
---|
| 35 | S IBSTA=$P(IBZ,U,5)
|
---|
| 36 | I 0 W !,$$FRM("LTC Copay Clock Status"),$$EXTERNAL^DILFD(351.81,.05,"",IBSTA)
|
---|
| 37 | W !,$$FRM("LTC Copay Clock Start Date"),$$DAT2($P(IBZ,U,3))
|
---|
| 38 | I 1 W ?56," Clock Status: ",$$EXTERNAL^DILFD(351.81,.05,"",IBSTA)
|
---|
| 39 | W !,$$FRM("LTC Copay Clock End Date "),$$DAT2($P(IBZ,U,4))
|
---|
| 40 | I '$$SCR() W !
|
---|
| 41 | ;;W !,$$FRM("Current Events Date"),$S($P(IBZ,U,7):$$DAT2($P(IBZ,U,7)),1:"none")
|
---|
| 42 | ;;I '$$SCR() W !
|
---|
| 43 | W !,$$FRM("Free Days Remaining"),+$P(IBZ,U,6)
|
---|
| 44 | I $O(^IBA(351.81,IBCLK,1,0)) ; Not used yet
|
---|
| 45 | D FRDAYS Q:IBQUIT
|
---|
| 46 | W ! D CHKPAUSE Q:IBQUIT
|
---|
| 47 | W !,$$FRM("User Added Entry "),$$PERS($P(IBN4,U,1)) D CHKPAUSE Q:IBQUIT
|
---|
| 48 | I 0 W !,$$FRM("Date Entry Added")
|
---|
| 49 | E W ?55
|
---|
| 50 | W $$DAT2($P(IBN4,U,2)) D CHKPAUSE Q:IBQUIT
|
---|
| 51 | W !,$$FRM("User Last Updated"),$$PERS($P(IBN4,U,3)) D CHKPAUSE Q:IBQUIT
|
---|
| 52 | I 0 W !,$$FRM("Date Last Updated")
|
---|
| 53 | E W ?55
|
---|
| 54 | W $$DAT2($P(IBN4,U,4))
|
---|
| 55 | Q
|
---|
| 56 | ;
|
---|
| 57 | ;
|
---|
| 58 | ; Fotmatting row labels
|
---|
| 59 | FRM(IBLBL,IBCUT) ;
|
---|
| 60 | I $G(IBCUT,1) S IBLBL=$E(IBLBL,1,26)
|
---|
| 61 | Q " "_IBLBL_": " ;;;$J("",26-$L(IBLBL))_": "
|
---|
| 62 | ;
|
---|
| 63 | SSN(IBSSN) I IBSSN?9N Q $E(IBSSN,1,3)_"-"_$E(IBSSN,4,5)_"-"_$E(IBSSN,6,9)
|
---|
| 64 | Q IBSSN
|
---|
| 65 | ;
|
---|
| 66 | DAT1(IBDAT) ;FM -> External date, like 12/25/2000
|
---|
| 67 | Q $$FMTE^XLFDT(IBDAT,"5PMZ")
|
---|
| 68 | ;
|
---|
| 69 | DAT2(IBDAT) ;FM -> External date, like OCT 25, 2001
|
---|
| 70 | Q $$FMTE^XLFDT(IBDAT,"1PMZ")
|
---|
| 71 | ;
|
---|
| 72 | ; Draw a line, of characters IBC, length IBN
|
---|
| 73 | LINE(IBC,IBN) N IBL
|
---|
| 74 | I $L($G(IBC))'=1 S IBC="="
|
---|
| 75 | I +$G(IBN)=0 S IBN=80
|
---|
| 76 | S $P(IBL,IBC,IBN+1)=""
|
---|
| 77 | W IBL
|
---|
| 78 | Q
|
---|
| 79 | ; Person
|
---|
| 80 | PERS(IBIEN) ;
|
---|
| 81 | I '$G(IBIEN) Q ""
|
---|
| 82 | Q $P($G(^VA(200,IBIEN,0)),U)
|
---|
| 83 | ;
|
---|
| 84 | ; Input:
|
---|
| 85 | ; IBCLK - LBC Billing Clock IEN
|
---|
| 86 | ; IBQUIT - if defined, pauses will be made at the bottom of screen ("C-" devices only!)
|
---|
| 87 | ; Output:
|
---|
| 88 | ; IBQUIT=1 if user pressed "^". Only if IBQUIT was defined initially!
|
---|
| 89 | FRDAYS ; Write the list of exempt days
|
---|
| 90 | N IBZ,IBV,IBC,IBI,IBA,IBN
|
---|
| 91 | S IBZ=$G(^IBA(351.81,IBCLK,0)) I IBZ="" W !,"Corrupted record of LTC clock ",IBCLK Q
|
---|
| 92 | S IBC=0 ; Counter of free days
|
---|
| 93 | ; Collect an array of free days:
|
---|
| 94 | S IBI=0 F S IBI=$O(^IBA(351.81,IBCLK,1,IBI)) Q:'IBI D:$P(^(IBI,0),U,2)
|
---|
| 95 | . S IBC=IBC+1
|
---|
| 96 | . S IBA(IBC)=$P(^IBA(351.81,IBCLK,1,IBI,0),U,2)
|
---|
| 97 | ;I '$$SCR() W !,$$FRM("Days free of LTC copay")
|
---|
| 98 | ;E
|
---|
| 99 | W !,$$FRM("Days Not Subject To LTC Copay",0)
|
---|
| 100 | I 'IBC W "none" Q
|
---|
| 101 | S IBV=IBC\3 I IBC#3 S IBV=IBV+1
|
---|
| 102 | F IBI=1:1:IBV D Q:$G(IBQUIT)
|
---|
| 103 | . D:$D(IBQUIT) CHKPAUSE
|
---|
| 104 | . S IBN=IBI W !?5,$J(IBN,2),?10,$$FMTE^XLFDT(IBA(IBN))
|
---|
| 105 | . S IBN=IBI+IBV I $G(IBA(IBN)) W ?30,$J(IBN,2),?35,$$FMTE^XLFDT(IBA(IBN))
|
---|
| 106 | . S IBN=IBI+(2*IBV) I $G(IBA(IBN)) W ?55,$J(IBN,2),?60,$$FMTE^XLFDT(IBA(IBN))
|
---|
| 107 | Q
|
---|
| 108 | ;
|
---|
| 109 | PAUSE Q:'$$SCR() ;Screen only
|
---|
| 110 | N IBJ,DIR,DIRUT,DTOUT,DUOUT,DIROUT,Y,IOSL2
|
---|
| 111 | S IOSL2=$S(IOSL>24:24,1:IOSL)
|
---|
| 112 | F IBJ=$Y:1:(IOSL2-4) W !
|
---|
| 113 | S DIR(0)="E" D ^DIR K DIR I $G(DUOUT) S IBQUIT=1
|
---|
| 114 | Q
|
---|
| 115 | ;
|
---|
| 116 | CHKPAUSE ;Check pause
|
---|
| 117 | I $Y>(IOSL-5) D PAUSE Q:IBQUIT W @IOF D LINE("-",80) W !
|
---|
| 118 | Q
|
---|
| 119 | ;
|
---|
| 120 | SCR() Q $E(IOST,1,2)="C-" ; Screen
|
---|