1 | IVMRTSR ;ALB/KCL - Report of IVM Transmissions ; 30 April 1993
|
---|
2 | ;;Version 2.0 ; INCOME VERIFICATION MATCH ;; 21-OCT-94
|
---|
3 | ;
|
---|
4 | EN ; Entry point
|
---|
5 | W !!,"Income Verification Match - Transmission Report"
|
---|
6 | S DIR(0)="S^1:SINGLE DATE REPORT;2:DATE RANGE REPORT"
|
---|
7 | D ^DIR I 'Y!$D(DIRUT) G ENQ
|
---|
8 | S IVMFLG=+Y
|
---|
9 | ;
|
---|
10 | ; Get report run dates
|
---|
11 | D BEG I 'Y!$D(DIRUT) G ENQ
|
---|
12 | I IVMFLG=1 S IVMEND=IVMBEG
|
---|
13 | I IVMFLG=2 D END I 'Y!$D(DIRUT) G ENQ
|
---|
14 | ;
|
---|
15 | ; Select device for queueing/printing report
|
---|
16 | S IVMRTN="SORT^IVMRTSR",ZTDESC="IVM TRANSMISSION REPORT"
|
---|
17 | S ZTSAVE("IVMBEG")="",ZTSAVE("IVMEND")="",ZTSAVE("IVMFLG")=""
|
---|
18 | D ^IVMUTQ
|
---|
19 | ;
|
---|
20 | ENQ ; Cleanup
|
---|
21 | K DA,DIRUT,IVMI,IVMA,IVMC,IVMBEG,IVMDATE,IVMEND,IVMNODE,IVMNODE1,IVMREC,IVMRTN,IVMTRD
|
---|
22 | K X,X1,X2,^TMP("IVMRTSR",$J),IVMSTAT,IVMCNTS
|
---|
23 | Q
|
---|
24 | ;
|
---|
25 | ;
|
---|
26 | BEG ; Enter Begin date for report
|
---|
27 | S DIR(0)="DO^::EX",DIR("A")="Enter "_$S(IVMFLG=2:"Start ",1:"")_"DATE",DIR("?")="^D HELP^%DTC" D ^DIR K DIR G:'Y!$D(DIRUT) BEGQ S IVMBEG=+Y
|
---|
28 | I IVMBEG>DT W !,?5,"Future dates are not allowed.",*7 K IVMBEG G BEG
|
---|
29 | BEGQ Q
|
---|
30 | ;
|
---|
31 | END ; Select ending date for report
|
---|
32 | S DIR(0)="DA^"_IVMBEG_":NOW:EX",DIR("A")="Enter End DATE: ",DIR("?")="^D HELP^%DTC" D ^DIR K DIR S IVMEND=+Y
|
---|
33 | Q
|
---|
34 | ;
|
---|
35 | ;
|
---|
36 | SORT ; Sort data for report
|
---|
37 | K ^TMP("IVMRTSR",$J)
|
---|
38 | S (IVMI,IVMCNT,IVMCNT1,IVMA,IVMC,IVMNIN,IVMIN,IVMCNIN,IVMCIN)=0
|
---|
39 | S IVMTRD=IVMBEG-.1 F S IVMTRD=$O(^IVM(301.6,"ADT",IVMTRD)) Q:'IVMTRD!(IVMTRD>(IVMEND+.9)) S IVMI=0 F S IVMI=$O(^IVM(301.6,"ADT",IVMTRD,IVMI)) Q:'IVMI D
|
---|
40 | .S IVMNODE=$G(^IVM(301.6,IVMI,0)),IVMNODE1=$G(^(1))
|
---|
41 | .S IVMCNT=IVMCNT+1 ; Count the number of transmissions
|
---|
42 | .I '$D(^TMP("IVMRTSR",$J,+IVMNODE)) S IVMCNT1=IVMCNT1+$$RETRANS(+IVMNODE,IVMI,IVMEND) ; Count multiple transmissions
|
---|
43 | .;
|
---|
44 | .; Count the category A's with/without insurance
|
---|
45 | .I $P(IVMNODE1,"^",1)=4,$P(IVMNODE1,"^",2) S IVMIN=IVMIN+1
|
---|
46 | .I $P(IVMNODE1,"^",1)=4,'$P(IVMNODE1,"^",2) S IVMNIN=IVMNIN+1
|
---|
47 | .;
|
---|
48 | .; Now count the category C's with/without insurance
|
---|
49 | .I $P(IVMNODE1,"^",1)=6,'$P(IVMNODE1,"^",2) S IVMCNIN=IVMCNIN+1
|
---|
50 | .I $P(IVMNODE1,"^",1)=6,$P(IVMNODE1,"^",2) S IVMCIN=IVMCIN+1
|
---|
51 | .;
|
---|
52 | .; Determine the transmission status and count
|
---|
53 | .S IVMSTAT=$P(IVMNODE,"^",3)
|
---|
54 | .I IVMSTAT=""!(("^0^1^2^3^")'[("^"_IVMSTAT_"^")) S IVMCNTS("NO")=$G(IVMCNTS("NO"))+1 Q
|
---|
55 | .S IVMCNTS(IVMSTAT)=$G(IVMCNTS(IVMSTAT))+1
|
---|
56 | ;
|
---|
57 | AVG ; If a date range report DO calculations
|
---|
58 | I IVMFLG=2,IVMCNT D
|
---|
59 | .S X1=IVMEND,X2=IVMBEG D ^%DTC S IVMRNG=$G(X)+1 ; Get number of days included in date range
|
---|
60 | .;
|
---|
61 | .S IVMPERA=((IVMIN/IVMCNT)*100),IVMPERC1=((IVMCIN/IVMCNT)*100) ; %A and %C with insurance
|
---|
62 | .S IVMPERB=((IVMNIN/IVMCNT)*100),IVMPERC=((IVMCNIN/IVMCNT)*100) ; %A and %C with no insurance
|
---|
63 | ;
|
---|
64 | ; Call print portion of report
|
---|
65 | D EN^IVMRTSR1
|
---|
66 | ;
|
---|
67 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
68 | D ENQ
|
---|
69 | Q
|
---|
70 | ;
|
---|
71 | RETRANS(IVMDATE,IVMREC,IVMEND) ; Extrinsic function that returns the number of retransmissions for a given IVM TRANSMISSION LOG entry
|
---|
72 | N RESULT,IVMRETR
|
---|
73 | S IVMRETR=0 ; Retransmission counter
|
---|
74 | S ^TMP("IVMRTSR",$J,IVMDATE)=""
|
---|
75 | F S IVMREC=$O(^IVM(301.6,"B",IVMDATE,IVMREC)) Q:'IVMREC D
|
---|
76 | .S RESULT=$P($G(^IVM(301.6,IVMREC,0)),"^",2)
|
---|
77 | .I RESULT<(IVMEND+.9) S IVMRETR=IVMRETR+1
|
---|
78 | Q IVMRETR
|
---|