MDUXMLU1 ; HOIFO/WAA -Utilities for XML text ; 7/26/00 ;;1.0;CLINICAL PROCEDURES;**6**;Apr 01, 2004;Build 102 ; Utilities for the XML Parser ; FILTER(DATA) ;Filter out the bad chars. Q:$G(DATA)'?.E1C.E DATA N RESULTS S RESULTS="" F Q:'$L(DATA) S:$E(DATA)'?1C RESULTS=RESULTS_$E(DATA) S DATA=$E(DATA,2,$L(DATA)) Q RESULTS VAL(DATA) ;Convert any special charcters to standard XML format N DATA2,RESULT,CHAR,CHAR1,CHAR2,CNT,I S RESULT="",CNT=0,I=0,DATA2="" S DATA=$$FILTER(DATA) F CHAR="&,amp","<,lt",">,gt","',apos",""",quot" D . S CNT=$L(DATA,$P(CHAR,",")) . S CHAR1=$P(CHAR,","),CHAR2=$P(CHAR,",",2) . S RESULT="" . I CNT>1 F I=1:1:CNT D . . S RESULT=RESULT_$P(DATA,CHAR1,I) . . I CNT'=I S RESULT=RESULT_"&"_CHAR2_";" . . Q . I RESULT'="" S DATA=RESULT . Q I RESULT="" S RESULT=DATA Q RESULT ; CODING(TYPE,DATA) ; Coding of both CPT and ICD9 Q:TYPE="" Q:DATA="" N DATAC,I,DEFF S DATAC=$L(DATA,"~") S DEFF=$S(TYPE="CPT":"PROCEDURE",TYPE="ICD":"DIAGNOSIS",1:0) Q:'DEFF F I=1:1:DATAC D . D BLDXML^MDUXMLU1(TYPE_"_CODE",$P($P(DATA,"~",I),"^",1)) . D BLDXML^MDUXMLU1(TYPE_"_"_DEFF,$P($P(DATA,"~",I),"^",2)) . D BLDXML^MDUXMLU1(TYPE_"_CODE_TYPE",$P($P(DATA,"~",I),"^",3)) . Q Q HEAD ;Creat the header of the XML message D XML^MDUXMLU1("") D XML^MDUXMLU1("") Q TAIL ; Complete the message D XML^MDUXMLU1("") I ORDER=1 D XML^MDUXMLU1("") D XML^MDUXMLU1("") Q NAME(NAME) ; Convert name I NAME="" Q D BLDXML^MDUXMLU1("LAST_NAME",$P(NAME,"^",1)) D BLDXML^MDUXMLU1("FIRST_NAME",$P(NAME,"^",2)) D BLDXML^MDUXMLU1("MIDDLE_NAME",$P(NAME,"^",3)) Q DATE(FIELD,DATE) ; Convert date and post as xml I FIELD="" Q I DATE="" Q D XML^MDUXMLU1("<"_FIELD_">") D BLDXML^MDUXMLU1("YEAR",$E(DATE,1,4)) D BLDXML^MDUXMLU1("MONTH",$E(DATE,5,6)) D BLDXML^MDUXMLU1("DAY",$E(DATE,7,8)) I $E(DATE,9,10)?2N D BLDXML^MDUXMLU1("HOUR",$E(DATE,9,10)) I $E(DATE,11,12)?2N D BLDXML^MDUXMLU1("MINUTE",$E(DATE,11,12)) I $E(DATE,13,14)?2N D BLDXML^MDUXMLU1("SECOND",$E(DATE,13,14)) D XML^MDUXMLU1("") Q BLDXML(HEAD,DATA) ; Q:HEAD="" Q:DATA="" D XML^MDUXMLU1("<"_HEAD_">"_DATA_"") Q XML(XMLLINE) ; create the XML Line in the temp file to be passed Q:XMLLINE="" S XMLCNT=XMLCNT+1 S ^TMP($J,"MDHL7XML",XMLCNT)=XMLLINE Q FILE(MDIEN) ; File off the XML data into 703.1 N CNT,MDDZ,LINE,LN S CNT=0,CCNT=0 S MDDZ=$$UPDATE^MDHL7U(MDIEN) Q:'MDDZ F S CNT=$O(^TMP($J,"MDHL7XML",CNT)) Q:CNT<1 D . S LINE=$G(^TMP($J,"MDHL7XML",CNT)) Q:LINE="" . S ^MDD(703.1,MDIEN,.4,CNT,0)=LINE,CCNT=CCNT+1 . Q S ^MDD(703.1,MDIEN,.4,0)="^^"_CCNT_"^"_CCNT_"^"_DT_"^" K ^TMP($J,"MDHL7XML") Q