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/IBCNSP0.m

    r613 r623  
    1 IBCNSP0 ;ALB/AAS - INSURANCE MANAGEMENT - EXPANDED POLICY ;05-MAR-1993
    2         ;;2.0;INTEGRATED BILLING;**28,43,52,85,93,103,137,229,251,363,371**;21-MAR-94;Build 57
    3         ;;Per VHA Directive 2004-038, this routine should not be modified.
    4         ;
    5         ;
    6 CONTACT ; -- Insurance Contact Information
    7         N OFFSET,START
    8         ;
    9         ; The start of this section is designed to start on the same line
    10         ; as the User Information section (see VER^IBCNSP01).
    11         ;
    12         S START=$O(^TMP("IBCNSVP",$J,""),-1)-8
    13         S IB1ST("CONTACT")=START
    14         S OFFSET=42
    15         N IBTRC,IBTRCD,IBTCOD
    16         S IBTCOD=$O(^IBE(356.11,"ACODE",85,0))
    17         ;
    18         S IBTRC=0,IBTRCD=""
    19         F  S IBTRC=$O(^IBT(356.2,"D",DFN,IBTRC)) Q:'IBTRC  D
    20         .Q:$P($G(^IBT(356.2,+IBTRC,1)),"^",5)'=IBCDFN  ; must be same policy
    21         .Q:$P($G(^IBT(356.2,+IBTRC,0)),"^",4)'=IBTCOD  ; must be ins. ver. type
    22         .S IBTRCD=$G(^IBT(356.2,+IBTRC,0))
    23         ;
    24         D SET(START,OFFSET," Insurance Contact (last) ",IORVON,IORVOFF)
    25         D SET(START+1,OFFSET," Person Contacted: "_$$EXPAND^IBTRE(356.2,.06,$P(IBTRCD,"^",6)))
    26         D SET(START+2,OFFSET,"Method of Contact: "_$$EXPAND^IBTRE(356.2,.17,$P(IBTRCD,"^",17)))
    27         D SET(START+3,OFFSET,"  Contact's Phone: "_$$EXPAND^IBTRE(356.2,.07,$P(IBTRCD,"^",7)))
    28         D SET(START+4,OFFSET,"    Call Ref. No.: "_$$EXPAND^IBTRE(356.2,.09,$P(IBTRCD,"^",9)))
    29         D SET(START+5,OFFSET,"     Contact Date: "_$$EXPAND^IBTRE(356.2,.01,$P(IBTRCD,"^")))
    30         ; no blank lines here because the User Information section is on the
    31         ; left and it is bigger than this section
    32         Q
    33         ;
    34 POLICY  ; -- Policy Region
    35         ; -- if pointer to policy file exists get data from policy file
    36         N OFFSET,START,IBP,IBX,IBPLNID,IBPLNNM,IBPLNNA,IBPLNLA
    37         S (IBPLNID,IBPLNNM,IBPLNNA,IBPLNLA)=""
    38         S START=1,OFFSET=2
    39         D GPLAN(+IBCPOLD2)
    40         D SET(START,OFFSET," Plan Information ",IORVON,IORVOFF)
    41         D SET(START+1,OFFSET,"   Is Group Plan: "_$S($P(IBCPOLD,"^",2)=1:"YES",1:"NO"))
    42         D SET(START+2,OFFSET,"      Group Name: "_$P(IBCPOLD,"^",3))
    43         D SET(START+3,OFFSET,"    Group Number: "_$P(IBCPOLD,"^",4))
    44         D SET(START+4,OFFSET,"             BIN: "_$P(IBCPOLD2,"^",2)) ;;Daou/EEN
    45         D SET(START+5,OFFSET,"             PCN: "_$P(IBCPOLD2,"^",3)) ;;04/09/04
    46         D SET(START+6,OFFSET,"    Type of Plan: "_$E($P($G(^IBE(355.1,+$P(IBCPOLD,"^",9),0)),"^"),1,23))
    47         S IBX=7
    48         I $P(IBCPOLD,U,14)]"" D
    49         . D SET(START+IBX,OFFSET,"   Plan Category: "_$$EXPAND^IBTRE(355.3,.14,$P(IBCPOLD,"^",14))) S IBX=IBX+1
    50         I $P(IBCPOLD,U,15)]"" D
    51         . D SET(START+IBX,OFFSET," Electronic Type: "_$$EXPAND^IBTRE(355.3,.15,$P(IBCPOLD,"^",15))) S IBX=IBX+1
    52         D SET(START+IBX,OFFSET,"  Plan Filing TF: "_$P(IBCPOLD,"^",13)) S IBX=IBX+1
    53         ;
    54         D SET(START+IBX,OFFSET,"      ePharmacy Plan ID: "_IBPLNID) S IBX=IBX+1
    55         D SET(START+IBX,OFFSET,"    ePharmacy Plan Name: "_IBPLNNM) S IBX=IBX+1
    56         D SET(START+IBX,OFFSET,"  ePharmacy Natl Status: "_IBPLNNA) S IBX=IBX+1
    57         D SET(START+IBX,OFFSET," ePharmacy Local Status: "_IBPLNLA) S IBX=IBX+1
    58         ;
    59         ; -- in case pointer is missing
    60         I '$G(^IBA(355.3,+$P(IBCDFND,"^",18),0)) D
    61         .D SET(START+1,OFFSET,"Insurance Number: "_$P(IBCDFND,"^",2))
    62         .D SET(START+2,OFFSET,"      Group Name: "_$P(IBCDFND,"^",15))
    63         .D SET(START+3,OFFSET,"    Group Number: "_$P(IBCDFND,"^",3))
    64         .Q
    65         Q
    66         ;
    67 INS     ; -- Insurance Co. Region
    68         N OFFSET,START,IBADD,IBCDFNDA,IBCDFNDB
    69         S START=1,OFFSET=45
    70         D SET(START,OFFSET," Insurance Company ",IORVON,IORVOFF)
    71         D SET(START+1,OFFSET,"   Company: "_$P($G(^DIC(36,+IBCDFND,0)),"^"))
    72         S IBCDFNDA=$G(^DIC(36,+IBCDFND,.11)),IBCDFNDB=$G(^(.13))
    73         G:IBCDFNDA="" INSQ
    74         D SET(START+2,OFFSET,"    Street: "_$P(IBCDFNDA,"^")) S IBADD=1
    75         I $P(IBCDFNDA,"^",2)'="" D SET(START+3,OFFSET,"  Street 2: "_$P(IBCDFNDA,"^",2)) S IBADD=2
    76         I $P(IBCDFNDA,"^",3)'="" D SET(START+4,OFFSET,"  Street 3: "_$P(IBCDFNDA,"^",3)) S IBADD=3
    77         D SET(START+2+IBADD,OFFSET,"City/State: "_$E($P(IBCDFNDA,"^",4),1,15)_$S($P(IBCDFNDA,"^",4)="":"",1:", ")_$P($G(^DIC(5,+$P(IBCDFNDA,"^",5),0)),"^",2)_" "_$E($P(IBCDFNDA,"^",6),1,5))
    78         D SET(START+3+IBADD,OFFSET,"Billing Ph: "_$P(IBCDFNDB,"^",2))
    79         D SET(START+4+IBADD,OFFSET,"Precert Ph: "_$$PHONE^IBCNSC01(IBCDFNDB))
    80         ;
    81 INSQ    Q
    82         ;
    83 SPON    ; -- Sponsor (Insured Person) Region
    84         N IBC3,IBZIP,START,OFFSET,IBA,DA,DR,DIC,DIQ
    85         S IBC3=$G(^DPT(DFN,.312,IBCDFN,3))
    86         S DA=+$P(IBC3,"^",2),DR=.01,DIQ(0)="E",DIC="^DIC(23,",DIQ="IBA" D EN^DIQ1
    87         S START=$O(^TMP("IBCNSVP",$J,""),-1)+1,OFFSET=4
    88         D SET(START,OFFSET," Insured Person's Information (use Subscriber Update Action) ",IORVON,IORVOFF)
    89         D SET(START+1,OFFSET,"    Insured's DOB: "_$$DAT3^IBOUTL($P(IBC3,"^")))
    90         D SET(START+2,OFFSET,"    Insured's Sex: "_$$EXTERNAL^DILFD(2.312,3.12,,$P(IBC3,U,12)))
    91         D SET(START+3,OFFSET," Insured's Branch: "_$G(IBA(23,DA,.01,"E")))
    92         D SET(START+4,OFFSET,"   Insured's Rank: "_$P(IBC3,"^",3))
    93         ;
    94         S OFFSET=43
    95         S Y=$P(IBC3,"^",10) D ZIPOUT^VAFADDR S IBZIP=Y
    96         D SET(START+1,OFFSET," Str 1: "_$P(IBC3,"^",6))
    97         D SET(START+2,OFFSET," Str 2: "_$P(IBC3,"^",7))
    98         D SET(START+3,OFFSET,"  City: "_$P(IBC3,"^",8))
    99         D SET(START+4,OFFSET,"St/Zip: "_$P($G(^DIC(5,+$P(IBC3,"^",9),0)),"^",2)_"  "_IBZIP)
    100         D SET(START+5,OFFSET," Phone: "_$P(IBC3,"^",11))
    101         ;
    102         ; blank lines at end of section
    103         D SET(START+6,2," ")
    104         D SET(START+7,2," ")
    105         Q
    106         ;
    107 BLANK(LINE)     ; -- Build blank line
    108         D SET^VALM10(.LINE,$J("",80))
    109         Q
    110         ;
    111 SET(LINE,COL,TEXT,ON,OFF)       ; -- set display info in array
    112         D:'$D(@VALMAR@(LINE,0)) BLANK(.LINE)
    113         D SET^VALM10(.LINE,$$SETSTR^VALM1(.TEXT,@VALMAR@(LINE,0),.COL,$L(TEXT)))
    114         D:$G(ON)]""!($G(OFF)]"") CNTRL^VALM10(.LINE,.COL,$L(TEXT),$G(ON),$G(OFF))
    115         W:'(LINE#5) "."
    116         Q
    117         ;
    118 GPLAN(IBPLDA)   ; get data from PLAN file (#366.03) related to the
    119         ; GROUP INSURANCE PLAN file (#355.3) and the INSURANCE COMPANY file (#36)
    120         ; that is associated with the PATIENT
    121         ; input - IBPLDA - ien of the PLAN file (#366.03)
    122         N IBPLN0,IBAIEN,IBAPIEN,IBAP0
    123         S IBPLN0=$G(^IBCNR(366.03,IBPLDA,0)) ;; Q:'$P(IBPLN0,"^",3) ;quit if payer not defined
    124         S IBPLNID=$P(IBPLN0,"^"),IBPLNNM=$P(IBPLN0,"^",2)
    125         S IBAIEN=$O(^IBCNR(366.13,"B","E-PHARM","")) Q:'IBAIEN
    126         S IBAPIEN=$O(^IBCNR(366.03,IBPLDA,3,"B",IBAIEN,"")) Q:'IBAPIEN
    127         S IBAP0=$G(^IBCNR(366.03,IBPLDA,3,IBAPIEN,0))
    128         S IBPLNNA=$S($P(IBAP0,"^",2)=0:"NOT ACTIVE",1:"ACTIVE")
    129         S IBPLNLA=$S($P(IBAP0,"^",3)=0:"NOT ACTIVE",1:"ACTIVE")
    130         Q
    131         ;
    132         ;IBCNSP0
     1IBCNSP0 ;ALB/AAS - INSURANCE MANAGEMENT - EXPANDED POLICY  ;05-MAR-1993
     2 ;;2.0;INTEGRATED BILLING;**28,43,52,85,93,103,137,229,251,363**;21-MAR-94;Build 35
     3 ;;Per VHA Directive 2004-038, this routine should not be modified.
     4 ;
     5 ;
     6CONTACT ; -- Insurance Contact Information
     7 N OFFSET,START
     8 S START=41+$G(IBLCNT),OFFSET=42
     9 N IBTRC,IBTRCD,IBTCOD
     10 S IBTCOD=$O(^IBE(356.11,"ACODE",85,0))
     11 ;
     12 S IBTRC=0,IBTRCD=""
     13 F  S IBTRC=$O(^IBT(356.2,"D",DFN,IBTRC)) Q:'IBTRC  D
     14 .Q:$P($G(^IBT(356.2,+IBTRC,1)),"^",5)'=IBCDFN  ; must be same policy
     15 .Q:$P($G(^IBT(356.2,+IBTRC,0)),"^",4)'=IBTCOD  ; must be ins. ver. type
     16 .S IBTRCD=$G(^IBT(356.2,+IBTRC,0))
     17 ;
     18 I '$D(@VALMAR@(START-1)) D SET(START-1,OFFSET,"  ")
     19 D SET(START,OFFSET," Insurance Contact (last) ",IORVON,IORVOFF)
     20 D SET(START+1,OFFSET," Person Contacted: "_$$EXPAND^IBTRE(356.2,.06,$P(IBTRCD,"^",6)))
     21 D SET(START+2,OFFSET,"Method of Contact: "_$$EXPAND^IBTRE(356.2,.17,$P(IBTRCD,"^",17)))
     22 D SET(START+3,OFFSET,"  Contact's Phone: "_$$EXPAND^IBTRE(356.2,.07,$P(IBTRCD,"^",7)))
     23 D SET(START+4,OFFSET,"    Call Ref. No.: "_$$EXPAND^IBTRE(356.2,.09,$P(IBTRCD,"^",9)))
     24 D SET(START+5,OFFSET,"     Contact Date: "_$$EXPAND^IBTRE(356.2,.01,$P(IBTRCD,"^")))
     25 Q
     26 ;
     27POLICY ; -- Policy Region
     28 ; -- if pointer to policy file exists get data from policy file
     29 N OFFSET,START,IBP,IBX,IBPLNID,IBPLNNM,IBPLNNA,IBPLNLA
     30 S (IBPLNID,IBPLNNM,IBPLNNA,IBPLNLA)=""
     31 S START=1,OFFSET=2
     32 D GPLAN(+IBCPOLD2)
     33 D SET(START,OFFSET," Plan Information ",IORVON,IORVOFF)
     34 D SET(START+1,OFFSET,"   Is Group Plan: "_$S($P(IBCPOLD,"^",2)=1:"YES",1:"NO"))
     35 D SET(START+2,OFFSET,"      Group Name: "_$P(IBCPOLD,"^",3))
     36 D SET(START+3,OFFSET,"    Group Number: "_$P(IBCPOLD,"^",4))
     37 D SET(START+4,OFFSET,"             BIN: "_$P(IBCPOLD2,"^",2)) ;;Daou/EEN
     38 D SET(START+5,OFFSET,"             PCN: "_$P(IBCPOLD2,"^",3)) ;;04/09/04
     39 D SET(START+6,OFFSET,"    Type of Plan: "_$E($P($G(^IBE(355.1,+$P(IBCPOLD,"^",9),0)),"^"),1,23))
     40 S IBX=7
     41 I $P(IBCPOLD,U,14)]"" D
     42 . D SET(START+IBX,OFFSET,"   Plan Category: "_$$EXPAND^IBTRE(355.3,.14,$P(IBCPOLD,"^",14))) S IBX=IBX+1
     43 I $P(IBCPOLD,U,15)]"" D
     44 . D SET(START+IBX,OFFSET," Electronic Type: "_$$EXPAND^IBTRE(355.3,.15,$P(IBCPOLD,"^",15))) S IBX=IBX+1
     45 D SET(START+IBX,OFFSET,"  Plan Filing TF: "_$P(IBCPOLD,"^",13)) S IBX=IBX+1
     46 ; -- in case pointer is missing
     47 D SET(START+IBX,OFFSET,"      ePharmacy Plan ID: "_IBPLNID) S IBX=IBX+1
     48 D SET(START+IBX,OFFSET,"    ePharmacy Plan Name: "_IBPLNNM) S IBX=IBX+1
     49 D SET(START+IBX,OFFSET,"  ePharmacy Natl Status: "_IBPLNNA) S IBX=IBX+1
     50 D SET(START+IBX,OFFSET," ePharmacy Local Status: "_IBPLNLA) S IBX=IBX+1
     51 I '$G(^IBA(355.3,+$P(IBCDFND,"^",18),0)) D
     52 .D SET(START+1,OFFSET,"Insurance Number: "_$P(IBCDFND,"^",2))
     53 .D SET(START+2,OFFSET,"      Group Name: "_$P(IBCDFND,"^",15))
     54 .D SET(START+3,OFFSET,"    Group Number: "_$P(IBCDFND,"^",3))
     55 .Q
     56 Q
     57 ;
     58INS ; -- Insurance Co. Region
     59 N OFFSET,START,IBADD,IBCDFNDA,IBCDFNDB
     60 S START=1,OFFSET=45
     61 D SET(START,OFFSET," Insurance Company ",IORVON,IORVOFF)
     62 D SET(START+1,OFFSET,"   Company: "_$P($G(^DIC(36,+IBCDFND,0)),"^"))
     63 S IBCDFNDA=$G(^DIC(36,+IBCDFND,.11)),IBCDFNDB=$G(^(.13))
     64 G:IBCDFNDA="" INSQ
     65 D SET(START+2,OFFSET,"    Street: "_$P(IBCDFNDA,"^")) S IBADD=1
     66 I $P(IBCDFNDA,"^",2)'="" D SET(START+3,OFFSET,"  Street 2: "_$P(IBCDFNDA,"^",2)) S IBADD=2
     67 I $P(IBCDFNDA,"^",3)'="" D SET(START+4,OFFSET,"  Street 3: "_$P(IBCDFNDA,"^",3)) S IBADD=3
     68 D SET(START+2+IBADD,OFFSET,"City/State: "_$E($P(IBCDFNDA,"^",4),1,15)_$S($P(IBCDFNDA,"^",4)="":"",1:", ")_$P($G(^DIC(5,+$P(IBCDFNDA,"^",5),0)),"^",2)_" "_$E($P(IBCDFNDA,"^",6),1,5))
     69 D SET(START+3+IBADD,OFFSET,"Billing Ph: "_$P(IBCDFNDB,"^",2))
     70 D SET(START+4+IBADD,OFFSET,"Precert Ph: "_$$PHONE^IBCNSC01(IBCDFNDB))
     71 ;
     72INSQ Q
     73 ;
     74SPON ; -- Sponsor (Insured Person) Region
     75 N IBC3,IBSSN,IBZIP,START,OFFSET,IBA,DA,DR,DIC,DIQ
     76 S IBC3=$G(^DPT(DFN,.312,IBCDFN,3)),IBSSN=$P(IBC3,"^",5)
     77 S DA=+$P(IBC3,"^",2),DR=.01,DIQ(0)="E",DIC="^DIC(23,",DIQ="IBA" D EN^DIQ1
     78 S START=30,OFFSET=4
     79 D SET(START,OFFSET," Insured Person's Information (use Subscriber Update action) ",IORVON,IORVOFF)
     80 D SET(START+1,OFFSET,"    Insured's DOB: "_$$DAT3^IBOUTL($P(IBC3,"^")))
     81 D SET(START+2,OFFSET," Insured's Branch: "_$G(IBA(23,DA,.01,"E")))
     82 D SET(START+3,OFFSET,"   Insured's Rank: "_$P(IBC3,"^",3))
     83 D SET(START+4,OFFSET,"    Insured's SSN: "_$S(IBSSN]"":$E(IBSSN,1,3)_"-"_$E(IBSSN,4,5)_"-"_$E(IBSSN,6,9),1:""))
     84 ;
     85 S OFFSET=43
     86 S Y=$P(IBC3,"^",10) D ZIPOUT^VAFADDR S IBZIP=Y
     87 D SET(START+1,OFFSET," Str 1: "_$P(IBC3,"^",6))
     88 D SET(START+2,OFFSET," Str 2: "_$P(IBC3,"^",7))
     89 D SET(START+3,OFFSET,"  City: "_$P(IBC3,"^",8))
     90 D SET(START+4,OFFSET,"St/Zip: "_$P($G(^DIC(5,+$P(IBC3,"^",9),0)),"^",2)_"  "_IBZIP)
     91 D SET(START+5,OFFSET," Phone: "_$P(IBC3,"^",11))
     92 Q
     93 ;
     94BLANK(LINE) ; -- Build blank line
     95 D SET^VALM10(.LINE,$J("",80))
     96 Q
     97 ;
     98SET(LINE,COL,TEXT,ON,OFF) ; -- set display info in array
     99 D:'$D(@VALMAR@(LINE,0)) BLANK(.LINE)
     100 D SET^VALM10(.LINE,$$SETSTR^VALM1(.TEXT,@VALMAR@(LINE,0),.COL,$L(TEXT)))
     101 D:$G(ON)]""!($G(OFF)]"") CNTRL^VALM10(.LINE,.COL,$L(TEXT),$G(ON),$G(OFF))
     102 W:'(LINE#5) "."
     103 Q
     104GPLAN(IBPLDA) ; get data from PLAN file (#366.03) related to the
     105 ; GROUP INSURANCE PLAN file (#355.3) and the INSURANCE COMPANY file (#36)
     106 ; that is associated with the PATIENT
     107 ; input - IBPLDA - ien of the PLAN file (#366.03)
     108 N IBPLN0,IBAIEN,IBAPIEN,IBAP0
     109 S IBPLN0=$G(^IBCNR(366.03,IBPLDA,0)) ;; Q:'$P(IBPLN0,"^",3) ;quit if payer not defined
     110 S IBPLNID=$P(IBPLN0,"^"),IBPLNNM=$P(IBPLN0,"^",2)
     111 S IBAIEN=$O(^IBCNR(366.13,"B","E-PHARM","")) Q:'IBAIEN
     112 S IBAPIEN=$O(^IBCNR(366.03,IBPLDA,3,"B",IBAIEN,"")) Q:'IBAPIEN
     113 S IBAP0=$G(^IBCNR(366.03,IBPLDA,3,IBAPIEN,0))
     114 S IBPLNNA=$S($P(IBAP0,"^",2)=0:"NOT ACTIVE",1:"ACTIVE")
     115 S IBPLNLA=$S($P(IBAP0,"^",3)=0:"NOT ACTIVE",1:"ACTIVE")
     116 Q
     117 ;
     118 ;IBCNSP0
Note: See TracChangeset for help on using the changeset viewer.