1 | IVMUFNC2 ;ALB/SEK - INPATIENT/OUTPATIENT CALCULATIONS (CON'T) ; 24-NOV-93
|
---|
2 | ;;2.0;INCOME VERIFICATION MATCH ;**3,11**; 21-OCT-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | EN(IVMQUERY) ; Calculate number of outpatient days
|
---|
6 | ; Input: IVMQUERY("OVIS") - the # of the QUERY this job has open for
|
---|
7 | ; searching for patient's outpatient visits. If null, this QUERY has
|
---|
8 | ; yet been opened. (pass by reference)
|
---|
9 | ;
|
---|
10 | ; - find visits on or after IVMMTDT
|
---|
11 | N IVMQ
|
---|
12 | K ^TMP("DIERR",$J)
|
---|
13 | S IVMQ=$G(IVMQUERY("OVIS"))
|
---|
14 | I $G(IVMQ) D ACTIVE^SDQ(.IVMQ,"FALSE","SET") ;Reset from previous query
|
---|
15 | ;
|
---|
16 | I '$G(IVMQ) D
|
---|
17 | . D OPEN^SDQ(.IVMQ) Q:'$G(IVMQ)
|
---|
18 | . D INDEX^SDQ(.IVMQ,"PATIENT/DATE","SET")
|
---|
19 | . D SCANCB^SDQ(.IVMQ,"I '$D(^TMP($J,""IVMUFNC1"",DFN,SDOE0\1)) D VALENC^IVMUFNC2(SDOE,SDOE0)","SET")
|
---|
20 | . S IVMQUERY("OVIS")=IVMQ
|
---|
21 | ;
|
---|
22 | D PAT^SDQ(.IVMQ,DFN,"SET")
|
---|
23 | D DATE^SDQ(.IVMQ,IVMMTDT\1,IVMENDT,"SET")
|
---|
24 | D ACTIVE^SDQ(.IVMQ,"TRUE","SET")
|
---|
25 | D SCAN^SDQ(.IVMQ,"FORWARD")
|
---|
26 | K ^TMP("DIERR",$J)
|
---|
27 | Q
|
---|
28 | ;
|
---|
29 | VALENC(IVME,IVME0) ; Check for valid outpatient encounter
|
---|
30 | ; Input: IVME = encounter ien
|
---|
31 | ; IVME0 = 0-node of encounter (optional)
|
---|
32 | N IVMZ,IVMD
|
---|
33 | ;
|
---|
34 | I $G(IVME0)="" K ^TMP("DIERR",$J) D GETGEN^SDOE(IVME,"IVMZ") S IVME0=$G(IVMZ(0)) I $D(^TMP("DIERR",$J)) K ^TMP("DIERR",$J) Q
|
---|
35 | ;
|
---|
36 | S IVMD=IVME0\1
|
---|
37 | ;
|
---|
38 | Q:$$IGN^IBEFUNC(+$P(IVME0,U,10),IVMD) ; Not billable appt type
|
---|
39 | Q:$P($G(^SC(+($P(IVME0,U,4)),0)),U,17)="Y" ; non-count clinic
|
---|
40 | Q:$$ENCL(IVME)[1 ; claim exposure
|
---|
41 | S VAINDT=IVMD+.2359 D ADM^VADPT2 Q:VADMVT ; was an inpatient
|
---|
42 | ;
|
---|
43 | S IVMOUT=IVMOUT+1,^TMP($J,"IVMUFNC1",DFN,IVMD)=""
|
---|
44 | Q
|
---|
45 | ;
|
---|
46 | ENCL(IVMIBOE) ; Return classification results for an encounter.
|
---|
47 | ; Input: IVMIBOE -- Pointer to outpatient encounter in file #409.68
|
---|
48 | ; Output: ao^ir^sc^ec, where, for each piece,
|
---|
49 | ; 1 - care was related to condition, and
|
---|
50 | ; 0 (or null) - care not related to condition
|
---|
51 | N CL,CLD,X,Y S Y=""
|
---|
52 | S CL=0 F S CL=$O(^SDD(409.42,"OE",+$G(IVMIBOE),CL)) Q:'CL S CLD=$G(^SDD(409.42,CL,0)) I CLD S $P(Y,"^",+CLD)=+$P(CLD,"^",3)
|
---|
53 | Q Y
|
---|
54 | ;
|
---|
55 | ;
|
---|
56 | END(DFN,IVMPMTD) ; return end date for calculating inpatient/
|
---|
57 | ; outpatient days. this date will be earliest of day before next means
|
---|
58 | ; test and day before current date.
|
---|
59 | ; Input: DFN -- pointer to patient in file #2
|
---|
60 | ; IVMPMTD -- previous means test date
|
---|
61 | ;
|
---|
62 | N X,IVMICY
|
---|
63 | S IVMICY=$$LYR^DGMTSCU1(IVMPMTD)
|
---|
64 | S X=$P($$LST^DGMTCOU1(DFN,($E(IVMICY,1,3)+2)_"1231.9999",3),"^",2)
|
---|
65 | Q $$FMADD^XLFDT($S(X'>IVMPMTD:DT,X>DT:DT,1:X),-1)_.999999
|
---|