VAFCMGB ;ALB/JRP,PTD-DEMOGRAPHIC MERGE SCREEN BUILDER ;18-OCT-1996
 ;;5.3;Registration;**149,479**;Aug 13, 1993
 ;
 ;NOTE: The VAFCMGB* routines contain line tags used to build the
 ;      display screen of a List Manager interface.  All line tags
 ;      assume that the following variables are defined and contained
 ;      in the local partition.
 ;
 ;Input  : VAFCDFN - Pointer to entry in PATIENT file (#2) to merge
 ;                   data into
 ;         VAFCARR - Array contain data to merge (full global reference)
 ;                   VAFCARR() should be set as follows:
 ;                     VAFCARR(File,Field) = Value
 ;                       Where File = File number Value is from
 ;                             Field = Field number Value is from
 ;                             Value = Info to merge
 ;                       Notes: Dates must be in FileMan format
 ;                            : Special considerations for Value
 ;                                "@"  - Displays <DELETE> and deletes
 ;                                       local value if merged
 ;                                "^text"  - Displays text and ignores
 ;                                           field if merged
 ;                                NULL  - Displays <UNSPECIFIED> and
 ;                                        ignores field if merged
 ;                                Doesn't exist  - Displays <UNSPECIFIED>
 ;                                                 and ignores field
 ;                                                 if merged
 ;         VAFCFROM - Text denoting where merge data cam from (1-35)
 ;         VAFCEVDT - Date/time merge data was instantiated (FileMan)
 ;         VAFCDOTS - Flag indicating if progress dots should be printed
 ;                    0 = No
 ;                    1 = Yes
 ;         All variables set by List Manager Interface
 ;Output : Display area and variables required List Manager interface
 ;         Display
 ;           VALMAR(Line,0) = Line of text in display
 ;         Indexes
 ;           VALMAR("IDX",Line,Entry) = ""
 ;           VALMAR("E2F",Entry,N) = File^Field
 ;             N => Allows for multiple fields per entry (starts with 1)
 ;           VALMAR("E2G",Entry) = Group entry is contained in
 ;           VALMAR("GRP",Group) = First line of group in display
 ;             Note: The E2F and E2G indexes are only set if the data
 ;                   to merge does not match the local data
 ;Notes  : Existance/validity of input variables is assumed
 ;       : Dates are converted to internal format for comparison
 ;       : Phone # are converted to HL7 format for comparison & display
 ;
BLDALL ;Main entry point to build entire List Manager display
 ;
 ;Input  : See note above
 ;Output : See note above
 ;
 ;Declare variables
 N LASTNTRY
 ;Build logical group 1
 D GROUP1^VAFCMGB0
 ;White space
 S LASTNTRY=+$O(@VALMAR@("IDX",VALMCNT-1,0))
 S @VALMAR@(VALMCNT,0)=" "
 S @VALMAR@("IDX",VALMCNT,LASTNTRY)=""
 S VALMCNT=VALMCNT+1
 ;Build logical group 2
 D GROUP2^VAFCMGB1
 ;White space
 ;S LASTNTRY=+$O(@VALMAR@("IDX",VALMCNT-1,0))
 ;S @VALMAR@(VALMCNT,0)=" "
 ;S @VALMAR@("IDX",VALMCNT,LASTNTRY)=""
 ;S VALMCNT=VALMCNT+1
 ;Build logical group 3
 D GROUP3^VAFCMGB2
 ;White space - eliminated with **479
 ;S LASTNTRY=+$O(@VALMAR@("IDX",VALMCNT-1,0))
 ;S @VALMAR@(VALMCNT,0)=" "
 ;S @VALMAR@("IDX",VALMCNT,LASTNTRY)=""
 ;S VALMCNT=VALMCNT+1
 ;S @VALMAR@(VALMCNT,0)=" "
 ;S @VALMAR@("IDX",VALMCNT,LASTNTRY)=""
 ;S VALMCNT=VALMCNT+1
 ;Build logical group 4
 D GROUP4^VAFCMGB3
 ;Done
 Q
 ;
RBLDGRP(GROUP) ;Rebuild specified group in List Manager display
 ;
 ;Input  : GROUP - Number denoting which logical group in display
 ;                 should be rebuilt
 ;                 Groups 1, 2, 3, and 4 are currently supported
 ;         See above note on input variables
 ;Output : See above note on output
 ;
 ;Check input
 S GROUP=+$G(GROUP)
 ;Declare variables
 N VALMCNT
 ;Get starting line number of group
 S VALMCNT=+$G(@VALMAR@("GRP",GROUP))
 ;Rebuild logical group 1 - done
 I (GROUP=1) D GROUP1^VAFCMGB0 Q
 ;Rebuild logical group 2 - done
 I (GROUP=2) D GROUP2^VAFCMGB1 Q
 ;Rebuild logical group 3 - done
 I (GROUP=3) D GROUP3^VAFCMGB2 Q
 ;Rebuild logical group 4 - done
 I (GROUP=4) D GROUP4^VAFCMGB3 Q
 ;Done - did nothing
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HVAFCMGB   4412     printed  Sep 23, 2025@20:37:42                                                                                                                                                                                                     Page 2
VAFCMGB   ;ALB/JRP,PTD-DEMOGRAPHIC MERGE SCREEN BUILDER ;18-OCT-1996
 +1       ;;5.3;Registration;**149,479**;Aug 13, 1993
 +2       ;
 +3       ;NOTE: The VAFCMGB* routines contain line tags used to build the
 +4       ;      display screen of a List Manager interface.  All line tags
 +5       ;      assume that the following variables are defined and contained
 +6       ;      in the local partition.
 +7       ;
 +8       ;Input  : VAFCDFN - Pointer to entry in PATIENT file (#2) to merge
 +9       ;                   data into
 +10      ;         VAFCARR - Array contain data to merge (full global reference)
 +11      ;                   VAFCARR() should be set as follows:
 +12      ;                     VAFCARR(File,Field) = Value
 +13      ;                       Where File = File number Value is from
 +14      ;                             Field = Field number Value is from
 +15      ;                             Value = Info to merge
 +16      ;                       Notes: Dates must be in FileMan format
 +17      ;                            : Special considerations for Value
 +18      ;                                "@"  - Displays <DELETE> and deletes
 +19      ;                                       local value if merged
 +20      ;                                "^text"  - Displays text and ignores
 +21      ;                                           field if merged
 +22      ;                                NULL  - Displays <UNSPECIFIED> and
 +23      ;                                        ignores field if merged
 +24      ;                                Doesn't exist  - Displays <UNSPECIFIED>
 +25      ;                                                 and ignores field
 +26      ;                                                 if merged
 +27      ;         VAFCFROM - Text denoting where merge data cam from (1-35)
 +28      ;         VAFCEVDT - Date/time merge data was instantiated (FileMan)
 +29      ;         VAFCDOTS - Flag indicating if progress dots should be printed
 +30      ;                    0 = No
 +31      ;                    1 = Yes
 +32      ;         All variables set by List Manager Interface
 +33      ;Output : Display area and variables required List Manager interface
 +34      ;         Display
 +35      ;           VALMAR(Line,0) = Line of text in display
 +36      ;         Indexes
 +37      ;           VALMAR("IDX",Line,Entry) = ""
 +38      ;           VALMAR("E2F",Entry,N) = File^Field
 +39      ;             N => Allows for multiple fields per entry (starts with 1)
 +40      ;           VALMAR("E2G",Entry) = Group entry is contained in
 +41      ;           VALMAR("GRP",Group) = First line of group in display
 +42      ;             Note: The E2F and E2G indexes are only set if the data
 +43      ;                   to merge does not match the local data
 +44      ;Notes  : Existance/validity of input variables is assumed
 +45      ;       : Dates are converted to internal format for comparison
 +46      ;       : Phone # are converted to HL7 format for comparison & display
 +47      ;
BLDALL    ;Main entry point to build entire List Manager display
 +1       ;
 +2       ;Input  : See note above
 +3       ;Output : See note above
 +4       ;
 +5       ;Declare variables
 +6        NEW LASTNTRY
 +7       ;Build logical group 1
 +8        DO GROUP1^VAFCMGB0
 +9       ;White space
 +10       SET LASTNTRY=+$ORDER(@VALMAR@("IDX",VALMCNT-1,0))
 +11       SET @VALMAR@(VALMCNT,0)=" "
 +12       SET @VALMAR@("IDX",VALMCNT,LASTNTRY)=""
 +13       SET VALMCNT=VALMCNT+1
 +14      ;Build logical group 2
 +15       DO GROUP2^VAFCMGB1
 +16      ;White space
 +17      ;S LASTNTRY=+$O(@VALMAR@("IDX",VALMCNT-1,0))
 +18      ;S @VALMAR@(VALMCNT,0)=" "
 +19      ;S @VALMAR@("IDX",VALMCNT,LASTNTRY)=""
 +20      ;S VALMCNT=VALMCNT+1
 +21      ;Build logical group 3
 +22       DO GROUP3^VAFCMGB2
 +23      ;White space - eliminated with **479
 +24      ;S LASTNTRY=+$O(@VALMAR@("IDX",VALMCNT-1,0))
 +25      ;S @VALMAR@(VALMCNT,0)=" "
 +26      ;S @VALMAR@("IDX",VALMCNT,LASTNTRY)=""
 +27      ;S VALMCNT=VALMCNT+1
 +28      ;S @VALMAR@(VALMCNT,0)=" "
 +29      ;S @VALMAR@("IDX",VALMCNT,LASTNTRY)=""
 +30      ;S VALMCNT=VALMCNT+1
 +31      ;Build logical group 4
 +32       DO GROUP4^VAFCMGB3
 +33      ;Done
 +34       QUIT 
 +35      ;
RBLDGRP(GROUP) ;Rebuild specified group in List Manager display
 +1       ;
 +2       ;Input  : GROUP - Number denoting which logical group in display
 +3       ;                 should be rebuilt
 +4       ;                 Groups 1, 2, 3, and 4 are currently supported
 +5       ;         See above note on input variables
 +6       ;Output : See above note on output
 +7       ;
 +8       ;Check input
 +9        SET GROUP=+$GET(GROUP)
 +10      ;Declare variables
 +11       NEW VALMCNT
 +12      ;Get starting line number of group
 +13       SET VALMCNT=+$GET(@VALMAR@("GRP",GROUP))
 +14      ;Rebuild logical group 1 - done
 +15       IF (GROUP=1)
               DO GROUP1^VAFCMGB0
               QUIT 
 +16      ;Rebuild logical group 2 - done
 +17       IF (GROUP=2)
               DO GROUP2^VAFCMGB1
               QUIT 
 +18      ;Rebuild logical group 3 - done
 +19       IF (GROUP=3)
               DO GROUP3^VAFCMGB2
               QUIT 
 +20      ;Rebuild logical group 4 - done
 +21       IF (GROUP=4)
               DO GROUP4^VAFCMGB3
               QUIT 
 +22      ;Done - did nothing
 +23       QUIT