[613] | 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
|
---|