| 1 | FBSHUTL ;WCIOFO/SAB-STATE HOME UTILITIES ;2/8/1999
 | 
|---|
| 2 |  ;;3.5;FEE BASIS;**13**;JAN 30, 1995
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 | DOC(FBFR,FBTO,FBDTP1,FBDTP2) ; Days of Care Extrinsic Function
 | 
|---|
| 5 |  ; Return length (days) of authorization. The authorization TO DATE
 | 
|---|
| 6 |  ; is not counted unless it is equal to the authorization FROM DATE.
 | 
|---|
| 7 |  ; If optional period is specified then only the authorization days
 | 
|---|
| 8 |  ; within the period are counted.
 | 
|---|
| 9 |  ; input
 | 
|---|
| 10 |  ;   FBFR    - authorization FROM DATE (FileMan format)
 | 
|---|
| 11 |  ;   FBTO    - authorization TO DATE (FileMan format)
 | 
|---|
| 12 |  ;   FBDTP1  - (optional) start date of period (FileMan format)
 | 
|---|
| 13 |  ;   FBDTP2  - (optional) end date of period (FileMan format)
 | 
|---|
| 14 |  ; returns length of authorization (days) within optional period
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  N FBDTC1,FBDTC2,FBQUIT
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ; validate input parameters
 | 
|---|
| 19 |  I FBFR'?7N!(FBTO'?7N)!(FBFR>FBTO) S FBQUIT=1
 | 
|---|
| 20 |  I $G(FBDTP1)'?7N!($G(FBDTP2)'?7N)!(FBDTP1>FBDTP2) S (FBDTP1,FBDTP2)=""
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 |  ; initialize calculation start and end dates as authorization dates
 | 
|---|
| 23 |  S FBDTC1=FBFR,FBDTC2=FBTO
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  ; if period specified then check if auth in period and adjust calc dates
 | 
|---|
| 26 |  I '$G(FBQUIT),FBDTP1]"",FBDTP2]"" D
 | 
|---|
| 27 |  . I FBFR>FBDTP2 S FBQUIT=1 Q  ; not within specified period
 | 
|---|
| 28 |  . I FBTO<FBDTP1 S FBQUIT=1 Q  ; not within specified period
 | 
|---|
| 29 |  . ; if auth FROM DATE before period then set calculation start date
 | 
|---|
| 30 |  . ;  as 1st day in period
 | 
|---|
| 31 |  . I FBFR<FBDTP1 S FBDTC1=FBDTP1
 | 
|---|
| 32 |  . ; if auth TO DATE after period then set calculation end date as
 | 
|---|
| 33 |  . ; next day after period in order to count through last day in period
 | 
|---|
| 34 |  . I FBTO>FBDTP2 S FBDTC2=$$FMADD^XLFDT(FBDTP2,1)
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 |  ; return days of care (within optional specified period)
 | 
|---|
| 37 |  ;   count as 1 day when auth FROM DATE = TO DATE (special case)
 | 
|---|
| 38 |  Q $S($G(FBQUIT):0,FBFR=FBTO:1,1:$$FMDIFF^XLFDT(FBDTC2,FBDTC1))
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 |  ;FBSHUTL
 | 
|---|