[613] | 1 | DPTNAME1 ;BPOIFO/KEITH - NAME STANDARDIZATION ; 12 Aug 2002@20:20
|
---|
| 2 | ;;5.3;Registration;**244,620,720**;Aug 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | NCEVAL(DGC,DGX) ;Evaluate name component entry values
|
---|
| 5 | ;Input: DGC=name component (e.g. FAMILY, GIVEN, etc.)
|
---|
| 6 | ; DGX=input value for name
|
---|
| 7 | ;
|
---|
| 8 | Q:DGX="@"
|
---|
| 9 | N DGM,DGL,DGI
|
---|
| 10 | I DGX=""!($E(DGX)=U) Q
|
---|
| 11 | D CVALID(DGC,DGX,.DGM)
|
---|
| 12 | M DIR("?")=DGM("HELP") S DGI=$O(DIR("?",""),-1) I DGI D
|
---|
| 13 | .S DIR("?")=DIR("?",DGI) K DIR("?",DGI)
|
---|
| 14 | .Q
|
---|
| 15 | I "???"[DGX Q
|
---|
| 16 | I DGM("RESULT")="" D Q
|
---|
| 17 | .S DGI="" F S DGI=$O(DGM("ERROR",DGI)) Q:DGI="" D
|
---|
| 18 | ..I DGM("ERROR",DGI)["''" S $P(DGM("ERROR",DGI),"'",2)=DGX
|
---|
| 19 | ..W:DGI=1 ! W !,DGM("ERROR",DGI)
|
---|
| 20 | ..Q
|
---|
| 21 | .K DGX
|
---|
| 22 | .Q
|
---|
| 23 | I DGM("RESULT")'=DGX W " (",DGM("RESULT"),")"
|
---|
| 24 | S DGX=DGM("RESULT")
|
---|
| 25 | Q
|
---|
| 26 | ;
|
---|
| 27 | FAMILY ;Family name help text
|
---|
| 28 | S DGM("LENGTH")="1-35"
|
---|
| 29 | D HTEXT("family (last) name.",DGM("LENGTH"))
|
---|
| 30 | S DGM("HELP",4)="Input values less than 3 characters in length must be all alpha characters."
|
---|
| 31 | Q
|
---|
| 32 | ;
|
---|
| 33 | GIVEN ;Given name help text
|
---|
| 34 | S DGM("LENGTH")="1-25"
|
---|
| 35 | D HTEXT("given (first) name.",DGM("LENGTH"))
|
---|
| 36 | Q
|
---|
| 37 | ;
|
---|
| 38 | MIDDLE ;Middle name help text
|
---|
| 39 | S DGM("LENGTH")="1-25"
|
---|
| 40 | D HTEXT("middle name.",DGM("LENGTH"))
|
---|
| 41 | S DGM("HELP",4)="Middle names of 'NMI' and 'NMN' are prohibited."
|
---|
| 42 | Q
|
---|
| 43 | ;
|
---|
| 44 | PREFIX ;Name prefix help text
|
---|
| 45 | S DGM("LENGTH")="1-10"
|
---|
| 46 | D HTEXT("name prefix, such as MR or MS.",DGM("LENGTH"))
|
---|
| 47 | Q
|
---|
| 48 | ;
|
---|
| 49 | SUFFIX ;Name suffix help text
|
---|
| 50 | S DGM("LENGTH")="1-10"
|
---|
| 51 | D HTEXT("suffix(es), such as JR, SR, II, or III.",DGM("LENGTH"))
|
---|
| 52 | Q
|
---|
| 53 | ;
|
---|
| 54 | DEGREE ;Name degree help text
|
---|
| 55 | S DGM("LENGTH")="1-10"
|
---|
| 56 | D HTEXT("academic degree, such as BS, BA, MD, or PHD.",DGM("LENGTH"))
|
---|
| 57 | Q
|
---|
| 58 | ;
|
---|
| 59 | CVALID(DGC,DGX,DGM) ;Name component validation
|
---|
| 60 | ; Input: DGC=name component (e.g. FAMILY, GIVEN, etc.)
|
---|
| 61 | ; DGX=input value to validate
|
---|
| 62 | ; DGM=array to return results and errors (pass by reference)
|
---|
| 63 | ;
|
---|
| 64 | ;Output: DGM array in the format:
|
---|
| 65 | ; DGM("ERROR",n)=error text (if any)
|
---|
| 66 | ; DGM("HELP",n)=help text
|
---|
| 67 | ; DGM("LENGTH")=field length in length (e.g. 3-30)
|
---|
| 68 | ; DGM("RESULT")=transformed name value (null if invalid entry)
|
---|
| 69 | ;
|
---|
| 70 | N DGL,DGF,DGI,DGR,DGMSG
|
---|
| 71 | S DGF="FAMILY^GIVEN^MIDDLE^PREFIX^SUFFIX^DEGREE"
|
---|
| 72 | S DGF=$P(DGF,DGC),DGF=$L(DGF,U)
|
---|
| 73 | D @DGC ;Set up length and help text
|
---|
| 74 | S DGL=+$P(DGM("LENGTH"),"-")_U_+$P(DGM("LENGTH"),"-",2)
|
---|
| 75 | D CVALID^XLFNAME8(DGC,DGX,.DGM)
|
---|
| 76 | Q
|
---|
| 77 | ;
|
---|
| 78 | HTEXT(DGF,DGL) ;Generic help text
|
---|
| 79 | ;Input: DGF=field name
|
---|
| 80 | ; DGL=field length
|
---|
| 81 | S DGM("HELP",1)="Answer with this persons "_DGF
|
---|
| 82 | S DGM("HELP",2)="The response must be "_DGL_" characters in length and may only contain"
|
---|
| 83 | S DGM("HELP",3)="uppercase alpha characters, spaces, hyphens and apostrophes."
|
---|
| 84 | Q
|
---|
| 85 | ;
|
---|
| 86 | JUMP(DGI) ;Evaluate request to jump fields
|
---|
| 87 | N DGX,DGY S DGX=$P($E(X,2,99)," ")
|
---|
| 88 | I (U_DGCOM)'[(U_DGX) D Q
|
---|
| 89 | .W !,"While editing name components, only jumping to other components is allowed!",$C(7)
|
---|
| 90 | .Q
|
---|
| 91 | I (U_DGCOM_U)[(U_DGX_U) S DGI=$O(DGC(DGX,0)) Q
|
---|
| 92 | S DGI=$O(DGC($O(DGC(DGX)),0))
|
---|
| 93 | S DGY=$P(DGCOM,U,DGI)_$P(DGCX,U,DGI) W $P(DGY,DGX,2)
|
---|
| 94 | Q
|
---|
| 95 | ;
|
---|