RRCI18X	; Internationalization eXtractor to Excel and From Excel
	;RRCI18X V0.0001;;RCR/RCR/27MAY2004
	;Donated by Chris Richardson
	;Initial database design by Marcus Werner
	;Copyright 2008 WorldVistA.  Licensed under the terms of the GNU      
	;General Public License See attached copy of the License.             
	;                                                                     
	;This program is free software; you can redistribute it and/or modify 
	;it under the terms of the GNU General Public License as published by 
	;the Free Software Foundation; either version 2 of the License, or    
	;(at your option) any later version.                                  
	;                                                                     
	;This program is distributed in the hope that it will be useful,      
	;but WITHOUT ANY WARRANTY; without even the implied warranty of       
	;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        
	;GNU General Public License for more details.                         
	;                                                                     
	;You should have received a copy of the GNU General Public License along
	;with this program; if not, write to the Free Software Foundation, Inc.,
	;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.  
V	QUIT
	; Note: Snapshot file .84 before this run so that
	;        it might be restored completely.
	;  LNG is the language to be loaded (is optional)
	; There are two major entry points to this routine;
	;  M2EX^RRCI18X(LNG) Will generate a series of Excel Files (30,000 rows/file)
	;  EX2M^RRCI18X(LNG) Will Load an Excel Sheet into the Dialog File
	;  P2EX^RRCI18X      Will scan the Package File and build a list
M2EX(LNG)	; Load a series of excel loadable files from the Dialog File
	N FILE,FN,LC,X,D0,TB,SET
	S U="^",SET=""
	S D0=0,FILE="",TB=$C(9)
	S LC=600000,FN=-1
	F  S D0=$O(^DI(.84,D0)) Q:'D0  D
	. S X=$P($G(^DI(.84,D0,0)),U,3)
	. Q:X=""
	. ;
	. I $L(X," ")>1 D SEND  Q  ; At least one space
	. I X?.E1PL.E   D SEND  Q  ; At least some punctuation or lower case
	. ;
	. S ^RRCTMP("I18","ODD",X)=""
	.QUIT
	D ENDFILE
	U 0
	QUIT
	;  ============
TEST	; Load a series of excel loadable files from the Dialog File
	N FILE,FN,LC,X,D0,TB
	S U="^",SET=""
	S D0=0,FILE="",TB=$C(9),EXIT=0
	F  D   Q:EXIT
	. S DIC=9.4,DIC(0)="AE"
	. D ^DIC
	. I Y>0 D   Q
	. . N K
	. . S K=$P($G(^DIC(9.4,+Y,0)),U,2)
	. . I $L(K) S SET(K)=""
	. .QUIT
	. ;
	. S:(+Y)<0 EXIT=1
	.QUIT
	QUIT
	;  ============
P2EX	; Load a series of excel loadable files from the Dialog File
	N FILE,FN,LC,X,D0,SET,TB
	S U="^",SET=""
	S D0=0,FILE="",TB=$C(9),EXIT=0
	F  D   Q:EXIT
	. S DIC=9.4,DIC(0)="AE"
	. D ^DIC
	. I Y>0 D   Q
	. . N K
	. . S K=$P($G(^DIC(9.4,+Y,0)),U,2)
	. . I $L(K) S SET(K)=""
	. .QUIT
	. ;
	. S:(+Y)<0 EXIT=1
	.QUIT
	S LC=600000,FN=-1
	F  S D0=$O(^DI(.84,D0)) Q:'D0  D
	. S X=$P($G(^DI(.84,D0,0)),U,3)
	. Q:X=""
	. ;
	. D:$$PICK(D0,.SET)
	. . I $L(X," ")>1 D SEND  Q  ; At least one space
	. . I X?.E1PL.E   D SEND  Q  ; At least some punctuation or lower case
	. . ;
	. . S ^RRCTMP("I18","ODD",X)=""
	. .QUIT
	.QUIT
	D ENDFILE
	U 0
	QUIT
	;  ============
PICK(D,V)	; Find a member of the routines which matches
	N T,P,J,L
	S T=0,P=0
	F  S P=$O(^DI(.84,D,5,"B",P))  Q:P=""  D  Q:T
	. S J=""
	. F  S J=$O(V(J))  Q:J=""  S L=$L(J)  I $E(P,1,L)=J S T=1 Q
	.QUIT
	QUIT T
	;  ============
SEND	; Resolve the String as being in DIALOG or add it.
	N Y
	; I LC>30000  D NEWFILE U FILE
	I LC>300  D NEWFILE U FILE
	S Y=$G(^DI(.84,D0,2,1,0))
	I $L(Y)>$L(X) S X=Y
	W X_TB_TB_TB,!
	S LC=LC+1
	QUIT
	;  ============
NEWFILE	; Close any current file (FILE) and then open a new file
	N NM
	S LC=0
	I FILE'="" D ENDFILE  ; Close the current file with an easily identifiable terminator
	S FN=$G(FN)+1
	S NM=$O(SET(""))
	S:'$L(NM) NM="DIALOG"
	S FILE="WV-"_NM_"-"_$TR($J(FN,4)," ","0")_".txt"
	O FILE:NEW
	U FILE
	; W "ENGLISH"_TB_"SPANISH"_TB,!
	W "English"_TB_"French"_TB_"Notes"_TB_"Complete/Exclude",!
	QUIT
	;  ============
ENDFILE	; Load the Exclusion File from ^RRCTMP("I18","ODD",
	N C,I
	S C=$TR($J("",20)," ","#")
	F I=1:1:5 W C_TB_C_TB_C_TB,!
	C FILE
	QUIT
	;  ============
LOADX	; Load the Exclusion File from ^RRCTMP("I18","ODD",
	N D0,DA,F,FN,X
	S U="^"
	S X="",F=$G(^WVDI(250.84,0))
	S (DA,D0)=0
	F  S X=$O(^RRCTMP("I18","ODD",X))  Q:X=""  D
	. S DA=$O(^WVDI(250.84,"B",X,""))
	. I DA="" S D0=$P(F,U,3)+1,$P(F,U,3,4)=D0_U_D0,DA=D0
	. S ^WVDI(250.84,DA,0)=X,^WVDI(250.84,"B",X,DA)=""
	.QUIT
	S ^WVDI(250.84,0)=F
	QUIT
	;  ============

