Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: VAFCMGB0

VAFCMGB0.m

Go to the documentation of this file.
  1. VAFCMGB0 ;ALB/JRP-DEMOGRAPHIC MERGE SCREENS ;10/18/96
  1. ;;5.3;Registration;**149,255,477,479,1015**;Aug 13, 1993;Build 21
  1. ;
  1. ;NOTE: This routine contains line tags used to build the display
  1. ; screen for a List Manager interface. Refer to routine
  1. ; VAFCMGB for a description of input/output variables.
  1. ;
  1. LOCAL(FILE,FIELD,IENS,ARRAY) ;Get local data from extraction array
  1. ;
  1. ;Input : FILE - File number
  1. ; FIELD - Field number
  1. ; IENS - FDA entry number (ex: "DFN,")
  1. ; ARRAY - FDA array containing local data (full global ref)
  1. ; (ie: ARRAY(File,IENS,Field) = Value)
  1. ; All variables denoted in VAFCMGB routine
  1. ;Output : Value to display
  1. ;Notes : Existance/validity of input variables is assumed
  1. ; : ARRAY() is the ouput of the call to GETDATA^VAFCMGU0()
  1. ; :<No Data Found> is returned when ARRAY(File,IENS,Field) is NULL
  1. ; or does not exist
  1. ; : Phone numbers are returned in HL7 format
  1. ; : Social security numbers will contain dashes
  1. ; : Dates are returned in the format MM-DD-YYYY@HH:MM:SS
  1. ;
  1. ;Declare variables
  1. N VALUE,QUOTE
  1. S QUOTE=$C(34)
  1. ;Get data
  1. S VALUE=$G(@ARRAY@(FILE,IENS,FIELD))
  1. ;Convert NULLS and quit
  1. Q:(VALUE="") "<No Data Found>"
  1. ;Convert phone numbers to HL7 format
  1. I ((FIELD=.131)!(FIELD=.132)!(FIELD=.219)) I (FILE=2) D
  1. .S VALUE=$$HLPHONE^HLFNC(VALUE)
  1. ;Add dashes to SSN
  1. I (FIELD=.09) I (FILE=2) D
  1. .S VALUE=$TR(VALUE,"-","")
  1. .S VALUE=$E(VALUE,1,3)_"-"_$E(VALUE,4,5)_"-"_$E(VALUE,6,10)
  1. ;Convert dates to MM-DD-YYYY@HH:MM:SS format
  1. I ((FIELD=.03)!(FIELD=.351)) I (FILE=2) D
  1. .S VALUE=$$EX2INDT^VAFCMGU0(VALUE)
  1. .S VALUE=$$IN2EXDT^VAFCMGU0(VALUE)
  1. ;Done
  1. Q VALUE
  1. ;
  1. REMOTE(FILE,FIELD) ;Get remote data from merge array [VAFCARR()]
  1. ;
  1. ;Input : FILE - File number
  1. ; FIELD - Field number
  1. ; All variables denoted in VAFCMGB routine
  1. ;Output : Value to display
  1. ;Notes : Existance/validity of input variables is assumed
  1. ; :<No Data Found> is returned when VAFCARR(File,Field) is NULL or
  1. ; does not exist
  1. ; : <Data Deleted> is returned when VAFCARR(File,Field)="@"
  1. ; : When VAFCARR(Field,Field)="^text", text will be returned
  1. ; : Phone numbers are returned in HL7 format
  1. ; : Social security numbers will contain dashes
  1. ; : Dates are returned in the format MM-DD-YYYY@HH:MM:SS
  1. ;
  1. ;Declare variables
  1. N VALUE,QUOTE
  1. S QUOTE=$C(34)
  1. ;Get data
  1. S VALUE=$G(@VAFCARR@(FILE,FIELD))
  1. ;Convert NULLS and quit
  1. Q:($P(VALUE,U)="") "<No Data Found>"
  1. ;Convert "@" and quit
  1. Q:($P(VALUE,U)=(QUOTE_"@"_QUOTE)) "<Data Deleted>"
  1. ;Convert unresolved and quit
  1. Q:$P(VALUE,U,3) "<UR> "_$P(VALUE,U)
  1. S VALUE=$P(VALUE,U)
  1. ;Convert phone numbers to HL7 format
  1. I ((FIELD=.131)!(FIELD=.132)!(FIELD=.219)) I (FILE=2) D
  1. .S VALUE=$$HLPHONE^HLFNC(VALUE)
  1. ;Add dashes to SSN
  1. I (FIELD=.09) I (FILE=2) D
  1. .S VALUE=$TR(VALUE,"-","")
  1. .S VALUE=$E(VALUE,1,3)_"-"_$E(VALUE,4,5)_"-"_$E(VALUE,6,10)
  1. ;Convert dates to MM-DD-YYYY@HH:MM:SS format
  1. I ((FIELD=.03)!(FIELD=.351)) I (FILE=2) D
  1. .S VALUE=$$IN2EXDT^VAFCMGU0(VALUE)
  1. ;Convert ZIP to ZIP+4
  1. ;I (FIELD=.1112) I (FILE=2) D ;**255 **479
  1. ;.S VALUE=$TR(VALUE,"-") ;**477 old messaging didn't contain '-'
  1. ;.S VALUE=$E(VALUE,1,5)_$S($E(VALUE,6,9)]"":"-"_$E(VALUE,6,9),1:"")
  1. I (FIELD=.3612) I (FILE=2) D ;**477
  1. .I $L(VALUE)>7 S VALUE=$$HL7TFM^XLFDT(VALUE) ;convert hl7 to fileman date
  1. ;Done
  1. Q VALUE
  1. ;
  1. DIFFCHK(FILE,FIELD,IENS,ARRAY) ;Compare local and remote data for differences
  1. ;
  1. ;Input : FILE - File number
  1. ; FIELD - Field number
  1. ; IENS - FDA entry number (ex: "2169,")
  1. ; ARRAY - FDA array containing local data (full global ref)
  1. ; (ie: ARRAY(File,IENS,Field) = Value)
  1. ; All variables denoted in VAFCMGB routine
  1. ;Output : 1 = Local & remote data are different
  1. ; 0 = Local & remote data are not different
  1. ;Notes : Existance/validity of input variables is assumed
  1. ; : ARRAY() is the ouput of the call to GETDATA^VAFCMGU0()
  1. ; : If VAFCARR(File,Field) is undefined, NULL, or has a value of
  1. ; "^text" a difference is not found (prevents overwritting of
  1. ; local data)
  1. ; : If VAFCARR(File,Field) is "@" and ARRAY(File,IENS,Field) is
  1. ; NULL or does not exist a difference is not found (prevents
  1. ; deletion of nothing)
  1. ; : Phone numbers are converted to HL7 format for comparison
  1. ; : Social security numbers are compared with dashes removed
  1. ; : Dates are converted to FileMan format for comparison
  1. ;
  1. ;Declare variables
  1. N LOCAL,REMOTE,QUOTE
  1. S QUOTE=$C(34)
  1. ;Get local data
  1. S LOCAL=$G(@ARRAY@(FILE,IENS,FIELD))
  1. ;Get remote data
  1. S REMOTE=$P($G(@VAFCARR@(FILE,FIELD)),U)
  1. ;S:$E(REMOTE)=U&($P(REMOTE,U,2)]"") REMOTE=$P(REMOTE,U,2)
  1. ;S:$P(REMOTE,U)=""&('$P(REMOTE,U,2)) REMOTE=""
  1. ;S:$P(REMOTE,U)]"" REMOTE=$P(REMOTE,U)
  1. ;Screen for remote value of NULL - return no diff
  1. I (REMOTE="") Q 0
  1. ;Screen for remote value of "^text" - return no diff
  1. I (REMOTE=(QUOTE_"^")) Q 0
  1. ;Screen for remote value of "@" and no local value - return no diff
  1. I ((REMOTE=(QUOTE_"@"_QUOTE))&(LOCAL="")) Q 0
  1. ;Convert phone numbers to HL7 format
  1. I ((FIELD=.131)!(FIELD=.132)!(FIELD=.219)) I (FILE=2) D
  1. .S LOCAL=$$HLPHONE^HLFNC(LOCAL)
  1. .S REMOTE=$$HLPHONE^HLFNC(REMOTE)
  1. ;Remove dashes from SSN
  1. I (FIELD=.09) I (FILE=2) D
  1. .S LOCAL=$TR(LOCAL,"-","")
  1. .S REMOTE=$TR(REMOTE,"-","")
  1. ;Convert dates to FileMan format (remote dates already in FM format)
  1. I ((FIELD=.03)!(FIELD=.351)) I (FILE=2) D
  1. .S LOCAL=$$EX2INDT^VAFCMGU0(LOCAL)
  1. I (FIELD=.3612) I (FILE=2) D ;*477
  1. .S LOCAL=$$EX2INDT^VAFCMGU0(LOCAL)
  1. .I $L(REMOTE)>7 S REMOTE=$$HL7TFM^XLFDT(REMOTE) ;convert hl7 to fileman date
  1. ;Convert zip+4 to fileman format
  1. ;I (FIELD=.1112) I (FILE=2) D ;**255 **479
  1. ;.S LOCAL=$TR(LOCAL,"-","")
  1. ;.S REMOTE=$TR(REMOTE,"-","")
  1. ;Done - return comparison of local & remote data
  1. Q ('(LOCAL=REMOTE))
  1. ;
  1. GROUP1 ;Line tag to build logical group number one
  1. ;
  1. ;Group one contains the following fields:
  1. ; .01, .03, .09, .351
  1. ;
  1. ;Column width is limited to 30 characters
  1. ;
  1. ;Declare variables
  1. N IENS,TARGET,MESSAGE,LINE,DATA,LOCAL,REMOTE,DIFF
  1. S TARGET="^TMP(""VAFC-MERGE-TO"","_$J_",""DATA"")"
  1. S MESSAGE="^TMP(""VAFC-MERGE-TO"","_$J_",""MESSAGE"")"
  1. ;Initialize global locations
  1. K @TARGET,@MESSAGE
  1. ;Set group index
  1. S @VALMAR@("GRP",1)=VALMCNT
  1. ;Get local data for patient
  1. D GETDATA^VAFCMGU0(VAFCDFN,1,TARGET,MESSAGE)
  1. ;Build display
  1. S IENS=VAFCDFN_","
  1. ;Name
  1. S LOCAL=$$LOCAL(2,.01,IENS,TARGET)
  1. S LOCAL=$E(LOCAL,1,30)
  1. S REMOTE=$$REMOTE(2,.01)
  1. S REMOTE=$E(REMOTE,1,30)
  1. S DIFF=$$DIFFCHK(2,.01,IENS,TARGET)
  1. S LINE=$S(DIFF:"**",1:" ")_" 1"
  1. S:DIFF&($P($G(@VAFCARR@(2,.01)),U,2)) LINE="->"_" 1" ;**477 flag name if different - no longer auto updated
  1. S DATA="Name: "_LOCAL
  1. S LINE=$$INSERT^VAFCMGU0(DATA,LINE,8)
  1. S @VALMAR@(VALMCNT,0)=$$INSERT^VAFCMGU0(REMOTE,LINE,48)
  1. S @VALMAR@("IDX",VALMCNT,1)=""
  1. I (DIFF) D
  1. .S @VALMAR@("E2F",1,1)="2^.01"
  1. .S @VALMAR@("E2G",1)=1
  1. I ('DIFF) D
  1. .K @VALMAR@("E2F",1)
  1. .K @VALMAR@("E2G",1)
  1. W:(+$G(VAFCDOTS)) "."
  1. S VALMCNT=VALMCNT+1
  1. ;SSN
  1. S LOCAL=$$LOCAL(2,.09,IENS,TARGET)
  1. S REMOTE=$$REMOTE(2,.09)
  1. S DIFF=$$DIFFCHK(2,.09,IENS,TARGET)
  1. S LINE=$S(DIFF:"**",1:" ")_" 2"
  1. S:DIFF&($P($G(@VAFCARR@(2,.09)),U,2)) LINE="->"_" 2"
  1. S DATA="SSN: "_LOCAL
  1. S LINE=$$INSERT^VAFCMGU0(DATA,LINE,9)
  1. S @VALMAR@(VALMCNT,0)=$$INSERT^VAFCMGU0(REMOTE,LINE,48)
  1. S @VALMAR@("IDX",VALMCNT,2)=""
  1. I (DIFF) D
  1. .S @VALMAR@("E2F",2,1)="2^.09"
  1. .S @VALMAR@("E2G",2)=1
  1. I ('DIFF) D
  1. .K @VALMAR@("E2F",2)
  1. .K @VALMAR@("E2G",2)
  1. W:(+$G(VAFCDOTS)) "."
  1. S VALMCNT=VALMCNT+1
  1. ;Date of birth
  1. S LOCAL=$$LOCAL(2,.03,IENS,TARGET)
  1. S LOCAL=$P(LOCAL,"@",1)
  1. S REMOTE=$$REMOTE(2,.03)
  1. S REMOTE=$P(REMOTE,"@",1)
  1. S DIFF=$$DIFFCHK(2,.03,IENS,TARGET)
  1. S LINE=$S(DIFF:"**",1:" ")_" 3"
  1. S:DIFF&($P($G(@VAFCARR@(2,.03)),U,2)) LINE="->"_" 3"
  1. S DATA="DOB: "_LOCAL
  1. S LINE=$$INSERT^VAFCMGU0(DATA,LINE,9)
  1. S @VALMAR@(VALMCNT,0)=$$INSERT^VAFCMGU0(REMOTE,LINE,48)
  1. S @VALMAR@("IDX",VALMCNT,3)=""
  1. I (DIFF) D
  1. .S @VALMAR@("E2F",3,1)="2^.03"
  1. .S @VALMAR@("E2G",3)=1
  1. I ('DIFF) D
  1. .K @VALMAR@("E2F",3)
  1. .K @VALMAR@("E2G",3)
  1. W:(+$G(VAFCDOTS)) "."
  1. S VALMCNT=VALMCNT+1
  1. ;Date of death - strip time
  1. S LOCAL=$$LOCAL(2,.351,IENS,TARGET)
  1. ;S LOCAL=$P(LOCAL,"@",1) ;**477 time has already been stripped
  1. S REMOTE=$$REMOTE(2,.351)
  1. ;S REMOTE=$P(REMOTE,"@",1) ;**477 time has already been stripped
  1. S DIFF=$$DIFFCHK(2,.351,IENS,TARGET)
  1. S LINE=$S(DIFF:"**",1:" ")_" 4"
  1. S:DIFF&($P($G(@VAFCARR@(2,.351)),U,2)) LINE="->"_" 4"
  1. S DATA="DOD: "_LOCAL
  1. S LINE=$$INSERT^VAFCMGU0(DATA,LINE,9)
  1. S @VALMAR@(VALMCNT,0)=$$INSERT^VAFCMGU0(REMOTE,LINE,48)
  1. S @VALMAR@("IDX",VALMCNT,4)=""
  1. I (DIFF) D
  1. .S @VALMAR@("E2F",4,1)="2^.351"
  1. .S @VALMAR@("E2G",4)=1
  1. I ('DIFF) D
  1. .K @VALMAR@("E2F",4)
  1. .K @VALMAR@("E2G",4)
  1. W:(+$G(VAFCDOTS)) "."
  1. S VALMCNT=VALMCNT+1
  1. Q