source: WorldVistAEHR/trunk/r/INCOME_VERIFICATION_MATCH-IVM/IVMUFNC3.m@ 1036

Last change on this file since 1036 was 613, checked in by George Lilly, 15 years ago

initial load of WorldVistAEHR

File size: 2.8 KB
Line 
1IVMUFNC3 ;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 ;
5REV(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
25REVQ Q
26 ;
27ADD(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
38ADDQ Q IVM
39 ;
40 ;
41CHK(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 ;
48FT1(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 ;
69FT1Q Q "FT1"_HLFS_$G(IVMY)
Note: See TracBrowser for help on using the repository browser.