Code |
N FIRST,RENAME,SAVESET,I,J,X,Y,OLD,ERR,CURS,CUR,RSET,K,FSET S FIRST=1,RENAME=0,I=0,ERR=0,FSET="^TMP(""TIUFLDXML"",$J)" F D Q:ERR!('RENAME) .D IMPORT2^TIUSRVF(.RSET,FSET,0) .I FIRST S FIRST=0,I=0 F S I=$O(RSET(I)) Q:I'>0 S SAVESET(I)=$P(RSET(I),U,1) .S I=0 .F S I=$O(RSET(I)) Q:(I'>0)!ERR I $P(RSET(I),U,3)="XML FORMAT ERROR" S ERR=1 .Q:ERR .S I=0,RENAME=0 .;LOOP THROUGH THE NAMES AND RENAME DUPLICATE NAMES .F S I=$O(RSET(I)) Q:I'>0 D ..S CURS=$P(RSET(I),U,2),X=1 ..I CURS="0" S X=3,RENAME=1 ..I $L(CURS)>1 D ...S CURS=$E(CURS,3,$L(CURS)),OLD=$P(RSET(I),U,1) ...I CURS=OLD S RSET(I)=CURS_U_2 ...E S RSET(I)=OLD_U_0_U_CURS,X=3,RENAME=1 ..S CUR=$P(RSET(I),U,X),J=0 ..F S J=$O(RSET(J)) Q:(J' ...S K=$P(RSET(J),U,2),Y=1 I +K=0 S Y=3 ...S OLD=$P(RSET(J),U,Y) ...I OLD=CUR D ;SAME NAME FOUND; RENAME CURRENT ITEM ....S Y=1 ....I X=3 S Y=1+(+$E(CUR,$L($P(RSET(I),U,1))+1,$L(CUR))) ....S $P(RSET(I),U,2)=0,$P(RSET(I),U,3)=$P(RSET(I),U,1)_Y ....S X=3,J=0,CUR=$P(RSET(I),U,X),RENAME=1 .I RENAME D UPDTXML(.RSET,FSET) I 'ERR D .S I=0,J=0 .F S I=$O(SAVESET(I)) S J=$O(RSET(J)) Q:(I'>0)!(J'>0) D ..I SAVESET(I)'=$P(RSET(J),U,1) D ...S Y=$P(RSET(J),U,2) ...I +Y=1 S X=0 ; CHANGE THIS X=0 TO X=3 WHEN THE GUI IS READY ...E S X=0 ...S $P(RSET(J),U,2)=X,$P(RSET(J),U,3)=$P(RSET(J),U,1),$P(RSET(J),U,1)=SAVESET(I) S I=0,J=0 F S I=$O(RSET(I)),J=J+1 Q:I'>0 S RESULT(J)=RSET(I)
|