| 1 | IVMPTRN1 ;ALB/MLI - Clock routine for testing only ; 04-MAY-93
 | 
|---|
| 2 |  ;;2.0;INCOME VERIFICATION MATCH;**9**; 21-OCT-94
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | START ; start clock                              remove after v1
 | 
|---|
| 7 |  D NOW^%DTC S IVMBEG=%
 | 
|---|
| 8 |  K %
 | 
|---|
| 9 |  Q
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 | STOP ; stop clock, mail bulletin                remove after v1
 | 
|---|
| 13 |  N X,Y ; from DTC call
 | 
|---|
| 14 |  I '$G(IVMGTOT) G STOPQ
 | 
|---|
| 15 |  D NOW^%DTC S IVMEND=%
 | 
|---|
| 16 |  S IVMTEXT(1)="The IVM bulk transmission has completed successfully.",IVMTEXT(2)=" "
 | 
|---|
| 17 |  S IVMTEXT(3)="Start Time:                   "_IVMBEG
 | 
|---|
| 18 |  S IVMTEXT(4)="End Time:                     "_IVMEND
 | 
|---|
| 19 |  S IVMTEXT(5)="Number of Transmissions:      "_IVMGTOT
 | 
|---|
| 20 |  X ^%ZOSF("UCI")
 | 
|---|
| 21 |  S XMTEXT="IVMTEXT(",XMSUB="IVM BULK TRANSMISSION HAS COMPLETED"
 | 
|---|
| 22 |  S XMDUZ=.5,XMY(DUZ)=""
 | 
|---|
| 23 |  D ^XMD
 | 
|---|
| 24 | STOPQ K IVMGBEG,IVMEND,IVMGTOT
 | 
|---|
| 25 |  K XMTEXT,IVMTEXT,XMSUB,XMDUZ,XMY
 | 
|---|
| 26 |  Q
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 | DELMT ; send delete mt transaction if pt no longer meets IVM criteria
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  ; Input - DFN
 | 
|---|
| 32 |  ;         IVMMTDT - date of means test
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 |  N I,IVMIY,X
 | 
|---|
| 35 |  S IVMIY=$$LYR^DGMTSCU1(IVMMTDT)
 | 
|---|
| 36 |  F I=1:1:5,8:1:14 S $P(X,HLFS,I)=HLQ
 | 
|---|
| 37 |  S ^TMP("HLS",$J,HLSDT,IVMCT)="ZMT"_HLFS_X
 | 
|---|
| 38 |  D CLOSE(IVMIY,DFN,2,3) ; set flag to stop future transmissions
 | 
|---|
| 39 |  Q
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 | CLOSE(IVMIY,DFN,IVMCS,IVMCR) ; Close IVM case record for a patient
 | 
|---|
| 43 |  ; Input:    DFN  --  Pointer to the patient in file #2
 | 
|---|
| 44 |  ;         IVMIY  --  Income year of the closed case
 | 
|---|
| 45 |  ;         IVMCS  --  Closure source [1=IVM | 2=DHCP]
 | 
|---|
| 46 |  ;         IVMCR  --  Pointer to the closure reason in file #301.93
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  N DA,DIE,DR,X,Y,EVENTS,STATUS
 | 
|---|
| 49 |  I '$G(IVMIY)!'$G(DFN)!'$G(IVMCS)!'$G(IVMCR) G CLOSEQ
 | 
|---|
| 50 |  S IVMDELMT=1 ; flag indicates deletion
 | 
|---|
| 51 |  S DA=$O(^IVM(301.5,"APT",+DFN,+IVMIY,0))
 | 
|---|
| 52 |  I $G(^IVM(301.5,+DA,0))']"" G CLOSEQ
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 |  ;don't want closing a case to stop transmission of an enrollment event
 | 
|---|
| 55 |  S STATUS=1
 | 
|---|
| 56 |  I ($$STATUS^IVMPLOG(+DA,.EVENTS)=0),EVENTS("ENROLL")=1 S STATUS=0
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 |  D NOW^%DTC S DR=".03////"_STATUS_";.04////1;1.01////"_IVMCR_";1.02////"_IVMCS_";1.03////"_%
 | 
|---|
| 59 |  S DIE="^IVM(301.5," D ^DIE
 | 
|---|
| 60 | CLOSEQ Q
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 | PSEUDO ; strip P from pseudo SSNs before transmitting to IVM
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 |  N X
 | 
|---|
| 66 |  S X=IVMPID_$G(IVMPID(1))
 | 
|---|
| 67 |  S $P(X,HLFS,20)=$E($P(X,HLFS,20),1,9) ; remove P
 | 
|---|
| 68 |  K IVMPID S IVMPID=$E(X,1,245)
 | 
|---|
| 69 |  I $L(X)>245 S IVMPID(1)=$E(X,246,999)
 | 
|---|
| 70 |  Q
 | 
|---|