EAS1207P ;DEV/BJR - EAS*1.0*207 POST-INSTALL ; Sep 14, 2021@09:25
 ;;1.0;ENROLLMENT APPLICATION SYSTEM;**207**;MAR 15,2001;Build 4
 ;
 Q
 ;
 ; ICR #10141 supports BMES^XPDUTL call
 ; ICR #2054 supports IENS^DILF and CLEAN^DILF calls
 ; ICR #2053 supports UPDATE^DIE call
 ; ICR #10103 supports FMADD^XLFDT call
 ; ICR #10056 supports ^DIC(5) direct global read
 ; ICR #10104 supports UP^XLFSTR call
 ;
PRETRAN ;Load tables
 I $G(DUZ("AG"))'="V" Q
 M @XPDGREF@("EAS1207")=^XTMP("EAS1207")
 Q
 ;
EN ; Display a message to inform the user that there will be a slight
 ; delay when installing the patch.
 ;
 N EASMESS
 S EASMESS(1)="POST-INSTALLATION PROCESSING"
 S EASMESS(2)="---------------------------"
 S EASMESS(3)="This installation will take some time due to the large size of the file."
 S EASMESS(4)="Please be patient and allow the process to complete.  Thank you!"
 S EASMESS(5)=""
 D BMES^XPDUTL(.EASMESS)
 D ADD
 Q
ADD ; Parse the data coming in and file it to the globals
 K ^XTMP("EAS1207")
 M ^XTMP("EAS1207")=@XPDGREF@("EAS1207")
 S ^XTMP("EAS1207",0)=$$FMADD^XLFDT(DT,30)_U_DT_U_"Create Zip Code FIPS code Xref"
 S ^XTMP("EAS1207H",0)=$$FMADD^XLFDT(DT,30)_U_DT_U_"Duplicate FIPS not filed"
 N EASGMT,EASCNTR,EASCNT,EASJ,EASRECA,EASRECR,EASDATA,EASMSG,EASADD,EASX,EASNODE
 S EASRECA=0,EASRECR=0
 S EASCNTR="" F  S EASCNTR=$O(^XTMP("EAS1207","DATA",2021,EASCNTR)) Q:'EASCNTR  D
 .S EASGMT("YEAR")=3210000
 .S EASGMT("COUNTY NAME")=$$UP^XLFSTR($P(^XTMP("EAS1207","DATA",2021,EASCNTR),U,2))
 .S EASGMT("STATE")=$P(^XTMP("EAS1207","DATA",2021,EASCNTR),U)
 .S EASGMT("MSA")=$P(^XTMP("EAS1207","DATA",2021,EASCNTR),U,4)
 .I EASGMT("MSA")=10000 S EASGMT("MSA")=0
 .F EASCNT=1:1:8 S EASGMT("THR"_EASCNT)=$P(^XTMP("EAS1207","DATA",2021,EASCNTR),U,(EASCNT+4))
 .S EASGMT("STATE")=$E("00",1,2-$L(EASGMT("STATE")))_EASGMT("STATE")
 .S EASGMT("FIPS")=$P(^XTMP("EAS1207","DATA",2021,EASCNTR),U,3)
 .S EASGMT("ST IEN")=$O(^DIC(5,"C",EASGMT("STATE"),""))
 .S EASDATA(.01)=$G(EASGMT("YEAR"))
 .S EASDATA(.02)=$G(EASGMT("FIPS"))
 .S EASDATA(.03)=$G(EASGMT("ST IEN"))
 .S EASDATA(.04)=$G(EASGMT("COUNTY NAME"))
 .S EASDATA(.05)=$G(EASGMT("MSA"))
 .F EASJ=1:1:8 S EASDATA(.10+(EASJ*.01))=$G(EASGMT("THR"_EASJ))
 .S EASX="" F  S EASX=$O(EASDATA(EASX)) Q:'EASX
 .S EASADD=$$FILE(712.5,,.EASDATA,.EASERR)
 .I EASADD S EASRECA=EASRECA+1
 .I 'EASADD D
 ..S EASRECR=EASRECR+1
 ..S EASNODE=EASDATA(.01)_"^"_EASDATA(.02)_"^"_EASDATA(.03)_"^"_EASDATA(.04)_"^"_EASDATA(.05)
 ..S EASNODE=EASNODE_"^"_EASDATA(.11)_"^"_EASDATA(.12)_"^"_EASDATA(.13)_"^"_EASDATA(.14)
 ..S EASNODE=EASNODE_"^"_EASDATA(.15)_"^"_EASDATA(.16)_"^"_EASDATA(.17)_"^"_EASDATA(.18)
 ..S ^XTMP("EAS1207H",EASRECR)=EASNODE_"^"_$G(EASERR)
 S EASMSG(1)="Number of records added: "_EASRECA
 S EASMSG(2)="Number of duplicate records: "_EASRECR
 D BMES^XPDUTL(.EASMSG)
 Q
