HDISVU01 ;BPFO/JRP - UTILITY CALLS;12/21/2004 ;;1.0;HEALTH DATA & INFORMATICS;**6**;Feb 22, 2005 ; XMLTFM(XMLDT,LTZ) ;Convert XML date/time to FM date/time ; Input : XMLDT - XML date/time ; LTZ - Flag indicating if time should be converted to local ; time (XML d/t contains time zone designation) ; 0 = No (default) 1 = Yes ;Output : Date/time in FileMan format ; Notes : Null ("") returned on error N HL7DT,FMDT S XMLDT=$G(XMLDT) I XMLDT="" Q "" S LTZ=+$G(LTZ) S LTZ=$S(LTZ:"L",1:"U") ;Convert to HL7 format S HL7DT=$TR($P(XMLDT,"T",1),"-")_$TR($P(XMLDT,"T",2),":") ;Convert HL7 format to FileMan format S FMDT=$$HL7TFM^XLFDT(HL7DT,LTZ) I FMDT=-1 S FMDT="" Q FMDT ; FMTXML(FMDT,NOTIME,MIDNIGHT) ;Convert FM date/time to XML date/time ; Input : FMDT - FileMan date/time ; NOTIME - Flag indicating if time shouldn't be included ; 0 = No (include time)(default) 1 = Yes (no time) ; MIDNIGHT - Flag indicating if midnight should be used when ; no time is passed in ; 0 = No (leave as is)(default) 1 = Yes ;Output : Date/time in XML format ; Notes : Null ("") returned on error N XTRNDT,XMLDT,FLAG S NOTIME=+$G(NOTIME) S MIDNIGHT=+$G(MIDNIGHT) I $P(FMDT,".",2)="" I 'MIDNIGHT S NOTIME=1 I $P(FMDT,".",2)?1."0" I 'NOTIME S MIDNIGHT=1 ;No time overrides midnight addition I NOTIME S MIDNIGHT=0 ;Drop time S FLAG=$S(NOTIME:"7FD",1:"7FS") ;Convert S XTRNDT=$$FMTE^XLFDT(FMDT,FLAG) ;Append midnight I MIDNIGHT I $P(XTRNDT,"@",2)="" S $P(XTRNDT,"@",2)="00:00:00" S XMLDT=$TR(XTRNDT,"@ /","T0-") I 'NOTIME S XMLDT=XMLDT_$$TZ^XLFDT() Q XMLDT ; ERR2XTMP(NODE,DESC,TEXTARR) ;Add error info to XTMP global ; Input : NODE - Namespaced node name to store info off of ; (Defaults to "HDI") ; DESC - Error description (short text) ; TEXTARR - Array containing error text (full global ref) ;Output : None ; Notes : Sets the following nodes in XTMP ; ^XTMP(NODE,0) = Purge Date (T+10) ^ Create Date (NOW) ; ^ "HDI software issues" ; ^XTMP(NODE,x,0) = Create Date (NOW) ^ DESC ; ^XTMP(NODE,x,"ERR") = TEXTARR S NODE=$G(NODE) S:NODE="" NODE="HDI" S DESC=$G(DESC) S TEXTARR=$G(TEXTARR) N CDATE,PDATE,SUB ;Set main node in XTMP S CDATE=$$NOW^XLFDT() S PDATE=$$FMADD^XLFDT(CDATE,10) S ^XTMP(NODE,0)=PDATE_"^"_CDATE_"^HDI software issues" ;Get next error node S SUB=1+$O(^XTMP(NODE,""),-1) ;Set main error node S ^XTMP(NODE,SUB,0)=CDATE_"^"_DESC ;Store error text I TEXTARR'="" M ^XTMP(NODE,SUB,"TXT")=@TEXTARR ;Done Q