Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/INTEGRATED_BILLING-IB-PRQ--IBD--IBQ--PRQS/IBCNSP.m

    r613 r623  
    1 IBCNSP  ;ALB/AAS - INSURANCE MANAGEMENT - EXPANDED POLICY ;05-MAR-1993
    2         ;;2.0;INTEGRATED BILLING;**6,28,43,52,85,251,363,371**;21-MAR-94;Build 57
    3         ;;Per VHA Directive 2004-038, this routine should not be modified.
    4 %       ;
    5 EN      ; -- main entry point for IBCNS EXPANDED POLICY
    6         N IB1ST
    7         K VALMQUIT,IBPPOL
    8         S IBTOP="IBCNSP"
    9         D EN^VALM("IBCNS EXPANDED POLICY")
    10         Q
    11         ;
    12 HDR     ; -- header code
    13         N W,X,Y,Z
    14         S VALMHDR(1)="Expanded Policy Information for: "_$E($P(^DPT(DFN,0),U),1,20)_"  "_$P($$PT^IBEFUNC(DFN),U,2)
    15         S Z=$G(^DPT(DFN,.312,+$P(IBPPOL,U,4),0))
    16         S W=$P($G(^IBA(355.3,+$P(Z,U,18),0)),U,11)
    17         S Y=$E($P($G(^DIC(36,+Z,0)),U),1,20)_" Insurance Company"
    18         S X="** Plan Currently "_$S(W:"Ina",1:"A")_"ctive **"
    19         S VALMHDR(2)=$$SETSTR^VALM1(X,Y,48,29)
    20         Q
    21         ;
    22 INIT    ; -- init variables and list array
    23         K VALMQUIT
    24         S VALMCNT=0,VALMBG=1
    25         I '$D(IBPPOL) D PPOL Q:$D(VALMQUIT)
    26         K ^TMP("IBCNSVP",$J)
    27         D BLD,HDR
    28         Q
    29         ;
    30 BLD     ; -- list builder
    31         K ^TMP("IBCNSVP",$J),^TMP("IBCNSVPDX",$J)
    32         D KILL^VALM10()
    33         F I=1:1:20 D BLANK(.I)    ; start with 20 blank lines
    34         N IBCDFND,IBCDFND1,IBCDFND2,IBCDFND4,IBCDFND5
    35         S IBCDFND=$G(^DPT(DFN,.312,$P(IBPPOL,U,4),0)),IBCDFND1=$G(^(1)),IBCDFND2=$G(^(2)),IBCDFND4=$G(^(4)),IBCDFND5=$G(^(5))
    36         S IBCPOL=+$P(IBCDFND,U,18),IBCNS=+IBCDFND,IBCDFN=$P(IBPPOL,U,4)
    37         S IBCPOLD=$G(^IBA(355.3,+$P(IBCDFND,U,18),0)),IBCPOLD1=$G(^(1))
    38         S IBCPOLD2=$G(^IBA(355.3,+$G(IBCPOL),6)) ;; Daou/EEN adding BIN and PCN
    39         ;
    40         D POLICY^IBCNSP0                   ; plan information
    41         D INS^IBCNSP0                      ; insurance company
    42         D UR                               ; utilization review info
    43         D EFFECT                           ; effective dates & source of info
    44         D SUBSC^IBCNSP01                   ; subscriber info
    45         D EMP                              ; subscriber's employer info
    46         D SPON^IBCNSP0                     ; insured person's info
    47         D ID^IBCNSP01                      ; ins co ID numbers (IB*2*371)
    48         D PLIM                             ; plan coverage limitations
    49         D VER^IBCNSP01                     ; user/verifier/editor info
    50         D CONTACT^IBCNSP0                  ; last insurance contact
    51         D COMMENT                          ; comments - policy & plan
    52         D RIDER^IBCNSP01                   ; policy rider info
    53         ;
    54         S VALMCNT=+$O(^TMP("IBCNSVP",$J,""),-1)
    55         Q
    56         ;
    57 COMMENT ; -- Comment region
    58         N START,OFFSET,IBL,IBI
    59         S (START,IBL)=$O(^TMP("IBCNSVP",$J,""),-1)+1,OFFSET=2
    60         S IB1ST("COMMENT")=START
    61         D SET(START,OFFSET," Comment -- Patient Policy ",IORVON,IORVOFF)
    62         S IBL=IBL+1
    63         D SET(IBL,OFFSET,$S($P(IBCDFND1,U,8)="":"None",1:$P(IBCDFND1,U,8)))
    64         S IBL=IBL+1
    65         D SET(IBL,OFFSET," ")
    66         S IBL=IBL+1
    67         D SET(IBL,OFFSET," Comment -- Group Plan ",IORVON,IORVOFF)
    68         S IBI=0 F  S IBI=$O(^IBA(355.3,+IBCPOL,11,IBI)) Q:IBI<1  D
    69         . S IBL=IBL+1
    70         . D SET(IBL,OFFSET,"  "_$E($G(^IBA(355.3,+IBCPOL,11,IBI,0)),1,80))
    71         . Q
    72         S IBL=IBL+1 D SET(IBL,OFFSET," ")
    73         S IBL=IBL+1 D SET(IBL,OFFSET," ")
    74         Q
    75         ;
    76 EFFECT  ; -- Effective date region
    77         N START,OFFSET
    78         S START=16,OFFSET=45
    79         D SET(START,OFFSET-4," Effective Dates & Source ",IORVON,IORVOFF)
    80         D SET(START+1,OFFSET," Effective Date: "_$$DAT1^IBOUTL($P(IBCDFND,U,8)))
    81         D SET(START+2,OFFSET,"Expiration Date: "_$$DAT1^IBOUTL($P(IBCDFND,U,4)))
    82         D SET(START+3,OFFSET," Source of Info: "_$$EXPAND^IBTRE(2.312,1.09,$P($G(IBCDFND1),U,9)))
    83         D SET(START+4,OFFSET-4,"Policy Not Billable: "_$S($P($G(^DPT(DFN,.312,IBCDFN,3)),"^",4):"YES",1:"NO"))
    84         Q
    85         ;
    86 UR      ; -- UR of insurance region
    87         N START,OFFSET
    88         S START=16,OFFSET=2
    89         D SET(START,OFFSET," Utilization Review Info ",IORVON,IORVOFF)
    90         D SET(START+1,OFFSET,"         Require UR: "_$$EXPAND^IBTRE(355.3,.05,$P(IBCPOLD,U,5)))
    91         D SET(START+2,OFFSET,"   Require Amb Cert: "_$$EXPAND^IBTRE(355.3,.12,$P(IBCPOLD,U,12)))
    92         D SET(START+3,OFFSET,"   Require Pre-Cert: "_$$EXPAND^IBTRE(355.3,.06,$P(IBCPOLD,U,6)))
    93         D SET(START+4,OFFSET,"   Exclude Pre-Cond: "_$$EXPAND^IBTRE(355.3,.07,$P(IBCPOLD,U,7)))
    94         D SET(START+5,OFFSET,"Benefits Assignable: "_$$EXPAND^IBTRE(355.3,.08,$P(IBCPOLD,U,8)))
    95         Q
    96 EMP     ; -- Insurance Employer Region
    97         N OFFSET,START,IBADD
    98         S START=24,OFFSET=40
    99         D SET(START,OFFSET," Subscriber's Employer Information ",IORVON,IORVOFF)
    100         D SET(START+1,OFFSET,"Emp Sponsored Plan: "_$S(+$P(IBCDFND2,U,10):"Yes",1:"No"))
    101         D SET(START+2,OFFSET,"          Employer: "_$P(IBCDFND2,U,9))
    102         D SET(START+3,OFFSET," Employment Status: "_$$EXPAND^IBTRE(2.312,2.11,$P(IBCDFND2,U,11)))
    103         D SET(START+4,OFFSET,"   Retirement Date: "_$$DAT1^IBOUTL($P(IBCDFND2,U,12)))
    104         D SET(START+5,OFFSET,"Claims to Employer: "_$S(+IBCDFND2:"Yes, Send to Employer",1:"No, Send to Insurance Company"))
    105         ;
    106         D SET(START+6,OFFSET,"            Street: "_$P(IBCDFND2,U,2)) S IBADD=1
    107         I $P(IBCDFND2,U,3)'="" D SET(START+7,OFFSET,"          Street 2: "_$P(IBCDFND2,U,3)) S IBADD=2
    108         I $P(IBCDFND2,U,4)'="" D SET(START+8,OFFSET,"          Street 3: "_$P(IBCDFND2,U,4)) S IBADD=3
    109         D SET(START+6+IBADD,OFFSET,"        City/State: "_$E($P(IBCDFND2,U,5),1,15)_$S($P(IBCDFND2,U,5)="":"",1:", ")_$P($G(^DIC(5,+$P(IBCDFND2,U,6),0)),U,2)_" "_$E($P(IBCDFND2,U,7),1,5))
    110         D SET(START+7+IBADD,OFFSET,"             Phone: "_$P(IBCDFND2,U,8))
    111         ;
    112         ; couple of blank lines to end this section
    113         D SET(START+8+IBADD,2," ")
    114         D SET(START+9+IBADD,2," ")
    115         ;
    116 EMPQ    Q
    117         ;
    118 PLIM    ; plan coverage limitations/plan limitation category display
    119         N START,END S START=$O(^TMP("IBCNSVP",$J,""),-1)+1
    120         S IB1ST("PLIM")=START
    121         D LIMBLD^IBCNSC41(START,2)
    122         S END=$O(^TMP("IBCNSVP",$J,""),-1)  ; last line constructed
    123         D SET(END+1,2," ")    ; 2 blank lines to end this section
    124         D SET(END+2,2," ")
    125 PLIMX   ;
    126         Q
    127         ;
    128 HELP    ; -- help code
    129         S X="?" D DISP^XQORM1 W !!
    130         Q
    131         ;
    132 EXIT    ; -- exit code
    133         K IBPPOL,VALMQUIT,IBCNS,IBCPOL,IBCPOLD,IBCPOLD1,IBCPOLD2,IBCDFND,IBCDFND1,IBCDFND2
    134         D CLEAN^VALM10,CLEAR^VALM1
    135         Q
    136         ;
    137 EXPND   ; -- expand code
    138         Q
    139         ;
    140 PPOL    ; -- select patient, select policy
    141         I '$D(DFN) D  G:$D(VALMQUIT) PPOLQ
    142         .S DIC="^DPT(",DIC(0)="AEQMN" D ^DIC
    143         .S DFN=+Y
    144         I $G(DFN)<1 S VALMQUIT="" G PPOLQ
    145         ;
    146         I '$O(^DPT(DFN,.312,0)) W !!,"Patient doesn't have Insurance" K DFN G PPOL
    147         ;
    148         S DIC="^DPT("_DFN_",.312,",DIC(0)="AEQMN",DIC("A")="Select Patient Policy: "
    149         D ^DIC I +Y<1 S VALMQUIT=""
    150         G:$D(VALMQUIT) PPOLQ
    151         S IBPPOL="^2^"_DFN_U_+Y_U_$G(^DPT(DFN,.312,+Y,0))
    152 PPOLQ   K DIC Q
    153         ;
    154 BLANK(LINE)     ; -- Build blank line
    155         D SET^VALM10(.LINE,$J("",80))
    156         Q
    157         ;
    158 SET(LINE,COL,TEXT,ON,OFF)       ; -- set display info in array
    159         I '$D(@VALMAR@(LINE,0)) D BLANK(.LINE) S VALMCNT=$G(VALMCNT)+1
    160         D SET^VALM10(.LINE,$$SETSTR^VALM1(.TEXT,@VALMAR@(LINE,0),.COL,$L(TEXT)))
    161         D:$G(ON)]""!($G(OFF)]"") CNTRL^VALM10(.LINE,.COL,$L(TEXT),$G(ON),$G(OFF))
    162         W:'(LINE#5) "."
    163         Q
     1IBCNSP ;ALB/AAS - INSURANCE MANAGEMENT - EXPANDED POLICY ;05-MAR-1993
     2 ;;2.0;INTEGRATED BILLING;**6,28,43,52,85,251,363**;21-MAR-94;Build 35
     3 ;;Per VHA Directive 2004-038, this routine should not be modified.
     4% ;
     5EN ; -- main entry point for IBCNS EXPANDED POLICY
     6 K VALMQUIT,IBPPOL
     7 S IBTOP="IBCNSP"
     8 D EN^VALM("IBCNS EXPANDED POLICY")
     9 Q
     10 ;
     11HDR ; -- header code
     12 N W,X,Y,Z
     13 S VALMHDR(1)="Expanded Policy Information for: "_$E($P(^DPT(DFN,0),U),1,20)_"  "_$P($$PT^IBEFUNC(DFN),U,2)
     14 S Z=$G(^DPT(DFN,.312,+$P(IBPPOL,U,4),0))
     15 S W=$P($G(^IBA(355.3,+$P(Z,U,18),0)),U,11)
     16 S Y=$E($P($G(^DIC(36,+Z,0)),U),1,20)_" Insurance Company"
     17 S X="** Plan Currently "_$S(W:"Ina",1:"A")_"ctive **"
     18 S VALMHDR(2)=$$SETSTR^VALM1(X,Y,48,29)
     19 Q
     20 ;
     21INIT ; -- init variables and list array
     22 K VALMQUIT
     23 S VALMCNT=0,VALMBG=1
     24 I '$D(IBPPOL) D PPOL Q:$D(VALMQUIT)
     25 K ^TMP("IBCNSVP",$J)
     26 D BLD,HDR
     27 Q
     28 ;
     29BLD ; -- list builder
     30 K ^TMP("IBCNSVP",$J),^TMP("IBCNSVPDX",$J)
     31 D KILL^VALM10()
     32 F I=1:1:50 D BLANK(.I)
     33 S VALMCNT=50
     34 N IBCDFND,IBCDFND1,IBCDFND2,IBCDFND4
     35 S IBCDFND=$G(^DPT(DFN,.312,$P(IBPPOL,U,4),0)),IBCDFND1=$G(^(1)),IBCDFND2=$G(^(2)),IBCDFND4=$G(^(4))
     36 S IBCPOL=+$P(IBCDFND,U,18),IBCNS=+IBCDFND,IBCDFN=$P(IBPPOL,U,4)
     37 S IBCPOLD=$G(^IBA(355.3,+$P(IBCDFND,U,18),0)),IBCPOLD1=$G(^(1))
     38 S IBCPOLD2=$G(^IBA(355.3,+$G(IBCPOL),6)) ;; Daou/EEN adding BIN and PCN
     39 S IBLCNT=0
     40 D POLICY^IBCNSP0,INS^IBCNSP0,SPON^IBCNSP0,LIMBLD^IBCNSC41(36,2,.IBLCNT)
     41 D CONTACT^IBCNSP0,EFFECT,UR,EMP,VER^IBCNSP01,COMMENT,^IBCNSP01
     42 Q
     43 ;
     44COMMENT ; -- Comment region
     45 N START,OFFSET,IBL,IBI
     46 S START=49+$G(IBLCNT),OFFSET=2,IBL=0
     47 I '$D(@VALMAR@(START-1)) D SET(START-1,OFFSET,"  ")
     48 D SET(START,OFFSET," Comment -- Patient Policy ",IORVON,IORVOFF)
     49 D SET(START+1,OFFSET,$S($P(IBCDFND1,U,8)="":"None",1:$P(IBCDFND1,U,8)))
     50 I '$D(@VALMAR@(START+2)) D SET(START+2,OFFSET,"  ")
     51 D SET(START+3,OFFSET," Comment -- Group Plan ",IORVON,IORVOFF)
     52 S IBI=0 F  S IBI=$O(^IBA(355.3,+IBCPOL,11,IBI)) Q:IBI<1  D
     53 .S IBL=IBL+1
     54 .D SET(START+IBL+3,OFFSET,"  "_$E($G(^IBA(355.3,+IBCPOL,11,IBI,0)),1,80))
     55 S IBLCNT=$G(IBLCNT)+IBL+1 D SET(START+IBL+4,OFFSET,"  ")
     56 Q
     57 ;
     58EFFECT ; -- Effective date region
     59 N START,OFFSET
     60 S START=14,OFFSET=45
     61 D SET(START,OFFSET-4," Effective Dates & Source ",IORVON,IORVOFF)
     62 D SET(START+1,OFFSET," Effective Date: "_$$DAT1^IBOUTL($P(IBCDFND,U,8)))
     63 D SET(START+2,OFFSET,"Expiration Date: "_$$DAT1^IBOUTL($P(IBCDFND,U,4)))
     64 D SET(START+3,OFFSET," Source of Info: "_$$EXPAND^IBTRE(2.312,1.09,$P($G(IBCDFND1),U,9)))
     65 D SET(START+4,OFFSET-4,"Policy Not Billable: "_$S($P($G(^DPT(DFN,.312,IBCDFN,3)),"^",4):"YES",1:"NO"))
     66 Q
     67 ;
     68UR ; -- UR of insurance region
     69 N START,OFFSET
     70 S START=14,OFFSET=2
     71 D SET(START,OFFSET," Utilization Review Info ",IORVON,IORVOFF)
     72 D SET(START+1,OFFSET,"         Require UR: "_$$EXPAND^IBTRE(355.3,.05,$P(IBCPOLD,U,5)))
     73 D SET(START+2,OFFSET,"   Require Amb Cert: "_$$EXPAND^IBTRE(355.3,.12,$P(IBCPOLD,U,12)))
     74 D SET(START+3,OFFSET,"   Require Pre-Cert: "_$$EXPAND^IBTRE(355.3,.06,$P(IBCPOLD,U,6)))
     75 D SET(START+4,OFFSET,"   Exclude Pre-Cond: "_$$EXPAND^IBTRE(355.3,.07,$P(IBCPOLD,U,7)))
     76 D SET(START+5,OFFSET,"Benefits Assignable: "_$$EXPAND^IBTRE(355.3,.08,$P(IBCPOLD,U,8)))
     77 Q
     78EMP ; -- Insurance Employer Region
     79 N OFFSET,START,IBADD
     80 S START=19,OFFSET=40
     81 D SET(START,OFFSET," Subscriber's Employer Information ",IORVON,IORVOFF)
     82 D SET(START+1,OFFSET,"Emp Sponsored Plan: "_$S(+$P(IBCDFND2,U,10):"Yes",1:"No"))
     83 D SET(START+2,OFFSET,"          Employer: "_$P(IBCDFND2,U,9))
     84 D SET(START+3,OFFSET," Employment Status: "_$$EXPAND^IBTRE(2.312,2.11,$P(IBCDFND2,U,11)))
     85 D SET(START+4,OFFSET,"   Retirement Date: "_$$DAT1^IBOUTL($P(IBCDFND2,U,12)))
     86 D SET(START+5,OFFSET,"Claims to Employer: "_$S(+IBCDFND2:"Yes, Send to Employer",1:"No, Send to Insurance Company"))
     87 ;I +IBCDFND2 W !!,"If ROI applies, make sure current consent is signed.",!! D PAUSE^VALM1
     88 ;
     89 D SET(START+6,OFFSET,"            Street: "_$P(IBCDFND2,U,2)) S IBADD=1
     90 I $P(IBCDFND2,U,3)'="" D SET(START+7,OFFSET,"          Street 2: "_$P(IBCDFND2,U,3)) S IBADD=2
     91 I $P(IBCDFND2,U,4)'="" D SET(START+8,OFFSET,"          Street 3: "_$P(IBCDFND2,U,4)) S IBADD=3
     92 D SET(START+6+IBADD,OFFSET,"        City/State: "_$E($P(IBCDFND2,U,5),1,15)_$S($P(IBCDFND2,U,5)="":"",1:", ")_$P($G(^DIC(5,+$P(IBCDFND2,U,6),0)),U,2)_" "_$E($P(IBCDFND2,U,7),1,5))
     93 D SET(START+7+IBADD,OFFSET,"             Phone: "_$P(IBCDFND2,U,8))
     94 ;
     95EMPQ Q
     96 ;
     97HELP ; -- help code
     98 S X="?" D DISP^XQORM1 W !!
     99 Q
     100 ;
     101EXIT ; -- exit code
     102 K IBPPOL,VALMQUIT,IBCNS,IBCPOL,IBCPOLD,IBCPOLD1,IBCPOLD2,IBCDFND,IBCDFND1,IBCDFND2
     103 D CLEAN^VALM10,CLEAR^VALM1
     104 Q
     105 ;
     106EXPND ; -- expand code
     107 Q
     108 ;
     109PPOL ; -- select patient, select policy
     110 I '$D(DFN) D  G:$D(VALMQUIT) PPOLQ
     111 .S DIC="^DPT(",DIC(0)="AEQMN" D ^DIC
     112 .S DFN=+Y
     113 I $G(DFN)<1 S VALMQUIT="" G PPOLQ
     114 ;
     115 I '$O(^DPT(DFN,.312,0)) W !!,"Patient doesn't have Insurance" K DFN G PPOL
     116 ;
     117 S DIC="^DPT("_DFN_",.312,",DIC(0)="AEQMN",DIC("A")="Select Patient Policy: "
     118 D ^DIC I +Y<1 S VALMQUIT=""
     119 G:$D(VALMQUIT) PPOLQ
     120 S IBPPOL="^2^"_DFN_U_+Y_U_$G(^DPT(DFN,.312,+Y,0))
     121PPOLQ K DIC Q
     122 ;
     123BLANK(LINE) ; -- Build blank line
     124 D SET^VALM10(.LINE,$J("",80))
     125 Q
     126 ;
     127SET(LINE,COL,TEXT,ON,OFF) ; -- set display info in array
     128 I '$D(@VALMAR@(LINE,0)) D BLANK(.LINE) S VALMCNT=$G(VALMCNT)+1
     129 D SET^VALM10(.LINE,$$SETSTR^VALM1(.TEXT,@VALMAR@(LINE,0),.COL,$L(TEXT)))
     130 D:$G(ON)]""!($G(OFF)]"") CNTRL^VALM10(.LINE,.COL,$L(TEXT),$G(ON),$G(OFF))
     131 W:'(LINE#5) "."
     132 Q
Note: See TracChangeset for help on using the changeset viewer.