FILE(EASFILE,EASENDA,EASDATA,EASERR) ; File Data
 ;Description: Creates a new record and files the data.
 ; Input:
 ; EASFILE - File or sub-file number
 ; EASENDA - New name for traditional FileMan DA array with same
 ; meaning. Pass by reference.  Only needed if adding to a
 ; subfile.
 ; EASDATA - Data array to file, pass by reference
 ; Format: EASDATA(<field #>)=<value>
 ;
 ; Output:
 ; Function Value - If no error then it returns the ien of the created record, else returns NULL.
 ; EASENDA - returns the ien of the new record, NULL if none created.  If needed, pass by reference.
 ; EASERR - optional error message - if needed, pass by reference
 ;
 ; Example: To add a record in subfile 2.0361 in the record with ien=353
 ; with the field .01 value = 21:
 ; S EASDATA(.01)=21,EASENDA(1)=353 I $$FILE^EAS1207(2.0361,.EASENDA,.EASDATA) W!,"DONE"
 ;
 ; Example: If creating a record not in a subfile, would look like this:
 ; S EASDATA(.01)=21 I $$FILE^EAS1207(867,,.EASDATA) W !,"DONE"
 ;
 N EASFDA,EASFLD,EASIENA,EASIENS,EASERRS,EASIEN,DIERR
 ;
 ;EASIENS - Internal Entry Number String defined by FM
 ;EASIENA - the Internal Entry Number Array defined by FM
 ;EASFDA - the FDA array defined by FM
 ;EASIEN - the ien of the new record
 ;
 S EASENDA="+1"
 S EASIENS=$$IENS^DILF(.EASENDA)
 S EASFLD=0
 F  S EASFLD=$O(EASDATA(EASFLD)) Q:'EASFLD  D
 .S EASFDA(EASFILE,EASIENS,EASFLD)=$G(EASDATA(EASFLD))
 D UPDATE^DIE("","EASFDA","EASIENA","EASERRS(1)")
 I +$G(DIERR) D
 .S EASERR=$G(EASERRS(1,"DIERR",1,"TEXT",1))
 .S EASIEN=""
 E  D
 .S EASIEN=EASIENA(1)
 .S EASERR=""
 D CLEAN^DILF
 S EASENDA=EASIEN
 Q EASIEN
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HEAS1207P   4546     printed  Sep 23, 2025@19:29:24                                                                                                                                                                                                    Page 2
EAS1207P  ;DEV/BJR - EAS*1.0*207 POST-INSTALL ; Sep 14, 2021@09:25
 +1       ;;1.0;ENROLLMENT APPLICATION SYSTEM;**207**;MAR 15,2001;Build 4
 +2       ;
 +3        QUIT 
 +4       ;
 +5       ; ICR #10141 supports BMES^XPDUTL call
 +6       ; ICR #2054 supports IENS^DILF and CLEAN^DILF calls
 +7       ; ICR #2053 supports UPDATE^DIE call
 +8       ; ICR #10103 supports FMADD^XLFDT call
 +9       ; ICR #10056 supports ^DIC(5) direct global read
 +10      ; ICR #10104 supports UP^XLFSTR call
 +11      ;
PRETRAN   ;Load tables
 +1        IF $GET(DUZ("AG"))'="V"
               QUIT 
 +2        MERGE @XPDGREF@("EAS1207")=^XTMP("EAS1207")
 +3        QUIT 
 +4       ;
EN        ; Display a message to inform the user that there will be a slight
 +1       ; delay when installing the patch.
 +2       ;
 +3        NEW EASMESS
 +4        SET EASMESS(1)="POST-INSTALLATION PROCESSING"
 +5        SET EASMESS(2)="---------------------------"
 +6        SET EASMESS(3)="This installation will take some time due to the large size of the file."
 +7        SET EASMESS(4)="Please be patient and allow the process to complete.  Thank you!"
 +8        SET EASMESS(5)=""
 +9        DO BMES^XPDUTL(.EASMESS)
 +10       DO ADD
 +11       QUIT 
ADD       ; Parse the data coming in and file it to the globals
 +1        KILL ^XTMP("EAS1207")
 +2        MERGE ^XTMP("EAS1207")=@XPDGREF@("EAS1207")
 +3        SET ^XTMP("EAS1207",0)=$$FMADD^XLFDT(DT,30)_U_DT_U_"Create Zip Code FIPS code Xref"
 +4        SET ^XTMP("EAS1207H",0)=$$FMADD^XLFDT(DT,30)_U_DT_U_"Duplicate FIPS not filed"
 +5        NEW EASGMT,EASCNTR,EASCNT,EASJ,EASRECA,EASRECR,EASDATA,EASMSG,EASADD,EASX,EASNODE
 +6        SET EASRECA=0
           SET EASRECR=0
 +7        SET EASCNTR=""
           FOR 
               SET EASCNTR=$ORDER(^XTMP("EAS1207","DATA",2021,EASCNTR))
               if 'EASCNTR
                   QUIT 
               Begin DoDot:1
 +8                SET EASGMT("YEAR")=3210000
 +9                SET EASGMT("COUNTY NAME")=$$UP^XLFSTR($PIECE(^XTMP("EAS1207","DATA",2021,EASCNTR),U,2))
 +10               SET EASGMT("STATE")=$PIECE(^XTMP("EAS1207","DATA",2021,EASCNTR),U)
 +11               SET EASGMT("MSA")=$PIECE(^XTMP("EAS1207","DATA",2021,EASCNTR),U,4)
 +12               IF EASGMT("MSA")=10000
                       SET EASGMT("MSA")=0
 +13               FOR EASCNT=1:1:8
                       SET EASGMT("THR"_EASCNT)=$PIECE(^XTMP("EAS1207","DATA",2021,EASCNTR),U,(EASCNT+4))
 +14               SET EASGMT("STATE")=$EXTRACT("00",1,2-$LENGTH(EASGMT("STATE")))_EASGMT("STATE")
 +15               SET EASGMT("FIPS")=$PIECE(^XTMP("EAS1207","DATA",2021,EASCNTR),U,3)
 +16               SET EASGMT("ST IEN")=$ORDER(^DIC(5,"C",EASGMT("STATE"),""))
 +17               SET EASDATA(.01)=$GET(EASGMT("YEAR"))
 +18               SET EASDATA(.02)=$GET(EASGMT("FIPS"))
 +19               SET EASDATA(.03)=$GET(EASGMT("ST IEN"))
 +20               SET EASDATA(.04)=$GET(EASGMT("COUNTY NAME"))
 +21               SET EASDATA(.05)=$GET(EASGMT("MSA"))
 +22               FOR EASJ=1:1:8
                       SET EASDATA(.10+(EASJ*.01))=$GET(EASGMT("THR"_EASJ))
 +23               SET EASX=""
                   FOR 
                       SET EASX=$ORDER(EASDATA(EASX))
                       if 'EASX
                           QUIT 
 +24               SET EASADD=$$FILE(712.5,,.EASDATA,.EASERR)
 +25               IF EASADD
                       SET EASRECA=EASRECA+1
 +26               IF 'EASADD
                       Begin DoDot:2
 +27                       SET EASRECR=EASRECR+1
 +28                       SET EASNODE=EASDATA(.01)_"^"_EASDATA(.02)_"^"_EASDATA(.03)_"^"_EASDATA(.04)_"^"_EASDATA(.05)
 +29                       SET EASNODE=EASNODE_"^"_EASDATA(.11)_"^"_EASDATA(.12)_"^"_EASDATA(.13)_"^"_EASDATA(.14)
 +30                       SET EASNODE=EASNODE_"^"_EASDATA(.15)_"^"_EASDATA(.16)_"^"_EASDATA(.17)_"^"_EASDATA(.18)
 +31                       SET ^XTMP("EAS1207H",EASRECR)=EASNODE_"^"_$GET(EASERR)
                       End DoDot:2
               End DoDot:1
 +32       SET EASMSG(1)="Number of records added: "_EASRECA
 +33       SET EASMSG(2)="Number of duplicate records: "_EASRECR
 +34       DO BMES^XPDUTL(.EASMSG)
 +35       QUIT 
FILE(EASFILE,EASENDA,EASDATA,EASERR) ; File Data
 +1       ;Description: Creates a new record and files the data.
 +2       ; Input:
 +3       ; EASFILE - File or sub-file number
 +4       ; EASENDA - New name for traditional FileMan DA array with same
 +5       ; meaning. Pass by reference.  Only needed if adding to a
 +6       ; subfile.
 +7       ; EASDATA - Data array to file, pass by reference
 +8       ; Format: EASDATA(<field #>)=<value>
 +9       ;
 +10      ; Output:
 +11      ; Function Value - If no error then it returns the ien of the created record, else returns NULL.
 +12      ; EASENDA - returns the ien of the new record, NULL if none created.  If needed, pass by reference.
 +13      ; EASERR - optional error message - if needed, pass by reference
 +14      ;
 +15      ; Example: To add a record in subfile 2.0361 in the record with ien=353
 +16      ; with the field .01 value = 21:
 +17      ; S EASDATA(.01)=21,EASENDA(1)=353 I $$FILE^EAS1207(2.0361,.EASENDA,.EASDATA) W!,"DONE"
 +18      ;
 +19      ; Example: If creating a record not in a subfile, would look like this:
 +20      ; S EASDATA(.01)=21 I $$FILE^EAS1207(867,,.EASDATA) W !,"DONE"
 +21      ;
 +22       NEW EASFDA,EASFLD,EASIENA,EASIENS,EASERRS,EASIEN,DIERR
 +23      ;
 +24      ;EASIENS - Internal Entry Number String defined by FM
 +25      ;EASIENA - the Internal Entry Number Array defined by FM
 +26      ;EASFDA - the FDA array defined by FM
 +27      ;EASIEN - the ien of the new record
 +28      ;
 +29       SET EASENDA="+1"
 +30       SET EASIENS=$$IENS^DILF(.EASENDA)
 +31       SET EASFLD=0
 +32       FOR 
               SET EASFLD=$ORDER(EASDATA(EASFLD))
               if 'EASFLD
                   QUIT 
               Begin DoDot:1
 +33               SET EASFDA(EASFILE,EASIENS,EASFLD)=$GET(EASDATA(EASFLD))
               End DoDot:1
 +34       DO UPDATE^DIE("","EASFDA","EASIENA","EASERRS(1)")
 +35       IF +$GET(DIERR)
               Begin DoDot:1
 +36               SET EASERR=$GET(EASERRS(1,"DIERR",1,"TEXT",1))
 +37               SET EASIEN=""
               End DoDot:1
 +38      IF '$TEST
               Begin DoDot:1
 +39               SET EASIEN=EASIENA(1)
 +40               SET EASERR=""
               End DoDot:1
 +41       DO CLEAN^DILF
 +42       SET EASENDA=EASIEN
 +43       QUIT EASIEN