| [613] | 1 | IVMUFNC3 ;ALB/CPM - BILLING TRANSMISSION UTILITIES ; 13-JUN-94 | 
|---|
|  | 2 | ;;Version 2.0 ; INCOME VERIFICATION MATCH ;; 21-OCT-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | REV(IVMREF,DFN,IVMCL,IVMTYP,IVMBF,IVMBT,IVMAB,IVMHLD) ; Interface w/ Rev fct. | 
|---|
|  | 6 | ;  Input:   IVMREF  --  Bill reference number | 
|---|
|  | 7 | ;              DFN  --  Pointer to the patient in file #2 | 
|---|
|  | 8 | ;            IVMCL  --  Bill Classification [ 1-Inpt, 2-Opt ] | 
|---|
|  | 9 | ;           IVMTYP  --  Bill Type [ 2-Copayment, 3-Per Diem ] | 
|---|
|  | 10 | ;            IVMBF  --  Bill From Date in FM format | 
|---|
|  | 11 | ;            IVMBT  --  Bill To Date in FM format | 
|---|
|  | 12 | ;            IVMAB  --  Amount Billed | 
|---|
|  | 13 | ;           IVMHLD  --  Charge placed on hold? [ 1-Yes, 0-No ] | 
|---|
|  | 14 | ; | 
|---|
|  | 15 | ; Output:   New entry created in file #301.61 | 
|---|
|  | 16 | ; | 
|---|
|  | 17 | N IVMTDA,DA,DIK | 
|---|
|  | 18 | I $G(IVMREF)=""!'$G(DFN) G REVQ | 
|---|
|  | 19 | S IVMTDA=$O(^IVM(301.61,"B",IVMREF,0)) | 
|---|
|  | 20 | I 'IVMTDA S IVMTDA=$$ADD(IVMREF) I 'IVMTDA G REVQ | 
|---|
|  | 21 | ; | 
|---|
|  | 22 | D NOW^%DTC | 
|---|
|  | 23 | S $P(^IVM(301.61,IVMTDA,0),"^",2,12)=DFN_"^"_IVMCL_"^"_IVMTYP_"^"_IVMBF_"^"_IVMBT_"^"_$S($G(IVMHLD):"",1:DT)_"^"_IVMAB_"^^^^"_$S($G(IVMHLD):0,1:1),$P(^(1),"^",3,4)=%_"^"_DUZ | 
|---|
|  | 24 | S DA=IVMTDA,DIK="^IVM(301.61," D IX1^DIK | 
|---|
|  | 25 | REVQ Q | 
|---|
|  | 26 | ; | 
|---|
|  | 27 | ADD(X) ; Add a new entry to file #301.61 | 
|---|
|  | 28 | ;  Input:     X  --  Reference number to be used as the .01 field | 
|---|
|  | 29 | ;  Output:  IVM  --  Internal entry number to new entry, or 0. | 
|---|
|  | 30 | ; | 
|---|
|  | 31 | N DA,DD,DO,DIE,DIC,DLAYGO,IVM,Y | 
|---|
|  | 32 | I $G(X)="" S IVM=0 G ADDQ | 
|---|
|  | 33 | S DIC="^IVM(301.61,",DIC(0)="L",DLAYGO=301.61 D FILE^DICN | 
|---|
|  | 34 | S (DA,IVM)=+Y I DA<0 S IVM=0 G ADDQ | 
|---|
|  | 35 | ; | 
|---|
|  | 36 | D NOW^%DTC | 
|---|
|  | 37 | S DIE=DIC,DR="1.01////"_%_";1.02////"_DUZ D ^DIE | 
|---|
|  | 38 | ADDQ Q IVM | 
|---|
|  | 39 | ; | 
|---|
|  | 40 | ; | 
|---|
|  | 41 | CHK(DFN) ; Is the insurance patient recorded in file #301.61? | 
|---|
|  | 42 | ;  Input:   DFN  --  Pointer to the patient in file #2 | 
|---|
|  | 43 | ; Output:     1  --  Patient recorded in #301.61; otherwise, 0 | 
|---|
|  | 44 | ; | 
|---|
|  | 45 | Q $O(^IVM(301.61,"C",+$G(DFN),0))>0 | 
|---|
|  | 46 | ; | 
|---|
|  | 47 | ; | 
|---|
|  | 48 | FT1(IVMTDA) ; Entry point to build FT1 segment from file #301.61 | 
|---|
|  | 49 | ;  Input:  IVMTDA  --  Pointer to the transmission record in #301.61 | 
|---|
|  | 50 | ;          The HL7 variables HLFS, HLQ and HLECH must also be defined | 
|---|
|  | 51 | ; Output:  String in the form of the HL7 FT1 segment | 
|---|
|  | 52 | ; | 
|---|
|  | 53 | N IVMN,IVMY,IVMSEP | 
|---|
|  | 54 | I '$G(IVMTDA) G FT1Q | 
|---|
|  | 55 | S IVMN=$G(^IVM(301.61,IVMTDA,0)) I IVMN="" G FT1Q | 
|---|
|  | 56 | S IVMSEP=$E(HLECH) | 
|---|
|  | 57 | ; | 
|---|
|  | 58 | S $P(IVMY,HLFS,1)=1 ; set id | 
|---|
|  | 59 | S $P(IVMY,HLFS,4)=$S($P(IVMN,"^",7):$$HLDATE^HLFNC($P(IVMN,"^",7)),1:HLQ) ; date generated | 
|---|
|  | 60 | S $P(IVMY,HLFS,6)=$S($P(IVMN,"^",11):2,$P(IVMN,"^",10)&$P(IVMN,"^",13):4,$P(IVMN,"^",9)&$P(IVMN,"^",13):3,1:1) ; transaction type | 
|---|
|  | 61 | S $P(IVMY,HLFS,7)=$P(IVMN,"^") ; transaction code | 
|---|
|  | 62 | ; | 
|---|
|  | 63 | ; - build extended transaction description | 
|---|
|  | 64 | S $P(IVMY,HLFS,9)=$P(IVMN,"^",3)_IVMSEP_$P(IVMN,"^",4)_IVMSEP_$S($P(IVMN,"^",5):$$HLDATE^HLFNC($P(IVMN,"^",5)),1:HLQ)_IVMSEP_$S($P(IVMN,"^",6):$$HLDATE^HLFNC($P(IVMN,"^",6)),1:HLQ) | 
|---|
|  | 65 | ; | 
|---|
|  | 66 | ; - build extended transaction amount | 
|---|
|  | 67 | S $P(IVMY,HLFS,11)=$S($P(IVMN,"^",10)&$P(IVMN,"^",13):+$P(IVMN,"^",9),$P(IVMN,"^",9)&$P(IVMN,"^",13):$P(IVMN,"^",9),1:$P(IVMN,"^",8)) | 
|---|
|  | 68 | ; | 
|---|
|  | 69 | FT1Q Q "FT1"_HLFS_$G(IVMY) | 
|---|