[613] | 1 | VAFCMGB0 ;ALB/JRP-DEMOGRAPHIC MERGE SCREENS ;10/18/96
|
---|
| 2 | ;;5.3;Registration;**149,255,477,479**;Aug 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | ;NOTE: This routine contains line tags used to build the display
|
---|
| 5 | ; screen for a List Manager interface. Refer to routine
|
---|
| 6 | ; VAFCMGB for a description of input/output variables.
|
---|
| 7 | ;
|
---|
| 8 | LOCAL(FILE,FIELD,IENS,ARRAY) ;Get local data from extraction array
|
---|
| 9 | ;
|
---|
| 10 | ;Input : FILE - File number
|
---|
| 11 | ; FIELD - Field number
|
---|
| 12 | ; IENS - FDA entry number (ex: "DFN,")
|
---|
| 13 | ; ARRAY - FDA array containing local data (full global ref)
|
---|
| 14 | ; (ie: ARRAY(File,IENS,Field) = Value)
|
---|
| 15 | ; All variables denoted in VAFCMGB routine
|
---|
| 16 | ;Output : Value to display
|
---|
| 17 | ;Notes : Existance/validity of input variables is assumed
|
---|
| 18 | ; : ARRAY() is the ouput of the call to GETDATA^VAFCMGU0()
|
---|
| 19 | ; :<No Data Found> is returned when ARRAY(File,IENS,Field) is NULL
|
---|
| 20 | ; or does not exist
|
---|
| 21 | ; : Phone numbers are returned in HL7 format
|
---|
| 22 | ; : Social security numbers will contain dashes
|
---|
| 23 | ; : Dates are returned in the format MM-DD-YYYY@HH:MM:SS
|
---|
| 24 | ;
|
---|
| 25 | ;Declare variables
|
---|
| 26 | N VALUE,QUOTE
|
---|
| 27 | S QUOTE=$C(34)
|
---|
| 28 | ;Get data
|
---|
| 29 | S VALUE=$G(@ARRAY@(FILE,IENS,FIELD))
|
---|
| 30 | ;Convert NULLS and quit
|
---|
| 31 | Q:(VALUE="") "<No Data Found>"
|
---|
| 32 | ;Convert phone numbers to HL7 format
|
---|
| 33 | I ((FIELD=.131)!(FIELD=.132)!(FIELD=.219)) I (FILE=2) D
|
---|
| 34 | .S VALUE=$$HLPHONE^HLFNC(VALUE)
|
---|
| 35 | ;Add dashes to SSN
|
---|
| 36 | I (FIELD=.09) I (FILE=2) D
|
---|
| 37 | .S VALUE=$TR(VALUE,"-","")
|
---|
| 38 | .S VALUE=$E(VALUE,1,3)_"-"_$E(VALUE,4,5)_"-"_$E(VALUE,6,10)
|
---|
| 39 | ;Convert dates to MM-DD-YYYY@HH:MM:SS format
|
---|
| 40 | I ((FIELD=.03)!(FIELD=.351)) I (FILE=2) D
|
---|
| 41 | .S VALUE=$$EX2INDT^VAFCMGU0(VALUE)
|
---|
| 42 | .S VALUE=$$IN2EXDT^VAFCMGU0(VALUE)
|
---|
| 43 | ;Done
|
---|
| 44 | Q VALUE
|
---|
| 45 | ;
|
---|
| 46 | REMOTE(FILE,FIELD) ;Get remote data from merge array [VAFCARR()]
|
---|
| 47 | ;
|
---|
| 48 | ;Input : FILE - File number
|
---|
| 49 | ; FIELD - Field number
|
---|
| 50 | ; All variables denoted in VAFCMGB routine
|
---|
| 51 | ;Output : Value to display
|
---|
| 52 | ;Notes : Existance/validity of input variables is assumed
|
---|
| 53 | ; :<No Data Found> is returned when VAFCARR(File,Field) is NULL or
|
---|
| 54 | ; does not exist
|
---|
| 55 | ; : <Data Deleted> is returned when VAFCARR(File,Field)="@"
|
---|
| 56 | ; : When VAFCARR(Field,Field)="^text", text will be returned
|
---|
| 57 | ; : Phone numbers are returned in HL7 format
|
---|
| 58 | ; : Social security numbers will contain dashes
|
---|
| 59 | ; : Dates are returned in the format MM-DD-YYYY@HH:MM:SS
|
---|
| 60 | ;
|
---|
| 61 | ;Declare variables
|
---|
| 62 | N VALUE,QUOTE
|
---|
| 63 | S QUOTE=$C(34)
|
---|
| 64 | ;Get data
|
---|
| 65 | S VALUE=$G(@VAFCARR@(FILE,FIELD))
|
---|
| 66 | ;Convert NULLS and quit
|
---|
| 67 | Q:($P(VALUE,U)="") "<No Data Found>"
|
---|
| 68 | ;Convert "@" and quit
|
---|
| 69 | Q:($P(VALUE,U)=(QUOTE_"@"_QUOTE)) "<Data Deleted>"
|
---|
| 70 | ;Convert unresolved and quit
|
---|
| 71 | Q:$P(VALUE,U,3) "<UR> "_$P(VALUE,U)
|
---|
| 72 | S VALUE=$P(VALUE,U)
|
---|
| 73 | ;Convert phone numbers to HL7 format
|
---|
| 74 | I ((FIELD=.131)!(FIELD=.132)!(FIELD=.219)) I (FILE=2) D
|
---|
| 75 | .S VALUE=$$HLPHONE^HLFNC(VALUE)
|
---|
| 76 | ;Add dashes to SSN
|
---|
| 77 | I (FIELD=.09) I (FILE=2) D
|
---|
| 78 | .S VALUE=$TR(VALUE,"-","")
|
---|
| 79 | .S VALUE=$E(VALUE,1,3)_"-"_$E(VALUE,4,5)_"-"_$E(VALUE,6,10)
|
---|
| 80 | ;Convert dates to MM-DD-YYYY@HH:MM:SS format
|
---|
| 81 | I ((FIELD=.03)!(FIELD=.351)) I (FILE=2) D
|
---|
| 82 | .S VALUE=$$IN2EXDT^VAFCMGU0(VALUE)
|
---|
| 83 | ;Convert ZIP to ZIP+4
|
---|
| 84 | ;I (FIELD=.1112) I (FILE=2) D ;**255 **479
|
---|
| 85 | ;.S VALUE=$TR(VALUE,"-") ;**477 old messaging didn't contain '-'
|
---|
| 86 | ;.S VALUE=$E(VALUE,1,5)_$S($E(VALUE,6,9)]"":"-"_$E(VALUE,6,9),1:"")
|
---|
| 87 | I (FIELD=.3612) I (FILE=2) D ;**477
|
---|
| 88 | .I $L(VALUE)>7 S VALUE=$$HL7TFM^XLFDT(VALUE) ;convert hl7 to fileman date
|
---|
| 89 | ;Done
|
---|
| 90 | Q VALUE
|
---|
| 91 | ;
|
---|
| 92 | DIFFCHK(FILE,FIELD,IENS,ARRAY) ;Compare local and remote data for differences
|
---|
| 93 | ;
|
---|
| 94 | ;Input : FILE - File number
|
---|
| 95 | ; FIELD - Field number
|
---|
| 96 | ; IENS - FDA entry number (ex: "2169,")
|
---|
| 97 | ; ARRAY - FDA array containing local data (full global ref)
|
---|
| 98 | ; (ie: ARRAY(File,IENS,Field) = Value)
|
---|
| 99 | ; All variables denoted in VAFCMGB routine
|
---|
| 100 | ;Output : 1 = Local & remote data are different
|
---|
| 101 | ; 0 = Local & remote data are not different
|
---|
| 102 | ;Notes : Existance/validity of input variables is assumed
|
---|
| 103 | ; : ARRAY() is the ouput of the call to GETDATA^VAFCMGU0()
|
---|
| 104 | ; : If VAFCARR(File,Field) is undefined, NULL, or has a value of
|
---|
| 105 | ; "^text" a difference is not found (prevents overwritting of
|
---|
| 106 | ; local data)
|
---|
| 107 | ; : If VAFCARR(File,Field) is "@" and ARRAY(File,IENS,Field) is
|
---|
| 108 | ; NULL or does not exist a difference is not found (prevents
|
---|
| 109 | ; deletion of nothing)
|
---|
| 110 | ; : Phone numbers are converted to HL7 format for comparison
|
---|
| 111 | ; : Social security numbers are compared with dashes removed
|
---|
| 112 | ; : Dates are converted to FileMan format for comparison
|
---|
| 113 | ;
|
---|
| 114 | ;Declare variables
|
---|
| 115 | N LOCAL,REMOTE,QUOTE
|
---|
| 116 | S QUOTE=$C(34)
|
---|
| 117 | ;Get local data
|
---|
| 118 | S LOCAL=$G(@ARRAY@(FILE,IENS,FIELD))
|
---|
| 119 | ;Get remote data
|
---|
| 120 | S REMOTE=$P($G(@VAFCARR@(FILE,FIELD)),U)
|
---|
| 121 | ;S:$E(REMOTE)=U&($P(REMOTE,U,2)]"") REMOTE=$P(REMOTE,U,2)
|
---|
| 122 | ;S:$P(REMOTE,U)=""&('$P(REMOTE,U,2)) REMOTE=""
|
---|
| 123 | ;S:$P(REMOTE,U)]"" REMOTE=$P(REMOTE,U)
|
---|
| 124 | ;Screen for remote value of NULL - return no diff
|
---|
| 125 | I (REMOTE="") Q 0
|
---|
| 126 | ;Screen for remote value of "^text" - return no diff
|
---|
| 127 | I (REMOTE=(QUOTE_"^")) Q 0
|
---|
| 128 | ;Screen for remote value of "@" and no local value - return no diff
|
---|
| 129 | I ((REMOTE=(QUOTE_"@"_QUOTE))&(LOCAL="")) Q 0
|
---|
| 130 | ;Convert phone numbers to HL7 format
|
---|
| 131 | I ((FIELD=.131)!(FIELD=.132)!(FIELD=.219)) I (FILE=2) D
|
---|
| 132 | .S LOCAL=$$HLPHONE^HLFNC(LOCAL)
|
---|
| 133 | .S REMOTE=$$HLPHONE^HLFNC(REMOTE)
|
---|
| 134 | ;Remove dashes from SSN
|
---|
| 135 | I (FIELD=.09) I (FILE=2) D
|
---|
| 136 | .S LOCAL=$TR(LOCAL,"-","")
|
---|
| 137 | .S REMOTE=$TR(REMOTE,"-","")
|
---|
| 138 | ;Convert dates to FileMan format (remote dates already in FM format)
|
---|
| 139 | I ((FIELD=.03)!(FIELD=.351)) I (FILE=2) D
|
---|
| 140 | .S LOCAL=$$EX2INDT^VAFCMGU0(LOCAL)
|
---|
| 141 | I (FIELD=.3612) I (FILE=2) D ;*477
|
---|
| 142 | .S LOCAL=$$EX2INDT^VAFCMGU0(LOCAL)
|
---|
| 143 | .I $L(REMOTE)>7 S REMOTE=$$HL7TFM^XLFDT(REMOTE) ;convert hl7 to fileman date
|
---|
| 144 | ;Convert zip+4 to fileman format
|
---|
| 145 | ;I (FIELD=.1112) I (FILE=2) D ;**255 **479
|
---|
| 146 | ;.S LOCAL=$TR(LOCAL,"-","")
|
---|
| 147 | ;.S REMOTE=$TR(REMOTE,"-","")
|
---|
| 148 | ;Done - return comparison of local & remote data
|
---|
| 149 | Q ('(LOCAL=REMOTE))
|
---|
| 150 | ;
|
---|
| 151 | GROUP1 ;Line tag to build logical group number one
|
---|
| 152 | ;
|
---|
| 153 | ;Group one contains the following fields:
|
---|
| 154 | ; .01, .03, .09, .351
|
---|
| 155 | ;
|
---|
| 156 | ;Column width is limited to 30 characters
|
---|
| 157 | ;
|
---|
| 158 | ;Declare variables
|
---|
| 159 | N IENS,TARGET,MESSAGE,LINE,DATA,LOCAL,REMOTE,DIFF
|
---|
| 160 | S TARGET="^TMP(""VAFC-MERGE-TO"","_$J_",""DATA"")"
|
---|
| 161 | S MESSAGE="^TMP(""VAFC-MERGE-TO"","_$J_",""MESSAGE"")"
|
---|
| 162 | ;Initialize global locations
|
---|
| 163 | K @TARGET,@MESSAGE
|
---|
| 164 | ;Set group index
|
---|
| 165 | S @VALMAR@("GRP",1)=VALMCNT
|
---|
| 166 | ;Get local data for patient
|
---|
| 167 | D GETDATA^VAFCMGU0(VAFCDFN,1,TARGET,MESSAGE)
|
---|
| 168 | ;Build display
|
---|
| 169 | S IENS=VAFCDFN_","
|
---|
| 170 | ;Name
|
---|
| 171 | S LOCAL=$$LOCAL(2,.01,IENS,TARGET)
|
---|
| 172 | S LOCAL=$E(LOCAL,1,30)
|
---|
| 173 | S REMOTE=$$REMOTE(2,.01)
|
---|
| 174 | S REMOTE=$E(REMOTE,1,30)
|
---|
| 175 | S DIFF=$$DIFFCHK(2,.01,IENS,TARGET)
|
---|
| 176 | S LINE=$S(DIFF:"**",1:" ")_" 1"
|
---|
| 177 | S:DIFF&($P($G(@VAFCARR@(2,.01)),U,2)) LINE="->"_" 1" ;**477 flag name if different - no longer auto updated
|
---|
| 178 | S DATA="Name: "_LOCAL
|
---|
| 179 | S LINE=$$INSERT^VAFCMGU0(DATA,LINE,8)
|
---|
| 180 | S @VALMAR@(VALMCNT,0)=$$INSERT^VAFCMGU0(REMOTE,LINE,48)
|
---|
| 181 | S @VALMAR@("IDX",VALMCNT,1)=""
|
---|
| 182 | I (DIFF) D
|
---|
| 183 | .S @VALMAR@("E2F",1,1)="2^.01"
|
---|
| 184 | .S @VALMAR@("E2G",1)=1
|
---|
| 185 | I ('DIFF) D
|
---|
| 186 | .K @VALMAR@("E2F",1)
|
---|
| 187 | .K @VALMAR@("E2G",1)
|
---|
| 188 | W:(+$G(VAFCDOTS)) "."
|
---|
| 189 | S VALMCNT=VALMCNT+1
|
---|
| 190 | ;SSN
|
---|
| 191 | S LOCAL=$$LOCAL(2,.09,IENS,TARGET)
|
---|
| 192 | S REMOTE=$$REMOTE(2,.09)
|
---|
| 193 | S DIFF=$$DIFFCHK(2,.09,IENS,TARGET)
|
---|
| 194 | S LINE=$S(DIFF:"**",1:" ")_" 2"
|
---|
| 195 | S:DIFF&($P($G(@VAFCARR@(2,.09)),U,2)) LINE="->"_" 2"
|
---|
| 196 | S DATA="SSN: "_LOCAL
|
---|
| 197 | S LINE=$$INSERT^VAFCMGU0(DATA,LINE,9)
|
---|
| 198 | S @VALMAR@(VALMCNT,0)=$$INSERT^VAFCMGU0(REMOTE,LINE,48)
|
---|
| 199 | S @VALMAR@("IDX",VALMCNT,2)=""
|
---|
| 200 | I (DIFF) D
|
---|
| 201 | .S @VALMAR@("E2F",2,1)="2^.09"
|
---|
| 202 | .S @VALMAR@("E2G",2)=1
|
---|
| 203 | I ('DIFF) D
|
---|
| 204 | .K @VALMAR@("E2F",2)
|
---|
| 205 | .K @VALMAR@("E2G",2)
|
---|
| 206 | W:(+$G(VAFCDOTS)) "."
|
---|
| 207 | S VALMCNT=VALMCNT+1
|
---|
| 208 | ;Date of birth
|
---|
| 209 | S LOCAL=$$LOCAL(2,.03,IENS,TARGET)
|
---|
| 210 | S LOCAL=$P(LOCAL,"@",1)
|
---|
| 211 | S REMOTE=$$REMOTE(2,.03)
|
---|
| 212 | S REMOTE=$P(REMOTE,"@",1)
|
---|
| 213 | S DIFF=$$DIFFCHK(2,.03,IENS,TARGET)
|
---|
| 214 | S LINE=$S(DIFF:"**",1:" ")_" 3"
|
---|
| 215 | S:DIFF&($P($G(@VAFCARR@(2,.03)),U,2)) LINE="->"_" 3"
|
---|
| 216 | S DATA="DOB: "_LOCAL
|
---|
| 217 | S LINE=$$INSERT^VAFCMGU0(DATA,LINE,9)
|
---|
| 218 | S @VALMAR@(VALMCNT,0)=$$INSERT^VAFCMGU0(REMOTE,LINE,48)
|
---|
| 219 | S @VALMAR@("IDX",VALMCNT,3)=""
|
---|
| 220 | I (DIFF) D
|
---|
| 221 | .S @VALMAR@("E2F",3,1)="2^.03"
|
---|
| 222 | .S @VALMAR@("E2G",3)=1
|
---|
| 223 | I ('DIFF) D
|
---|
| 224 | .K @VALMAR@("E2F",3)
|
---|
| 225 | .K @VALMAR@("E2G",3)
|
---|
| 226 | W:(+$G(VAFCDOTS)) "."
|
---|
| 227 | S VALMCNT=VALMCNT+1
|
---|
| 228 | ;Date of death - strip time
|
---|
| 229 | S LOCAL=$$LOCAL(2,.351,IENS,TARGET)
|
---|
| 230 | ;S LOCAL=$P(LOCAL,"@",1) ;**477 time has already been stripped
|
---|
| 231 | S REMOTE=$$REMOTE(2,.351)
|
---|
| 232 | ;S REMOTE=$P(REMOTE,"@",1) ;**477 time has already been stripped
|
---|
| 233 | S DIFF=$$DIFFCHK(2,.351,IENS,TARGET)
|
---|
| 234 | S LINE=$S(DIFF:"**",1:" ")_" 4"
|
---|
| 235 | S:DIFF&($P($G(@VAFCARR@(2,.351)),U,2)) LINE="->"_" 4"
|
---|
| 236 | S DATA="DOD: "_LOCAL
|
---|
| 237 | S LINE=$$INSERT^VAFCMGU0(DATA,LINE,9)
|
---|
| 238 | S @VALMAR@(VALMCNT,0)=$$INSERT^VAFCMGU0(REMOTE,LINE,48)
|
---|
| 239 | S @VALMAR@("IDX",VALMCNT,4)=""
|
---|
| 240 | I (DIFF) D
|
---|
| 241 | .S @VALMAR@("E2F",4,1)="2^.351"
|
---|
| 242 | .S @VALMAR@("E2G",4)=1
|
---|
| 243 | I ('DIFF) D
|
---|
| 244 | .K @VALMAR@("E2F",4)
|
---|
| 245 | .K @VALMAR@("E2G",4)
|
---|
| 246 | W:(+$G(VAFCDOTS)) "."
|
---|
| 247 | S VALMCNT=VALMCNT+1
|
---|
| 248 | Q
|
---|