1 | IVMLSU ;ALB/MLI/KCL - IVM SSA/SSN UPLOAD ; 28-MAY-93
|
---|
2 | ;;Version 2.0 ; INCOME VERIFICATION MATCH ;**2**; 21-OCT-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ; This routine will be used to upload SSN's for a veteran and/or
|
---|
6 | ; the veteran's spouse. These SSN's were suggested by SSA after
|
---|
7 | ; checking the date of birth, sex, and name of the person. They
|
---|
8 | ; are not automatically uploaded, but allow the user to upload
|
---|
9 | ; or purge them if they so choose.
|
---|
10 | ;
|
---|
11 | EN ; - Main entry point for IVML SSN UPDATE
|
---|
12 | D BLD
|
---|
13 | ;
|
---|
14 | ; - if no entries exist in "ASEG" x-ref Quit
|
---|
15 | I IVMCT=0 G EXIT
|
---|
16 | D EN^VALM("IVM SSN UPDATE")
|
---|
17 | Q
|
---|
18 | ;
|
---|
19 | ;
|
---|
20 | BLD ; - Build array of patients with suggested SSN's for uploading
|
---|
21 | N IVMI,IVMJ
|
---|
22 | S IVMCT=0
|
---|
23 | K ^TMP("IVMUP",$J)
|
---|
24 | W !,"Building list for display..."
|
---|
25 | ;
|
---|
26 | ; - change if HL7 seg sep ever changes!
|
---|
27 | S HLFS="^"
|
---|
28 | ;
|
---|
29 | ; - get records from 'ASEG' x-ref
|
---|
30 | S IVMI=0 F S IVMI=$O(^IVM(301.5,"ASEG","ZIV",IVMI)) Q:'IVMI D
|
---|
31 | .S IVMJ=0 F S IVMJ=$O(^IVM(301.5,"ASEG","ZIV",IVMI,IVMJ)) Q:'IVMJ D
|
---|
32 | ..S IVMSP="",IVMCT=IVMCT+1 W:'(IVMCT#15) "."
|
---|
33 | ..S IVM0ND=$G(^IVM(301.5,IVMI,0)) I IVM0ND']"" Q
|
---|
34 | ..S IVMSEG=$G(^IVM(301.5,IVMI,"IN",IVMJ,"ST")) I IVMSEG']"" Q
|
---|
35 | ..S DFN=+IVM0ND,IVMDPT0=$G(^DPT(+DFN,0)) I IVMDPT0']"" Q
|
---|
36 | ..;
|
---|
37 | ..; - check for 'date of death' in Patient (#2) file or ZIV segment
|
---|
38 | ..S IVMDOD=$S($P($G(^DPT(+DFN,.35)),"^")]"":"D"_$P($G(^DPT(+DFN,.35)),"^"),$P(IVMSEG,HLFS,12)]"":"I"_$$FMDATE^HLFNC($P(IVMSEG,HLFS,12)),1:"")
|
---|
39 | ..;
|
---|
40 | ..; - patient name and SSN in Patient (#2) file
|
---|
41 | ..S IVMNM=$P(IVMDPT0,"^",1),IVMSSN=$P(IVMDPT0,"^",9)
|
---|
42 | ..;
|
---|
43 | ..; - if new spouse SSN and Patient Relation IEN, get Patient or
|
---|
44 | ..; Income person zeroth node
|
---|
45 | ..I $P(IVMSEG,HLFS,6),$P(IVMSEG,HLFS,7) S IVMSP=$$DEM^DGMTU1(+$P(IVMSEG,HLFS,7))
|
---|
46 | ..; - build line for display
|
---|
47 | ..D BLDLN
|
---|
48 | ;
|
---|
49 | I IVMCT=0 W !!,"There is no IVM patient data to be uploaded at this time.",!,*7
|
---|
50 | ;
|
---|
51 | BLDQ K DFN,IVM0ND,IVMBL,IVMDOD,IVMDPT0,IVMSEG,IVMSP
|
---|
52 | Q
|
---|
53 | ;
|
---|
54 | ;
|
---|
55 | BLDLN ; - Build storage array with data for view in list man (called from BLD)
|
---|
56 | N X
|
---|
57 | ; - if DHCP SSN is does not equal IVM SSA/SSN do
|
---|
58 | I $P(IVMDPT0,"^",9)'=$P(IVMSEG,"^",4) D
|
---|
59 | .;
|
---|
60 | .; - X = vet name, dhcp/ssn, ssa/ssn
|
---|
61 | .S X=IVMNM_"^"_IVMSSN_"^"_$P(IVMSEG,"^",4)
|
---|
62 | .;
|
---|
63 | .; - if spouse DHCP SSN does not equal IVM SSA/SSN set ^TMP array
|
---|
64 | .I IVMSP]"",$P(IVMSP,"^",9)'=$P(IVMSEG,"^",6) D ; get spouse name, dhcp/ssn, ssa/ssn
|
---|
65 | ..;
|
---|
66 | ..; - patient data_spouse data
|
---|
67 | ..S X=X_"^"_$P(IVMSP,"^",1)_"^"_$P(IVMSP,"^",9)_"^"_$P(IVMSEG,"^",6)
|
---|
68 | .;
|
---|
69 | .; - ^tmp("ivmup",$j,pt name,pt ssn,ivm ien)=dfn^spien^display elements
|
---|
70 | .S ^TMP("IVMUP",$J,IVMNM,IVMSSN,IVMI,IVMJ)=DFN_"^"_+$P(IVMSEG,HLFS,7)_"^"_IVMDOD_"^"_X
|
---|
71 | ;
|
---|
72 | ;
|
---|
73 | ; - if patient DHCP SSN equals IVM SSA/SSN and spouse DHCP SSN does not
|
---|
74 | ; equal IVM SSA/SSN set ^TMP array
|
---|
75 | I $P(IVMDPT0,"^",9)=$P(IVMSEG,"^",4),IVMSP]"",($P(IVMSP,"^",9)'=$P(IVMSEG,"^",6)) D
|
---|
76 | .;
|
---|
77 | .; - vet name, DHCP/SSN - SSA/SSN is not displayed
|
---|
78 | .S X=IVMNM_"^"_IVMSSN_"^"
|
---|
79 | .;
|
---|
80 | .; - spouse name, DHCP/SSN, IVM SSA/SSN
|
---|
81 | .S X=X_"^"_$P(IVMSP,"^",1)_"^"_$P(IVMSP,"^",9)_"^"_$P(IVMSEG,"^",6)
|
---|
82 | .;
|
---|
83 | .; - ^tmp("ivmup",$j,pt name,pt ssn,ivm ien)=dfn^spien^display elements
|
---|
84 | .S ^TMP("IVMUP",$J,IVMNM,IVMSSN,IVMI,IVMJ)=DFN_"^"_+$P(IVMSEG,HLFS,7)_"^"_IVMDOD_"^"_X
|
---|
85 | Q
|
---|
86 | ;
|
---|
87 | ;
|
---|
88 | EXIT ; - Exit code - kill temporary arrays
|
---|
89 | K ^TMP("IVMLST",$J),^TMP("IVMUP",$J),IVMCT
|
---|
90 | Q
|
---|