XLFNAME5 ;SFISC/MKO-INTERACTIVE OPTION TO CONVERT NAMES ;11:32 AM 28 Jan 2000
;;8.0;KERNEL;**134**;Jul 10, 1995
CONVERT ;Convert Names
N DIR,DIROUT,DIRUT,DTOUT,DUOUT,XUIEN,XUNMSP,X,Y
S XUNMSP="XLFNAME"
;
D CINTRO
S DIR(0)="YO",DIR("A")="Do you wish to continue"
S DIR("?",1)=" Enter 'Y' to convert the Names in the New Person file"
S DIR("?",2)=" to standard form, and to store the component parts of"
S DIR("?")=" the Names in the new Name Components file."
W ! D ^DIR K DIR Q:$D(DIRUT)!'Y
;
;Check if the conversion was already run.
;Determine which record to start with.
S XUIEN=+$P($G(^XTMP(XUNMSP,0)),U,4)
I XUIEN D Q:$D(DIRUT)
. I $O(^VA(200,XUIEN)) D
.. W !!,"It appears that the conversion has already been performed through"
.. W !,"record #"_XUIEN_" in the New Person file."
.. W !!,"Do you want to continue the conversion from after this point"
.. W !,"or convert the entries from the beginning of the file."
.. S DIR(0)="S^C:Continue the conversion after record #"_XUIEN_";S:Start again from the beginning of the file"
.. S DIR("?",1)=" Enter 'C' to start the conversion and parsing process from the"
.. S DIR("?",2)=" after record #"_XUIEN_" in the New Person file."
.. S DIR("?",3)=" "
.. S DIR("?",4)=" Enter 'B' to start the conversion and parsing process from the"
.. S DIR("?",5)=" the beginning of the New Person file."
.. S DIR("?",6)=" "
.. S DIR("?",7)=" NOTE: There is no harm in running the conversion again from the"
.. S DIR("?",8)=" beginning. However, if the conversion routine previously parsed a name"
.. S DIR("?",9)=" into its component parts incorrectly, and you corrected those problems"
.. S DIR("?",10)=" by manually editing the name components, your corrections will be lost"
.. S DIR("?")=" if you run the conversion again."
.. D ^DIR K DIR Q:$D(DIRUT)
.. S:Y="S" XUIEN=0
. E D
.. W !!,"It appears that the conversion has already been performed on all entries"
.. W !,"in the New person file.",!
.. S DIR(0)="YO",DIR("A")="Do you want to run the conversion again"
.. S DIR("?",1)=" Enter 'Y' if you wish to run the New Person Name conversion again."
.. S DIR("?",2)=" "
.. S DIR("?",3)=" NOTE: There is no harm in running the conversion again. However, if the"
.. S DIR("?",4)=" conversion routine previously parsed a name into its component parts"
.. S DIR("?",5)=" incorrectly, and you corrected those problems by manually editing the"
.. S DIR("?",6)=" name components, your corrections will be lost if you run the conversion"
.. S DIR("?")=" again."
.. D ^DIR K DIR S:'Y DIRUT=1 Q:$D(DIRUT)
.. S XUIEN=0
;
D NEWPERS^XLFNAME3("CPR"_$E("K",'XUIEN),+XUIEN)
S:$D(^XTMP(XUNMSP,0))#2 $P(^(0),U,3)="Created by CONVERT~XLFNAME"
Q
;
CINTRO ;Print introductory comments
;;This routine will run the New Person Name Standardization conversion. It
;;will loop through the entries in the New Person file and:
;;
;; 1. Convert the Names (field #.01) in the New Person file to standard
;; form.
;;
;; 2. Parse each Name into its component parts and store those parts
;; in the new Name Components file (#20).
;;
;; 3. Establish a pointer from each New Person entry to the
;; corresponding entry in the Name Components that contains the
;; Name parts.
;;
;; 4. Record in ^XTMP all changes that were made, and any problems
;; or questionable assumptions that are encountered in
;; standardizing the name or parsing it into its component parts.
;;$$END
N I,T F I=1:1 S T=$P($T(CINTRO+I),";;",2,999) Q:T="$$END" W !,T
Q
;
GENERATE ;Generate ^XTMP
N DIR,DIROUT,DIRUT,DTOUT,DUOUT,XUIEN,XUNMSP,X,Y
S XUNMSP="XLFNAME"
;
D GINTRO
S DIR(0)="YO",DIR("A")="Do you wish to continue"
S DIR("?",1)=" Enter 'Y' to store information in ^XTMP about changes that"
S DIR("?")=" will take place when the CONVERT^XLFNAME entry point is run."
W ! D ^DIR K DIR Q:$D(DIRUT)!'Y
;
;Check if the conversion was already run.
;Determine which record to start with.
I $P($G(^XTMP(XUNMSP,0)),U,4) D Q:$D(DIRUT)
. W !!,"It appears that the conversion of New Person Names (routine CONVERT^XLFNAME)"
. W !,"has already been run. If you continue, the information already stored in"
. W !,"^XTMP about records that have been converted will be lost.",!
. S DIR(0)="YO",DIR("A")="Are you sure you wish to continue"
. S DIR("?")=" Enter 'Y' if you wish to replace the information already in ^XTMP."
. D ^DIR K DIR S:'Y DIRUT=1
;
D NEWPERS^XLFNAME3("KR")
S:$D(^XTMP(XUNMSP,0))#2 $P(^(0),U,3)="Created by GENERATE~XLFNAME"
Q
;
GINTRO ;Print introductory comments
;;This entry point loops through the records in the New Person file and
;;determines the standard form of each Name. It also tries to determine the
;;component parts of the name. If the standard form of the name is different
;;from the current form, or if any questionable assumptions need to made in
;;determining the component parts of the name, information about that name
;;is stored in ^XTMP("XLFNAME"). You can later print the information stored
;;in ^XTMP via the PRINT^XLFNAME entry point.
;;
;;NOTE: This entry point makes no changes to the NEW PERSON file or the new
;; NAME COMPONENTS file.
;;$$END
N I,T F I=1:1 S T=$P($T(GINTRO+I),";;",2,999) Q:T="$$END" W !,T
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXLFNAME5 5404 printed Dec 13, 2024@02:02:57 Page 2
XLFNAME5 ;SFISC/MKO-INTERACTIVE OPTION TO CONVERT NAMES ;11:32 AM 28 Jan 2000
+1 ;;8.0;KERNEL;**134**;Jul 10, 1995
CONVERT ;Convert Names
+1 NEW DIR,DIROUT,DIRUT,DTOUT,DUOUT,XUIEN,XUNMSP,X,Y
+2 SET XUNMSP="XLFNAME"
+3 ;
+4 DO CINTRO
+5 SET DIR(0)="YO"
SET DIR("A")="Do you wish to continue"
+6 SET DIR("?",1)=" Enter 'Y' to convert the Names in the New Person file"
+7 SET DIR("?",2)=" to standard form, and to store the component parts of"
+8 SET DIR("?")=" the Names in the new Name Components file."
+9 WRITE !
DO ^DIR
KILL DIR
if $DATA(DIRUT)!'Y
QUIT
+10 ;
+11 ;Check if the conversion was already run.
+12 ;Determine which record to start with.
+13 SET XUIEN=+$PIECE($GET(^XTMP(XUNMSP,0)),U,4)
+14 IF XUIEN
Begin DoDot:1
+15 IF $ORDER(^VA(200,XUIEN))
Begin DoDot:2
+16 WRITE !!,"It appears that the conversion has already been performed through"
+17 WRITE !,"record #"_XUIEN_" in the New Person file."
+18 WRITE !!,"Do you want to continue the conversion from after this point"
+19 WRITE !,"or convert the entries from the beginning of the file."
+20 SET DIR(0)="S^C:Continue the conversion after record #"_XUIEN_";S:Start again from the beginning of the file"
+21 SET DIR("?",1)=" Enter 'C' to start the conversion and parsing process from the"
+22 SET DIR("?",2)=" after record #"_XUIEN_" in the New Person file."
+23 SET DIR("?",3)=" "
+24 SET DIR("?",4)=" Enter 'B' to start the conversion and parsing process from the"
+25 SET DIR("?",5)=" the beginning of the New Person file."
+26 SET DIR("?",6)=" "
+27 SET DIR("?",7)=" NOTE: There is no harm in running the conversion again from the"
+28 SET DIR("?",8)=" beginning. However, if the conversion routine previously parsed a name"
+29 SET DIR("?",9)=" into its component parts incorrectly, and you corrected those problems"
+30 SET DIR("?",10)=" by manually editing the name components, your corrections will be lost"
+31 SET DIR("?")=" if you run the conversion again."
+32 DO ^DIR
KILL DIR
if $DATA(DIRUT)
QUIT
+33 if Y="S"
SET XUIEN=0
End DoDot:2
+34 IF '$TEST
Begin DoDot:2
+35 WRITE !!,"It appears that the conversion has already been performed on all entries"
+36 WRITE !,"in the New person file.",!
+37 SET DIR(0)="YO"
SET DIR("A")="Do you want to run the conversion again"
+38 SET DIR("?",1)=" Enter 'Y' if you wish to run the New Person Name conversion again."
+39 SET DIR("?",2)=" "
+40 SET DIR("?",3)=" NOTE: There is no harm in running the conversion again. However, if the"
+41 SET DIR("?",4)=" conversion routine previously parsed a name into its component parts"
+42 SET DIR("?",5)=" incorrectly, and you corrected those problems by manually editing the"
+43 SET DIR("?",6)=" name components, your corrections will be lost if you run the conversion"
+44 SET DIR("?")=" again."
+45 DO ^DIR
KILL DIR
if 'Y
SET DIRUT=1
if $DATA(DIRUT)
QUIT
+46 SET XUIEN=0
End DoDot:2
End DoDot:1
if $DATA(DIRUT)
QUIT
+47 ;
+48 DO NEWPERS^XLFNAME3("CPR"_$EXTRACT("K",'XUIEN),+XUIEN)
+49 if $DATA(^XTMP(XUNMSP,0))#2
SET $PIECE(^(0),U,3)="Created by CONVERT~XLFNAME"
+50 QUIT
+51 ;
CINTRO ;Print introductory comments
+1 ;;This routine will run the New Person Name Standardization conversion. It
+2 ;;will loop through the entries in the New Person file and:
+3 ;;
+4 ;; 1. Convert the Names (field #.01) in the New Person file to standard
+5 ;; form.
+6 ;;
+7 ;; 2. Parse each Name into its component parts and store those parts
+8 ;; in the new Name Components file (#20).
+9 ;;
+10 ;; 3. Establish a pointer from each New Person entry to the
+11 ;; corresponding entry in the Name Components that contains the
+12 ;; Name parts.
+13 ;;
+14 ;; 4. Record in ^XTMP all changes that were made, and any problems
+15 ;; or questionable assumptions that are encountered in
+16 ;; standardizing the name or parsing it into its component parts.
+17 ;;$$END
+18 NEW I,T
FOR I=1:1
SET T=$PIECE($TEXT(CINTRO+I),";;",2,999)
if T="$$END"
QUIT
WRITE !,T
+19 QUIT
+20 ;
GENERATE ;Generate ^XTMP
+1 NEW DIR,DIROUT,DIRUT,DTOUT,DUOUT,XUIEN,XUNMSP,X,Y
+2 SET XUNMSP="XLFNAME"
+3 ;
+4 DO GINTRO
+5 SET DIR(0)="YO"
SET DIR("A")="Do you wish to continue"
+6 SET DIR("?",1)=" Enter 'Y' to store information in ^XTMP about changes that"
+7 SET DIR("?")=" will take place when the CONVERT^XLFNAME entry point is run."
+8 WRITE !
DO ^DIR
KILL DIR
if $DATA(DIRUT)!'Y
QUIT
+9 ;
+10 ;Check if the conversion was already run.
+11 ;Determine which record to start with.
+12 IF $PIECE($GET(^XTMP(XUNMSP,0)),U,4)
Begin DoDot:1
+13 WRITE !!,"It appears that the conversion of New Person Names (routine CONVERT^XLFNAME)"
+14 WRITE !,"has already been run. If you continue, the information already stored in"
+15 WRITE !,"^XTMP about records that have been converted will be lost.",!
+16 SET DIR(0)="YO"
SET DIR("A")="Are you sure you wish to continue"
+17 SET DIR("?")=" Enter 'Y' if you wish to replace the information already in ^XTMP."
+18 DO ^DIR
KILL DIR
if 'Y
SET DIRUT=1
End DoDot:1
if $DATA(DIRUT)
QUIT
+19 ;
+20 DO NEWPERS^XLFNAME3("KR")
+21 if $DATA(^XTMP(XUNMSP,0))#2
SET $PIECE(^(0),U,3)="Created by GENERATE~XLFNAME"
+22 QUIT
+23 ;
GINTRO ;Print introductory comments
+1 ;;This entry point loops through the records in the New Person file and
+2 ;;determines the standard form of each Name. It also tries to determine the
+3 ;;component parts of the name. If the standard form of the name is different
+4 ;;from the current form, or if any questionable assumptions need to made in
+5 ;;determining the component parts of the name, information about that name
+6 ;;is stored in ^XTMP("XLFNAME"). You can later print the information stored
+7 ;;in ^XTMP via the PRINT^XLFNAME entry point.
+8 ;;
+9 ;;NOTE: This entry point makes no changes to the NEW PERSON file or the new
+10 ;; NAME COMPONENTS file.
+11 ;;$$END
+12 NEW I,T
FOR I=1:1
SET T=$PIECE($TEXT(GINTRO+I),";;",2,999)
if T="$$END"
QUIT
WRITE !,T
+13 QUIT