BMXADOS1	; IHS/CIHA/GIS - UPDATE THE BMX ADO SCHEMA FILE GUI VERSION ;
	;;2.1;BMX;;Jul 26, 2009
	; RPC CALLS
	; 
	; 
	;
DISP(OUT)	; TEMP DISPLAY
	N I,X
	S I=0 W !
	F  S I=$O(@OUT@(I)) Q:'I  S X=@OUT@(I) S X=$TR(X,$C(30),"}") S X=$TR(X,$C(31),"{") W !,X
	Q
	;
SCHEMA(NAME)	; GIVEN SCHEMA NAME, RETURN THE IEN
	N IEN
	S IEN=$O(^BMXADO("B",NAME,0))
	Q IEN
	; 
FILE	; RETURN A LIST OF FILES
	N OUT,%,SIEN
	S SIEN=$$SCHEMA("FILEMAN FILES")
	D SS^BMXADO(.OUT,SIEN,"","B~B~C~")
	D DISP(OUT) R %:$G(DTIME,60)
	K ^TMP("BMX ADO",$J)
	Q
	;
SF	; RETURN A LIST OF SUBFILES
	N OUT,%,SIEN
	S SIEN=$$SCHEMA("SUBFILES")
	D SS^BMXADO(.OUT,SIEN,"","~~~~~SFIT~BMXADOS1~2~")
	D DISP(OUT) R %:$G(DTIME,60)
	K ^TMP("BMX ADO",$J)
	Q
	;
FLD	; RETURN LIST OF FIELDS FOR A FILE OR SUBFILE
	N OUT,%,SIEN
	S SIEN=$$SCHEMA("FIELDS")
	D SS^BMXADO(.OUT,SIEN,"","~~~~~FLDIT~BMXADOS1~2~")
	D DISP(OUT) R %:$G(DTIME,60)
	K ^TMP("BMX ADO",$J)
	Q
	;
SCH	; RETURN A LIST OF SCHEMAS
	N OUT,%,SIEN
	S SIEN=$$SCHEMA("SCHEMAS")
	D SS^BMXADO(.OUT,SIEN,"","B~~~")
	D DISP(OUT) R %:$G(DTIME,60)
	K ^TMP("BMX ADO",$J)
	Q
	;
SD	; RETURN THE SCHEMA DEFINITION
	N OUT,%,SIEN
	S SIEN=$$SCHEMA("SCHEMA DEFINITION")
	D SS^BMXADO(.OUT,SIEN,"52,","~~~")
	D DISP(OUT) R %:$G(DTIME,60)
	K ^TMP("BMX ADO",$J)
	Q
	;
FLDIT(PARAM,IENS,MAX,OUT,TOT)	; CUSTOM ITERATOR TO DISPLAY FIELDS
	N SFARR,CNT,DEL,NUM,NAME,DDT,DLEN,DHDR,DRO,DKEY,DNA,X,Y
	D FLIST^BMXADOS(.SFARR,PARAM)
	S CNT=0,DEL="  ["
	F  S CNT=$O(SFARR(CNT)) Q:'CNT  D
	. S X=SFARR(CNT) I '$L(X) Q
	. S NAME=$P(X,DEL)
	. ; F  Q:$E(NAME)'=" "  S NAME=$E(NAME,2,999)
	. I '$L(NAME) Q
	. S NUM=+$P(X,DEL,2) I 'NUM Q
	. S TOT=TOT+1
	. S Y=$$FDEF^BMXADOS(PARAM,NUM) I '$L(Y) Q  ; ""
	. S DDT=$E(Y),DLEN=+$E(Y,2,6),DHDR=$E(Y,7,99)
	. S DRO="NO" S DKEY="NO" S DNA="YES"
	. S ^TMP("BMX ADO",$J,TOT)=NUM_U_NAME_U_DDT_U_DLEN_U_DHDR_U_DRO_U_DKEY_U_DNA_$C(30)
	Q ""
	;
FNIT(PARAM,IENS,MAX,OUT,TOT)	; CUSTOM ITERATOR TO DISPLAY FILE OR SUBFILE NAME GIVEN FILE NUMBER
	N NUM,NAME
	S NUM=+PARAM
	S NAME=""
	Q:'$D(^DD(NUM,0,"NM")) ""
	S NAME=$O(^DD(NUM,0,"NM",0))
	S TOT=TOT+1
	S ^TMP("BMX ADO",$J,TOT)=NUM_U_NAME_$C(30)
	Q ""
	;
SFIT(PARAM,IENS,MAX,OUT,TOT)	; CUSTOM ITERATOR TO DISPLAY SUBFILES
	N SFARR,CNT,DEL,NUM,NAME
	D SC^BMXADOS(.SFARR,PARAM)
	S CNT=0,DEL="  ("
	F  S CNT=$O(SFARR(CNT)) Q:'CNT  D
	. S X=SFARR(CNT) I '$L(X) Q
	. S NAME=$P(X,DEL)
	. ; F  Q:$E(NAME)'=" "  S NAME=$E(NAME,2,999)
	. I '$L(NAME) Q
	. S NUM=+$P(X,DEL,2) I 'NUM Q
	. S TOT=TOT+1
	. S ^TMP("BMX ADO",$J,TOT)=NUM_U_NAME_$C(30)
	Q ""
	; 
SFT(FNAME)	; TRIGGER "YES" TO INDICATE THAT A SUBFILE IS PRESENT WITHIN A FILE
	I '$L($G(FNAME)) Q ""
	N FIEN
	S FIEN=$O(^DIC("B",FNAME,0))
	I 'FIEN Q ""
	I '$O(^DD(FIEN,"SB",0)) Q ""
	Q "+"
	; 
