Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: IBCNRDV

IBCNRDV.m

Go to the documentation of this file.
  1. IBCNRDV ;OAKFO/ELZ - INSURANCE INFORMATION EXCHANGE VIA RDV ;27-MAR-03
  1. ;;2.0;INTEGRATED BILLING;**214,231,361,371,452,593,631,664,763**;21-MAR-94;Build 29
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ; This routine is used to exchange insurance information between
  1. ; facilities.
  1. OPT ; Menu option entry point. This is used to select a patient to request
  1. ; information about from the remote treating facilities.
  1. ;IB*2.0*664/TAZ - Add CTR to New List
  1. N CTR,DFN,DIC,X,Y,DTOUT,DUOUT,IBT,%,%Y,IBX,VADM,IBB,IBD,IBFASTXT,IBH,IBI,IBICN,IBR,IBRZ,IBX,IBY,IBZ,IBWAIT,IBL,DO,IBTYPE,IB1
  1. ;
  1. ; prompt for patient
  1. AGAIN S DIC="^DPT(",DIC(0)="AEMNQ" D ^DIC Q:Y<1 S DFN=+Y
  1. ;
  1. BACKGND ; background/tasked entry point
  1. ; IBTYPE is being used as a flag to indicate this is running in background
  1. ;
  1. ;IB*763/TAZ - Check Insurance Import Enabled flag and quit if not enabled.
  1. ; for background jobs only
  1. I $D(IBTYPE),'$$GET1^DIQ(350.9,"1,",54.01,"I") Q
  1. ;
  1. ; look up treating facilities
  1. K IBT S IBT=$$TFL^IBARXMU(DFN,.IBT)
  1. I IBT<1,'$D(IBTYPE) W !!,"This patient has no remote treating facilities to query." G AGAIN
  1. I IBT<1 Q
  1. ;
  1. ; display and verify we want to do this
  1. I '$D(IBTYPE) D DEM^VADPT W !!,"The patient ",VADM(1)," has the following ",IBT," remote facilitie(s)",! S IBX=0 F S IBX=$O(IBT(IBX)) Q:IBX<1 W !?10,$P(IBT(IBX),"^",2)
  1. I '$D(IBTYPE) W !!,"Do you want to perform this Remote Query" S %=1 D YN^DICN G:%'=1 AGAIN
  1. ;
  1. ; get ICN
  1. S IBICN=$$ICN^IBARXMU(DFN) I 'IBICN,'$D(IBTYPE) W !!,"No ICN for this patient" G AGAIN
  1. I 'IBICN Q
  1. ;
  1. ; sent off the remote queries and get back handles
  1. S IBX=0 F S IBX=$O(IBT(IBX)) Q:IBX<1 D
  1. . D SEND(.IBH,IBX,IBICN,$S($D(IBTYPE):"IBCN INSURANCE QUERY TASK",1:"IBCN INSURANCE QUERY"))
  1. . X $S(IBH(0)'="":"S $P(IBT(IBX),U,5)=IBH(0)",1:"W:'$D(IBTYPE) !,""No handle returned for "",$P(IBT(IBX),U,2) K IBT(IBX)")
  1. ;
  1. ; no handles returned
  1. I $D(IBT)<9,'$D(IBTYPE) W !!,"Unable to perform any remote queries.",! G AGAIN
  1. I $D(IBT)<9 Q
  1. ;
  1. ;Create Duplicate Check Index
  1. ;IB*2.0*664/TAZ - Only build index for Background calls
  1. I $D(IBTYPE) D INDEX(DFN)
  1. ;
  1. ; go through every IBT()
  1. S IBP="|",IBX=0 F S IBX=$O(IBT(IBX)) Q:IBX<1!($D(IBT)<9) D
  1. . ;
  1. . ; do I have a return data.
  1. . F IBWAIT=1:1:60 W:'$D(IBTYPE) "." H 1 D CHECK(.IBR,$P(IBT(IBX),"^",5)) I $G(IBR(0))["Done" Q
  1. . I $G(IBR(0))'["Done" W:'$D(IBTYPE) !!,"Unable to communicate with ",$P(IBT(IBX),U,2) Q
  1. . K IBR
  1. . D RETURN(.IBR,$P(IBT(IBX),"^",5))
  1. . ;
  1. . ; no data returned or error message
  1. . S IBRZ=$S(-1=+$G(IBR):IBR,$G(IBR(0))="":$G(IBR(1)),1:$G(IBR(0)))
  1. . ;
  1. . ; no info to proceed
  1. . I IBRZ<1 W:'$D(IBTYPE) !,"Response from ",$P(IBT(IBX),U,2),!,$P(IBRZ,"^",2) K IBT(IBX) D:IBRZ="-1^No insurance on file" FILE(0) Q
  1. . ;
  1. . ; received insurance info, need to file and display message
  1. . W:'$D(IBTYPE) !,"Received ",$G(IBR(0))," insurance companies from ",$P(IBT(IBX),U,2) D FILE(+IBR(0))
  1. . ;
  1. . S IBY=0 F S IBY=$O(IBR(IBY)) Q:IBY<1 D
  1. .. F IBL=5:1 S IBT=$P($T(MAP+IBL),";",3) Q:IBT="" D
  1. ... ;
  1. ... ; am I on the right MAP line
  1. ... ;IB*2.0*631/TAZ - Insurance data comes in multiples of 7
  1. ... I $P(IBT,IBP,3)=$S(IBY#7:IBY#7,1:7) S IBZ=$P(IBR(IBY),"^",$P(IBT,IBP,4)) I $L(IBZ) D
  1. .... ;
  1. .... ; execute code to change external to internal
  1. .... X:$L($P(IBT,IBP,7)) $P(IBT,IBP,7)
  1. .... ;
  1. .... ; put the info in the array for the buffer file
  1. .... S:$D(IBZ) IBB($P(IBT,IBP,5))=IBZ
  1. .. ;
  1. .. ; file in the buffer file & where else needed
  1. .. ;IB*2.0*631/TAZ - File on the 7th multiple line (i.e. 7,14,21...)
  1. .. I IBY#7=0 D
  1. ... I $L($G(IBB(20.01))) D
  1. .... N IBOK S IBOK=1
  1. .... S IBB(.14)=$$IEN^XUAF4(+IBT(IBX))
  1. .... S IBB(.03)=$O(^IBE(355.12,"C","INSURANCE IMPORT",""))
  1. .... D VCHECK(.IBB) I 'IBOK Q
  1. .... ;IB*2.0*664/TAZ - Set up ^TMP Array for input to ListMan screen if interactive
  1. .... I '$D(IBTYPE) D Q
  1. ..... S CTR=$O(^TMP($J,"IBCNRDV",""),-1)+1
  1. ..... M ^TMP($J,"IBCNRDV",CTR)=IBB
  1. .... S IBB=$$ADDSTF^IBCNBES($G(IBB(.03),1),DFN,.IBB)
  1. .... ;IB*2.0*664/TAZ - Moved the following line into this dotted Do struction since it only executed if $L($G(IBB(20.01)))
  1. .... I '$D(IB1),$D(IBTYPE) D SCH^IBTUTL2(DFN,$G(IBSAVEI),$G(IBSAVEJ)):IBTYPE="TRKR",ADM^IBTUTL($G(IBSAVE1),$G(IBSAVE2),$G(IBSAVE3),$G(IBSAVE4)):IBTYPE="ADM" S IB1=1
  1. ... K IBB
  1. ;
  1. ;IB*2.0*664/TAZ - Branch to ListMan screen if interactive
  1. I '$D(IBTYPE),$D(^TMP($J,"IBCNRDV")) H 3 D EN^IBCNRDV1
  1. ;
  1. ; flag so I don't do this patient again within 90 days
  1. S ^IBT(356,"ARDV",DFN,$$FMADD^XLFDT(DT,90))=""
  1. ;
  1. ; Clean up ^TMP global
  1. K ^TMP($J,"IBCNRDV")
  1. ;
  1. Q
  1. ;
  1. VCHECK(IBB) ; Check to make sure the record is not duplicate and passes validity check.
  1. ;
  1. ;Check for duplicates
  1. ;IB*2.0*664/TAZ - Only check for duplicates when processing in background
  1. I $D(IBTYPE),$$DUP(.IBB) S IBOK=0 G VCHECKX
  1. ; Validate entries to insure we are only getting the data we want.
  1. I '$$VALID(.IBB) S IBOK=0 G VCHECKX
  1. ;IB*2.0*664/TAZ - Only add to INDEX for background processing
  1. I '$D(IBTYPE) G VCHECKX
  1. ;Add to index
  1. N IBDOB,IBGRP,IBINSNM,IBNAME,IBSUBID
  1. S IBINSNM=$G(IBB(20.01)) I IBINSNM']"" S IBINSNM=" "
  1. S IBGRP=$G(IBB(40.03)) I IBGRP']"" S IBGRP=" "
  1. S IBSUBID=$G(IBB(60.04)) I IBSUBID']"" S IBSUBID=" "
  1. S IBNAME=$P($G(IBB(60.07))," ") I IBNAME']"" S IBNAME=" " ;Only match on LAST,FIRST
  1. S IBDOB=$G(IBB(60.08)) I 'IBDOB S IBDOB=" "
  1. S ^TMP("IBCNRDV",$J,IBINSNM,IBGRP,IBSUBID,IBNAME,IBDOB)=""
  1. ;
  1. VCHECKX ;
  1. Q
  1. ;
  1. INDEX(DFN) ;
  1. K ^TMP("IBCNRDV",$J)
  1. N IBBUFDA,IBIEN
  1. ; From Buffer
  1. S IBBUFDA=0
  1. F S IBBUFDA=$O(^IBA(355.33,"C",DFN,IBBUFDA)) Q:'IBBUFDA D
  1. . N IBDOB,IBGRP,IBINSNM,IBNAME,IBSUBID
  1. . S IBINSNM=$$GET1^DIQ(355.33,IBBUFDA_",","INSURANCE COMPANY NAME") I IBINSNM']"" S IBINSNM=" "
  1. . S IBGRP=$$GET1^DIQ(355.33,IBBUFDA_",","GROUP NUMBER") I IBGRP']"" S IBGRP=" "
  1. . S IBSUBID=$$GET1^DIQ(355.33,IBBUFDA_",","SUBSCRIBER ID") I IBSUBID']"" S IBSUBID=" "
  1. . S IBNAME=$P($$GET1^DIQ(355.33,IBBUFDA_",","NAME OF INSURED")," ") I IBNAME']"" S IBNAME=" " ;Only match on LAST,FIRST
  1. . S IBDOB=$$GET1^DIQ(355.33,IBBUFDA_",","INSURED'S DOB","I") I 'IBDOB S IBDOB=" "
  1. . S ^TMP("IBCNRDV",$J,IBINSNM,IBGRP,IBSUBID,IBNAME,IBDOB)=""
  1. ; From active Insurance
  1. K IBINS
  1. D ALL^IBCNS1(DFN,"IBINS",2) ; Get all active insurance
  1. I $G(IBINS(0)) S IBIEN=0 F S IBIEN=$O(IBINS(IBIEN)) Q:'IBIEN D
  1. . N IBDOB,IBGRP,IBINSIEN,IBINSNM,IBNAME,IBSUBID
  1. . S IBINSIEN=+$P($G(IBINS(IBIEN,0)),U,1)
  1. . S IBINSNM=$$GET1^DIQ(36,IBINSIEN_",","NAME") I IBINSNM']"" S IBINSNM=" "
  1. . S IBGRP=$P($G(IBINS(IBIEN,355.3)),U,4) I IBGRP']"" S IBGRP=" "
  1. . S IBSUBID=$P($G(IBINS(IBIEN,7)),U,2) I IBSUBID']"" S IBSUBID=" "
  1. . S IBNAME=$P($P($G(IBINS(IBIEN,7)),U)," ") I IBNAME']"" S IBNAME=" "
  1. . S IBDOB=$P($G(IBINS(IBIEN,3)),U) I 'IBDOB S IBDOB=" "
  1. . S ^TMP("IBCNRDV",$J,IBINSNM,IBGRP,IBSUBID,IBNAME,IBDOB)=""
  1. K IBINS
  1. ;
  1. Q
  1. ;
  1. RPC(IBD,IBICN) ; RPC entry for looking up insurance info
  1. N DFN,IBZ,IBX,IBY,IBP,IBI,IBT,IBZ
  1. S DFN=$$DFN^IBARXMU(IBICN) I 'DFN S IBD(0)="-1^ICN Not found" Q
  1. D ALL^IBCNS1(DFN,"IBY",3)
  1. I '$D(IBY) S IBD(0)="-1^No insurance on file" Q
  1. ; set up return format
  1. ; IBD(0) = # of insurance companies
  1. S IBD(0)=$G(IBY(0))
  1. ;
  1. ; where n starts at 1 and increments to 7 for each insurance company
  1. ; IBD(n) = 355.33, zero node format
  1. ; IBD(n+1) = 355.33, 20 node format
  1. ; IBD(n+2) = 355.33, 21 node format
  1. ; IBD(n+3) = 355.33, 40 node format
  1. ; IBD(n+4) = 355.33, 60 node format
  1. ; IBD(n+5) = 355.33, 61 node format
  1. ; IBD(n+6) = 355.33, 62 node format
  1. ;
  1. S IBP="|"
  1. S IBI=0 F S IBI=$O(IBY(IBI)) Q:IBI<1 F IBL=5:1 S IBT=$P($T(MAP+IBL),";",3) Q:IBT="" D
  1. . S IBZ=$P($G(IBY(IBI,+IBT)),"^",$P(IBT,IBP,2)) ; set the existing data
  1. . I $L($P(IBT,IBP,6)) X $P(IBT,IBP,6) ; output transform
  1. . S $P(IBD(IBI-1*7+$P(IBT,IBP,3)),"^",$P(IBT,IBP,4))=IBZ ; set data IBD
  1. Q
  1. ;
  1. MAP ; this is a mapping of data returned from ALL^IBCNS1 to the buffer file
  1. ; format is: node number | piece | extract node | extract piece
  1. ; | 355.33 field number | format out code (if any)
  1. ; | format in code (if any)
  1. ; the extract nodes will be sequential to match buffer file DD
  1. ;;0|1|2|1|20.01|N Z X "F Z=0,.11,.13 S IBY(IBI,36+Z)=$G(^DIC(36,IBZ,Z))" S IBZ=$P(IBY(IBI,36),"^");ins co name
  1. ;;0|2|5|4|60.04;subscriber id
  1. ;;0|4|5|3|60.03;experation date
  1. ;;0|6|5|5|60.05;who's insurance
  1. ;;0|8|5|2|60.02;effective date
  1. ;;0|16|5|6|60.06;pt relationship to insured
  1. ;;0|17|5|7|60.07;name of insured
  1. ;;0|20|5|12|60.12;coordination of benefits
  1. ;;1|1|1|1|.01||I IBZ<$$FMADD^XLFDT(DT,-180) K IBZ;date entered ;IB*593/TAZ
  1. ;;1|3|1|10|.1||I IBZ<$$FMADD^XLFDT(DT,-180) K IBZ;date (last) verified
  1. ;;1|9|1|3|.03||S IBZ=$O(^IBE(355.12,"C","INSURANCE IMPORT",""));source of information ; Patch #593 Set to INSPT
  1. ;;2|1|6|5|61.05;send bill to employer
  1. ;;2|2|6|6|61.06;employer claims street address (line 1)
  1. ;;2|3|6|7|61.07;employer claims street address line 2
  1. ;;2|4|6|8|61.08;employer claims street address line 3
  1. ;;2|5|6|9|61.09;employer claims city
  1. ;;2|6|6|10|61.1|S IBZ=$$EXTERNAL^DILFD(2.312,2.06,"",IBZ)|N DIC,X,Y S DIC="^DIC(5,",X=IBZ,DIC(0)="OX" D ^DIC K:+Y<1 IBZ S:+Y>0 IBZ=+Y;employer claims state
  1. ;;2|7|6|11|61.11;employer claims zip code
  1. ;;2|8|6|12|61.12;employer claims phone
  1. ;;2|10|6|1|61.01;esghp
  1. ;;2|11|6|3|61.03;employment status
  1. ;;2|12|6|4|61.04;retirement date
  1. ;;3|1|5|8|60.08;insured's dob
  1. ;;3|5|5|9|60.09;insured's ssn
  1. ;;3|12|5|13|60.13;insured's sex
  1. ;;4|1|5|10|60.1;primary care provider
  1. ;;4|2|5|11|60.11;primary provider phone
  1. ;;4|5|5|15|60.15;pharmacy relationship code
  1. ;;4|6|5|16|60.16;pharmacy person code
  1. ;;5|1|7|1|62.01;patient id
  1. ;;355.3|2|4|1|40.01;is this a group policy
  1. ;;355.3|3|4|2|40.02;group name
  1. ;;355.3|4|4|3|40.03;group number
  1. ;;355.3|5|4|4|40.04;(is) utilization required
  1. ;;355.3|6|4|5|40.05;(is) pre-certification required
  1. ;;355.3|7|4|7|40.07;exclude pre-existing condition
  1. ;;355.3|8|4|8|40.08;benefits assignable
  1. ;;355.3|9|4|9|40.09;type of plan
  1. ;;355.3|12|4|6|40.06;ambulatory care certification
  1. ;;36|2|2|5|20.05;reimburse
  1. ;;36.11|1|3|1|21.01;street address line 1
  1. ;;36.11|2|3|2|21.02;street address line 2
  1. ;;36.11|3|3|3|21.03;street address line 3
  1. ;;36.11|4|3|4|21.04;city
  1. ;;36.11|5|3|5|21.05|S IBZ=$$EXTERNAL^DILFD(36,.115,"",IBZ)|N DIC,X,Y S DIC="^DIC(5,",X=IBZ,DIC(0)="OX" D ^DIC K:+Y<1 IBZ S:+Y>0 IBZ=+Y;state
  1. ;;36.11|6|3|6|21.06;zip code
  1. ;;36.13|1|2|2|20.02;phone number
  1. ;;36.13|2|2|3|20.03;billing phone number
  1. ;;36.13|3|2|4|20.04;precertification phone number
  1. ;;
  1. ;
  1. SEND(IBH,IBX,IBICN,IBRPC) ; called to send off queries
  1. D EN1^XWB2HL7(.IBH,IBX,IBRPC,"",IBICN)
  1. Q
  1. ;
  1. CHECK(IBR,IBH) ; called to check the return status of an RPC
  1. D RPCCHK^XWB2HL7(.IBR,IBH)
  1. Q
  1. ;
  1. RETURN(IBR,IBH) ; called to get the return data and clear the broker
  1. N IBZ
  1. D RTNDATA^XWBDRPC(.IBR,IBH),CLEAR^XWBDRPC(.IBZ,IBH)
  1. Q
  1. ;
  1. TASK ; queue off task job
  1. N ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTSK,ZTSAVE
  1. S ZTRTN="BACKGND^IBCNRDV",ZTDESC="Query Remote Facilities for Insurance",ZTDTH=$$FMADD^XLFDT($$NOW^XLFDT),(ZTIO,ZTSAVE("DFN"),ZTSAVE("IBSAVE*"),ZTSAVE("IBTYPE"))="" D ^%ZTLOAD
  1. Q
  1. ;
  1. TRKR(DFN,IBSAVEI,IBSAVEJ,IBDUZ) ; claims tracking entry
  1. N IBTYPE,IBT
  1. Q:$D(^IBT(356,"ARDV",DFN)) ; have already done recently
  1. Q:'$$TFL^IBARXMU(DFN,.IBT) ; no remote facilities
  1. S IBTYPE="TRKR" D
  1. . I DUZ=.5 N DUZ S DUZ=+$G(IBDUZ),DUZ(2)=+$$SITE^VASITE
  1. . D TASK
  1. Q
  1. ;
  1. ADM(DFN,IBSAVE1,IBSAVE2,IBSAVE3,IBSAVE4) ; admit event entry
  1. N IBTYPE S IBTYPE="ADM" D TASK
  1. Q
  1. ;
  1. FILE(IBX) ; updates data into the log file
  1. ;IBX = number of insurance co's found
  1. N DIC,DA,DIE,IBM,DO,X,Y,IBZ,DR
  1. S IBM=$E($$DT^XLFDT,1,5)_"00",DA=+$O(^IBA(355.34,"B",IBM,0))
  1. I 'DA K DA L +^IBA(355.34,"B",IBM):10 S X=IBM,DIC="^IBA(355.34,",DIC(0)="F" D FILE^DICN S DA=+Y L -^IBA(355.34,"B",IBM)
  1. L +^IBA(355.34,DA):10
  1. S IBZ=^IBA(355.34,DA,0),DIE="^IBA(355.34,"
  1. S DR=".02///"_($P(IBZ,"^",2)+1)_";.03///"_($P(IBZ,"^",3)+IBX) D ^DIE
  1. L -^IBA(355.34,DA)
  1. Q
  1. ;
  1. VALID(IBARY) ; Check for invalid entries in the incoming data
  1. ;Screen for Active Policy
  1. ;Screen for EXPIRATION DATE - Don't file expired policies
  1. N DATA,EXCLUDE,IBEFFDT,IBEXPDT,IBTOP,LN,TAG,VALID
  1. S VALID=1
  1. ; Check for expired policy
  1. S IBEXPDT=$G(IBARY(60.03))
  1. I IBEXPDT'="",($$FMDIFF^XLFDT(DT,IBEXPDT,1)>0) S VALID=0 G VALIDQ
  1. I IBEXPDT="" D I 'VALID G VALIDQ
  1. . ;Use LAST VERIFIED
  1. . I $G(IBARY(.1)) D Q
  1. .. I $$FMDIFF^XLFDT(DT,IBARY(.1),1)>730 S VALID=0 ;POLICY GREATER THAN 2 YEARS OLD.
  1. . ;Use Date Entered
  1. . I $G(IBARY(.01)),$$FMDIFF^XLFDT(DT,$G(IBARY(.01)),1)>730 S VALID=0 ;POLICY GREATER THAN 2 YEARS OLD.
  1. ;
  1. ;Screen EFFECTIVE DATE - Cannot be blank or future
  1. S IBEFFDT=$G(IBARY(60.02))
  1. I IBEFFDT="" S VALID=0 G VALIDQ ;BLANK EFFECTIVE DATE IS INVALID
  1. I IBEFFDT'="",($$FMDIFF^XLFDT(DT,IBEFFDT,1)<0) S VALID=0 G VALIDQ ;FUTURE EFFECTIVE DATE IS INVALID
  1. ;
  1. ;Screen Type of Plan
  1. S EXCLUDE="^"
  1. F LN=2:1 S TAG="EXCTOP+"_LN,DATA=$P($T(@TAG),";;",2) Q:DATA="" S EXCLUDE=EXCLUDE_$$FIND1^DIC(355.1,"","X",DATA)_"^"
  1. S IBTOP=$G(IBARY(40.09))
  1. I IBTOP'="",$F(EXCLUDE,(U_IBTOP_U)) S VALID=0 G VALIDQ
  1. ;
  1. ; Re-Initialize variables for filing.
  1. S IBARY(.01)=DT ;Set DATE ENTERED = today's date
  1. S IBARY(.02)="" ;Set ENTERED BY = NULL
  1. S IBARY(.1)="" ;Set DATE VERIFIED = NULL
  1. S IBARY(.11)="" ;Set VERIFIED BY = NULL
  1. ;
  1. VALIDQ ;
  1. I 'VALID K IBARY
  1. Q VALID
  1. ;
  1. DUP(IBARY) ; Check for duplicate in the incoming data
  1. N IBDOB,IBGRP,IBINSNM,IBNAME,IBSUBID
  1. S IBINSNM=$G(IBARY(20.01)) I IBINSNM']"" S IBINSNM=" "
  1. S IBGRP=$G(IBARY(40.03)) I IBGRP']"" S IBGRP=" "
  1. S IBSUBID=$G(IBARY(60.04)) I IBSUBID']"" S IBSUBID=" "
  1. S IBNAME=$P($G(IBARY(60.07))," ") I IBNAME']"" S IBNAME=" " ;Only match on LAST,FIRST
  1. S IBDOB=$G(IBARY(60.08)) I 'IBDOB S IBDOB=" "
  1. Q $D(^TMP("IBCNRDV",$J,IBINSNM,IBGRP,IBSUBID,IBNAME,IBDOB))
  1. ;
  1. EXCTOP ;Plan Types to Exclude
  1. ;
  1. ;;ACCIDENT AND HEALTH INSURANCE
  1. ;;AUTOMOBILE
  1. ;;AVIATION TRIP INSURANCE
  1. ;;CATASTROPHIC INSURANCE
  1. ;;COINSURANCE
  1. ;;DUAL COVERAGE
  1. ;;HOSPITAL-MEDICAL INSURANCE
  1. ;;INCOME PROTECTION (INDEMNITY)
  1. ;;KEY-MAN HEALTH INSURANCE
  1. ;;MAJOR MEDICAL EXPENSE INSURANCE
  1. ;;MEDI-CAL
  1. ;;MEDICAID
  1. ;;MEDICARE/MEDICAID (MEDI-CAL)
  1. ;;NO-FAULT INSURANCE
  1. ;;QUALIFIED IMPAIRMENT INSURANCE
  1. ;;SPECIAL CLASS INSURANCE
  1. ;;SPECIAL RISK INSURANCE
  1. ;;SPECIFIED DISEASE INSURANCE
  1. ;;TORT FEASOR
  1. ;;WORKERS' COMPENSATION INSURANCE
  1. ;