1 | EASEZI ;ALB/jap - Database Inquiry & Record Finder for 1010EZ Processing ;10/12/00 13:08
|
---|
2 | ;;1.0;ENROLLMENT APPLICATION SYSTEM;**1,9,44,51,57**;Mar 15, 2001
|
---|
3 | ;
|
---|
4 | DFN(EASAPP,EASDFN) ;match or add 1010EZ applicant to Patient file #2
|
---|
5 | ;
|
---|
6 | ;input
|
---|
7 | ; EASAPP = application ien in file #712
|
---|
8 | ;output
|
---|
9 | ; EASDFN = valid ien in file #2; passed by reference
|
---|
10 | ; OR -1 if no patient match made;
|
---|
11 | ; note: this may be an existing patient or one newly created by user action
|
---|
12 | ;
|
---|
13 | ;This entry point it used only for initial match of Applicant with Patient database.
|
---|
14 | ;
|
---|
15 | N DFN,DGNEWPF,DGRPTOUT,EZDATA,KEY,NAME,SSN,DOB,SEX,KEYIEN,ACCEPT,ARRAY,RECD
|
---|
16 | N VETTYPE,NEW,TSSN,REM,N,X,DA,DR,DIE,DIC,DIQ,ALREADY,OUT,FILE,SUBFILE,FLD,ELIGVER,SVCVER,APPTVER
|
---|
17 | Q:'EASAPP
|
---|
18 | ;do not proceed if link to file #2 already established
|
---|
19 | S EASDFN=$P($G(^EAS(712,EASAPP,0)),U,10) Q:EASDFN
|
---|
20 | D FULL^VALM1 W @IOF
|
---|
21 | S EASEZNEW="",ELIGVER=0,SVCVER=0,APPTVER=0
|
---|
22 | S KEY=$$KEY711^EASEZU1("APPLICANT SEX")
|
---|
23 | S SEX=$P($$DATA712^EASEZU1(EASAPP,KEY),U,1),SEX=$S(SEX="M":"Male",SEX="F":"Female",1:"")
|
---|
24 | S DIQ="ARRAY",DIQ(0)="E",DA=EASAPP,DR="1;2;3;3.3",DIC=712 D EN^DIQ1
|
---|
25 | S NAME=$G(ARRAY(712,EASAPP,1,"E"))
|
---|
26 | S SSN=$P($G(ARRAY(712,EASAPP,2,"E")),"&",1)
|
---|
27 | S DOB=$P($G(ARRAY(712,EASAPP,2,"E")),"&",2)
|
---|
28 | S RECD=$G(ARRAY(712,EASAPP,3,"E"))
|
---|
29 | S VETTYPE=$G(ARRAY(712,EASAPP,3.3,"E"))
|
---|
30 | W !,"Applicant Data",?24,"Application #: ",EASAPP,?48,"Received: ",RECD,!
|
---|
31 | W !,"Name: ",NAME
|
---|
32 | W !,"SSN: ",SSN,?24,"DOB: ",DOB,?48,"Sex: ",SEX
|
---|
33 | W !,"Veteran Type: ",VETTYPE
|
---|
34 | W !!,"Enter Applicant data as prompted --"
|
---|
35 | ;
|
---|
36 | ;Get Patient file (#2) IEN - DFN
|
---|
37 | D GETPAT^DGRPTU("",1,.DFN,.DGNEWPF)
|
---|
38 | Q:($G(DFN)'>0)
|
---|
39 | ;if DGNEWPF=1 then applicant has just been added to file #2 as new patient
|
---|
40 | S NEW=""
|
---|
41 | I DGNEWPF D
|
---|
42 | . S NEW=1
|
---|
43 | . ;add a remark to file #2 record to help keep track of new patients added by 1010EZ
|
---|
44 | . S REM="NEW PT. FROM ELECTRONIC 10-10EZ -- IN PROCESS"
|
---|
45 | . S DA=DFN,DIE="^DPT(",DR=".091///^S X=REM"
|
---|
46 | . D ^DIE
|
---|
47 | ;if seems to be not new, check remark field just to make sure
|
---|
48 | I NEW="" D
|
---|
49 | . S REM="NEW PT. FROM ELECTRONIC 10-10EZ -- IN PROCESS"
|
---|
50 | . I $P(^DPT(DFN,0),U,10)=REM S NEW=1
|
---|
51 | . S REM="New Patient record added by ELECTRONIC 10-10EZ."
|
---|
52 | . I $P(^DPT(DFN,0),U,10)=REM S NEW=1
|
---|
53 | ;MPI Query
|
---|
54 | S X="MPIFAPI" X ^%ZOSF("TEST") D
|
---|
55 | . Q:'$T
|
---|
56 | . K MPIFRTN
|
---|
57 | . D MPIQ^MPIFAPI(DFN)
|
---|
58 | . K MPIFRTN,MPIQRYNM
|
---|
59 | ;check for an in-process application already linked to this DFN
|
---|
60 | S OUT=0,ALREADY=0 F S ALREADY=$O(^EAS(712,"AC",DFN,ALREADY)) Q:'ALREADY D Q:OUT
|
---|
61 | . S FILDATE=$P($G(^EAS(712,ALREADY,2)),U,5)
|
---|
62 | . S CLSDATE=$P($G(^EAS(712,ALREADY,2)),U,9)
|
---|
63 | . I 'FILDATE,'CLSDATE S OUT=1 D
|
---|
64 | . . W !!?3,"Sorry... cannot link to selected Patient."
|
---|
65 | . . W !?3,"Application #"_ALREADY_" is already linked to this Patient,"
|
---|
66 | . . W !?3,"and is still in-process."
|
---|
67 | . . D PAUSE^VALM1 K FILDATE,CLSDATE
|
---|
68 | Q:OUT
|
---|
69 | D RESET^EASEZI1
|
---|
70 | Q
|
---|
71 | ;
|
---|
72 | I201(EASDFN,EASARRAY) ;retrieve ien(s) in subfile #2.01
|
---|
73 | ;input EASDFN = ien to #2
|
---|
74 | ;output EASARRAY = ien(s) to #2.01
|
---|
75 | ; each array element = EASDFN;subfile_ien
|
---|
76 | ;
|
---|
77 | N N,IEN
|
---|
78 | S IEN=0,N=0 F S IEN=$O(^DPT(EASDFN,.01,IEN)) Q:'IEN S N=N+1,EASARRAY(N)=EASDFN_";"_IEN
|
---|
79 | Q
|
---|
80 | ;
|
---|
81 | I202(EASDFN,EASARRAY) ;retrieve ien(s) in subfile #2.02
|
---|
82 | ;input EASDFN = ien to #2
|
---|
83 | ;output EASARRAY = ien(s) to #2.01
|
---|
84 | ; each array element = EASDFN;subfile_ien
|
---|
85 | ;
|
---|
86 | N N,IEN
|
---|
87 | S IEN=0,N=0 F S IEN=$O(^DPT(EASDFN,.02,IEN)) Q:'IEN S N=N+1,EASARRAY(N)=EASDFN_";"_IEN
|
---|
88 | Q
|
---|
89 | ;
|
---|
90 | I206(EASDFN,EASARRAY) ;retrieve ien(s) in subfile #2.06
|
---|
91 | ;input EASDFN = ien to #2
|
---|
92 | ;output EASARRAY = ien(s) to #2.01
|
---|
93 | ; each array element = EASDFN;subfile_ien
|
---|
94 | ;
|
---|
95 | N N,IEN
|
---|
96 | S IEN=0,N=0 F S IEN=$O(^DPT(EASDFN,.06,IEN)) Q:'IEN S N=N+1,EASARRAY(N)=EASDFN_";"_IEN
|
---|
97 | Q
|
---|
98 | ;
|
---|
99 | I2101(EASDFN,EASARRAY) ;retrieve ien to subfile #2.101
|
---|
100 | ;input EASDFN = ien to #2
|
---|
101 | ;output EASARRAY = most recent ien in #2.101;
|
---|
102 | ; array element = EASDFN;subfile_ien
|
---|
103 | ;
|
---|
104 | N N,IEN,ARR,LAST
|
---|
105 | S IEN=0,N=0 F S IEN=$O(^DPT(EASDFN,"DIS",IEN)) Q:'IEN D
|
---|
106 | . S RDATE=$P(^DPT(EASDFN,"DIS",IEN,0),U,1),ARR(RDATE)=IEN
|
---|
107 | I $D(ARR) D
|
---|
108 | . S LAST=$O(ARR(999999999),-1),IEN=ARR(LAST)
|
---|
109 | . S EASARRAY(1)=EASDFN_";"_IEN
|
---|
110 | Q
|
---|
111 | ;
|
---|
112 | I2711(EASDFN,EASARRAY) ;retrieve ien to file #27.11
|
---|
113 | ;input EASDFN = ien to #2
|
---|
114 | ;output EASARRAY = current enrollment ien in #27.11;
|
---|
115 | ; array element = ien
|
---|
116 | N CUR
|
---|
117 | S CUR=$$FINDCUR^DGENA(+EASDFN)
|
---|
118 | S EASARRAY(1)=CUR
|
---|
119 | Q
|
---|
120 | ;
|
---|
121 | I408(EASDFN,EASAPP,EASARRAY) ;retrieve ien(s) to files #408.12,#408.13,#408.21,#408.22
|
---|
122 | ;
|
---|
123 | ;input EASDFN = ien to #2
|
---|
124 | ; EASAPP = ien to #712
|
---|
125 | ;output EASARRAY = ien(s) to files; passed by reference
|
---|
126 | ; array(408,"V",1) = ien_#408.12^ien_#408.13^ien_#408.21^ien#408.22 ;veteran data
|
---|
127 | ; array(408,"S",1) = ien_#408.12^ien_#408.13^ien_#408.21^ien#408.22 ;spouse data
|
---|
128 | ; array(408,"C",multiple) = ien_#408.12^ien_#408.13^ien_#408.21^ien#408.22 ;child data
|
---|
129 | ; where ien_#408.13 = ien;global_root
|
---|
130 | ;
|
---|
131 | N CURINCYR,X,Y,DIC,DA,DR,DIQ,EAS,DEP,REL,IX,JX,KX,I13,SUB1,SUB2,INCYR,PT
|
---|
132 | ;
|
---|
133 | Q:'EASDFN
|
---|
134 | S Y=$P($G(^EAS(712,EASAPP,0)),U,6) I Y="" S Y=DT
|
---|
135 | S %F=5,X=$$FMTE^XLFDT(Y,%F),X=+$P(X,"/",3)-1,%DT="P" D ^%DT S CURINCYR=Y
|
---|
136 | ;find all associated 408 records, even if no actual income test
|
---|
137 | ; get #408.12, #408.13, #408.21, #408.22 iens
|
---|
138 | K EAS S DEP=0
|
---|
139 | S IX=0 F S IX=$O(^DGPR(408.12,"B",EASDFN,IX)) Q:'IX D
|
---|
140 | . S DIC=408.12,DA=IX,DIQ="EAS",DIQ(0)="I",DR=".02;.03" D EN^DIQ1
|
---|
141 | . S REL=$G(EAS(408.12,IX,.02,"I")),I13=$G(EAS(408.12,IX,.03,"I"))
|
---|
142 | . S (SUB1,SUB2)="" S:REL=1 SUB1="V",SUB2=1 S:REL=2 SUB1="S",SUB2=1 S:REL>2 SUB1="C",DEP=DEP+1,SUB2=DEP
|
---|
143 | . I SUB1]"" S EASARRAY(408,SUB1,SUB2)=IX_U_I13 D
|
---|
144 | . . S JX=$O(^DGMT(408.21,"C",IX,""),-1)
|
---|
145 | . . I JX D
|
---|
146 | . . . S DIC=408.21,DA=JX,DIQ="EAS",DIQ(0)="I",DR=".01;.02" D EN^DIQ1
|
---|
147 | . . . S INCYR=$G(EAS(408.21,JX,.01,"I")),PT=$G(EAS(408.21,JX,.02,"I"))
|
---|
148 | . . . Q:PT'=IX
|
---|
149 | . . . Q:(INCYR<CURINCYR)
|
---|
150 | . . . S KX=$O(^DGMT(408.22,"AIND",JX,0))
|
---|
151 | . . . S EASARRAY(408,SUB1,SUB2)=EASARRAY(408,SUB1,SUB2)_U_JX_U_KX
|
---|
152 | Q
|
---|
153 | ;
|
---|
154 | I1275(IEN) ;get the active subrecord from subfile #408.1275
|
---|
155 | ;input IEN = internal record number to file #408.12
|
---|
156 | ;output SUBIEN = internal record number for active subrecord,
|
---|
157 | ; or -1 if invalid
|
---|
158 | N B,ACT,SUBIEN
|
---|
159 | I 'IEN Q -1
|
---|
160 | S SUBIEN=-1
|
---|
161 | S B=0 F S B=$O(^DGPR(408.12,IEN,"E",B)) Q:'B D
|
---|
162 | . S ACT=$P(^DGPR(408.12,IEN,"E",B,0),U,2)
|
---|
163 | . I ACT S SUBIEN=B
|
---|
164 | Q SUBIEN
|
---|