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

DGREGTE2.m

Go to the documentation of this file.
  1. DGREGTE2 ;ALB/BAJ,TDM,BDB - Temporary & Confidential Address Support Routine; 02/27/2006 ; 22 Mar 2017 1:10 PM
  1. ;;5.3;Registration;**688,754,851,1040**;Aug 13, 1993;Build 15
  1. ;
  1. Q
  1. ;
  1. GETOLD(DGCMP,DFN,TYPE) ;populate array with existing address info
  1. N CCIEN,DGCURR,CFORGN,CFSTR,L,T,DGCIEN,DGST,DGCNTY,FDESC,FNODE,FPECE,CCNTRY,COUNTRY
  1. S CFORGN=0,FDESC=$S(TYPE="TEMP":"TEMPORARY ADDRESS COUNTRY",1:"CONFIDENTIAL ADDR COUNTRY")
  1. ; get current country
  1. S FNODE=$S(TYPE="TEMP":.122,TYPE="CONF":.141,1:.11)
  1. S FPECE=$S(TYPE="TEMP":3,TYPE="CONF":16,1:10)
  1. S CCIEN=$P($G(^DPT(DFN,FNODE)),U,FPECE)
  1. I CCIEN="" S CCNTRY=$O(^HL(779.004,"D","UNITED STATES",""))
  1. S CFORGN=$$FORIEN^DGADDUTL(CCIEN)
  1. ;get current address fields and xlate to ^DIQ format
  1. S CFSTR=$$INPT1(DFN,CFORGN),CFSTR=$TR(CFSTR,",",";")
  1. ; Domestic data needs some extra fields
  1. ; add country field before lookup
  1. D GETS^DIQ(2,DFN_",",CFSTR,"EI","DGCURR")
  1. F L=1:1:$L(CFSTR,";") S T=$P(CFSTR,";",L),DGCMP("OLD",T)=$G(DGCURR(2,DFN_",",T,"E"))
  1. S COUNTRY=$$CNTRYI^DGADDUTL(CCIEN) I COUNTRY=-1 S COUNTRY="UNKNOWN COUNTRY"
  1. S DGCMP("OLD",FCNTRY)=COUNTRY
  1. I 'CFORGN D
  1. . S DGCIEN=$G(DGCURR(2,DFN_",",FCOUNTY,"I"))
  1. . S DGST=$G(DGCURR(2,DFN_",",FSTATE,"I"))
  1. . S DGCNTY=$$CNTY^DGREGAZL(DGST,DGCIEN)
  1. . I DGCNTY=-1 S DGCNTY=""
  1. . S DGCMP("OLD",FCOUNTY)="" I DGCNTY]"" S DGCMP("OLD",FCOUNTY)=$P(DGCNTY,U)_" "_$P(DGCNTY,U,3)
  1. Q
  1. INPT1(DFN,FORGN,PSTR) ; address input prompts
  1. N FSTR
  1. ; PSTR contains the full list of address fields to be modified
  1. ; FSTR contains the field list based on country
  1. S PSTR=FSLINE1_","_FSLINE2_","_FSLINE3_","_FCITY_","_FSTATE_","_FCOUNTY_","_FZIP_","_FPROV_","_FPSTAL_","_FCNTRY_","_FPHONE
  1. ;S FSTR=FSLINE1_","_FSLINE2_","_FSLINE3_","_FCITY_","_FSTATE_","_FCOUNTY_","_FZIP_","_FPHONE
  1. S FSTR=FSLINE1_","_FSLINE2_","_FSLINE3_","_FZIP_","_FPHONE ;DG*5.3*851
  1. I FORGN S FSTR=FSLINE1_","_FSLINE2_","_FSLINE3_","_FCITY_","_FPROV_","_FPSTAL_","_FPHONE
  1. Q FSTR
  1. ;
  1. SURE() ; Are you sure prompt
  1. N DIR,X,Y,DUOUT,DTOUT,DIRUT
  1. S DIR(0)="Y"
  1. S DIR("B")="NO"
  1. S DIR("A")=" SURE YOU WANT TO DELETE"
  1. D ^DIR
  1. Q Y
  1. SKIP(DGN,DGINPUT) ; determine whether or not to skip the prompt
  1. N SKIP,NULL
  1. S SKIP=0
  1. S NULL=($G(DGINPUT(FSLINE1))="")!(($G(DGINPUT(FSLINE1))="@"))
  1. I NULL,(DGN=FSLINE2) S SKIP=1
  1. S NULL=($G(DGINPUT(FSLINE2))="")!(($G(DGINPUT(FSLINE2))="@"))
  1. I NULL,(DGN=FSLINE3) S SKIP=1
  1. Q SKIP
  1. ;
  1. INIT ; initialize variables
  1. ; This tag reads the table at FLDDAT (below) to set relationship between
  1. ; variables and Field numbers.
  1. ;
  1. ; Set up array of fields needed
  1. N I,T,FTYPE,VNAME,FNUM,RFLD
  1. F I=1:1 S T=$P($T(FLDDAT+I^DGREGTE2),";;",3) Q:T="QUIT" D
  1. . S FTYPE=$P(T,";",1),VNAME=$P(T,";",2),FNUM=$P(T,";",3)
  1. . I FTYPE=TYPE S @VNAME=FNUM
  1. ; Set up array of field and prompting rules
  1. K T,I
  1. F I=1:1 S T=$P($T(FLDPRMPT+I^DGREGTE2),";;",2) Q:T="QUIT" D
  1. . S RFLD=$P(T,";",1) I RFLD'="ALL" S RFLD=@RFLD
  1. . S RPROC(RFLD,$P(T,";",2),$P(T,";",3))=$P(T,";",4)
  1. Q
  1. FLDDAT ; Table of field values STRUCTURE --> Description;;Type;Variable Name;Field Number
  1. ;;Street Line 1;;TEMP;FSLINE1;.1211
  1. ;;Street Line 2;;TEMP;FSLINE2;.1212
  1. ;;Street Line 3;;TEMP;FSLINE3;.1213
  1. ;;City;;TEMP;FCITY;.1214
  1. ;;State;;TEMP;FSTATE;.1215
  1. ;;County;;TEMP;FCOUNTY;.12111
  1. ;;Zip;;TEMP;FZIP;.12112
  1. ;;Phone;;TEMP;FPHONE;.1219
  1. ;;Province;;TEMP;FPROV;.1221
  1. ;;Postal Code;;TEMP;FPSTAL;.1222
  1. ;;Country;;TEMP;FCNTRY;.1223
  1. ;;Address Node 1;;TEMP;FNODE1;.121
  1. ;;Address Node 2;;TEMP;FNODE2;.122
  1. ;;Country data piece;;TEMP;CPEICE;3
  1. ;;Street Line 1;;CONF;FSLINE1;.1411
  1. ;;Street Line 2;;CONF;FSLINE2;.1412
  1. ;;Street Line 3;;CONF;FSLINE3;.1413
  1. ;;City;;CONF;FCITY;.1414
  1. ;;State;;CONF;FSTATE;.1415
  1. ;;County;;CONF;FCOUNTY;.14111
  1. ;;Zip;;CONF;FZIP;.1416
  1. ;;Phone;;CONF;FPHONE;.1315
  1. ;;Province;;CONF;FPROV;.14114
  1. ;;Postal Code;;CONF;FPSTAL;.14115
  1. ;;Country;;CONF;FCNTRY;.14116
  1. ;;Address Node 1;;CONF;FNODE1;.141
  1. ;;Address Node 2;;CONF;FNODE2;.141
  1. ;;Country data piece;;CONF;CPEICE;16
  1. ;;QUIT;;QUIT
  1. ;;
  1. ; DG*5.3*1040; Change NULL FSLINE1 to REPEAT response code instead of REVERSE
  1. FLDPRMPT ;Table of prompts and responses STRUCTURE --> Description;;Field;Old Value;New Value;Response Code
  1. ;;ALL;NULL;UPCAR;REPEAT
  1. ;;ALL;NULL;DELETE;QUES
  1. ;;ALL;NULL;VALUE;OK
  1. ;;ALL;VALUE;UPCAR;REPEAT
  1. ;;ALL;VALUE;NULL;OK
  1. ;;ALL;VALUE;VALUE;OK
  1. ;;FSLINE1;NULL;NULL;REPEAT
  1. ;;FSLINE2;NULL;NULL;OK
  1. ;;FSLINE3;NULL;NULL;OK
  1. ;;FCITY;NULL;NULL;REVERSE
  1. ;;FSTATE;NULL;NULL;REVERSE
  1. ;;FZIP;NULL;NULL;REVERSE
  1. ;;FCOUNTY;NULL;NULL;REVERSE
  1. ;;FPROV;NULL;NULL;OK
  1. ;;FPSTAL;NULL;NULL;OK
  1. ;;FCNTRY;NULL;NULL;REVERSE
  1. ;;FSLINE1;VALUE;DELETE;INSTRUCT
  1. ;;FSLINE2;VALUE;DELETE;CONFIRM
  1. ;;FSLINE3;VALUE;DELETE;CONFIRM
  1. ;;FCITY;VALUE;DELETE;INSTRUCT
  1. ;;FSTATE;VALUE;DELETE;INSTRUCT
  1. ;;FZIP;VALUE;DELETE;INSTRUCT
  1. ;;FCOUNTY;VALUE;DELETE;INSTRUCT
  1. ;;FPROV;VALUE;DELETE;CONFIRM
  1. ;;FPSTAL;VALUE;DELETE;CONFIRM
  1. ;;FCNTRY;VALUE;DELETE;REVERSE
  1. ;;QUIT
  1. ;;