1 | HDISVU01 ;BPFO/JRP - UTILITY CALLS;12/21/2004
|
---|
2 | ;;1.0;HEALTH DATA & INFORMATICS;**6**;Feb 22, 2005
|
---|
3 | ;
|
---|
4 | XMLTFM(XMLDT,LTZ) ;Convert XML date/time to FM date/time
|
---|
5 | ; Input : XMLDT - XML date/time
|
---|
6 | ; LTZ - Flag indicating if time should be converted to local
|
---|
7 | ; time (XML d/t contains time zone designation)
|
---|
8 | ; 0 = No (default) 1 = Yes
|
---|
9 | ;Output : Date/time in FileMan format
|
---|
10 | ; Notes : Null ("") returned on error
|
---|
11 | N HL7DT,FMDT
|
---|
12 | S XMLDT=$G(XMLDT)
|
---|
13 | I XMLDT="" Q ""
|
---|
14 | S LTZ=+$G(LTZ)
|
---|
15 | S LTZ=$S(LTZ:"L",1:"U")
|
---|
16 | ;Convert to HL7 format
|
---|
17 | S HL7DT=$TR($P(XMLDT,"T",1),"-")_$TR($P(XMLDT,"T",2),":")
|
---|
18 | ;Convert HL7 format to FileMan format
|
---|
19 | S FMDT=$$HL7TFM^XLFDT(HL7DT,LTZ)
|
---|
20 | I FMDT=-1 S FMDT=""
|
---|
21 | Q FMDT
|
---|
22 | ;
|
---|
23 | FMTXML(FMDT,NOTIME,MIDNIGHT) ;Convert FM date/time to XML date/time
|
---|
24 | ; Input : FMDT - FileMan date/time
|
---|
25 | ; NOTIME - Flag indicating if time shouldn't be included
|
---|
26 | ; 0 = No (include time)(default) 1 = Yes (no time)
|
---|
27 | ; MIDNIGHT - Flag indicating if midnight should be used when
|
---|
28 | ; no time is passed in
|
---|
29 | ; 0 = No (leave as is)(default) 1 = Yes
|
---|
30 | ;Output : Date/time in XML format
|
---|
31 | ; Notes : Null ("") returned on error
|
---|
32 | N XTRNDT,XMLDT,FLAG
|
---|
33 | S NOTIME=+$G(NOTIME)
|
---|
34 | S MIDNIGHT=+$G(MIDNIGHT)
|
---|
35 | I $P(FMDT,".",2)="" I 'MIDNIGHT S NOTIME=1
|
---|
36 | I $P(FMDT,".",2)?1."0" I 'NOTIME S MIDNIGHT=1
|
---|
37 | ;No time overrides midnight addition
|
---|
38 | I NOTIME S MIDNIGHT=0
|
---|
39 | ;Drop time
|
---|
40 | S FLAG=$S(NOTIME:"7FD",1:"7FS")
|
---|
41 | ;Convert
|
---|
42 | S XTRNDT=$$FMTE^XLFDT(FMDT,FLAG)
|
---|
43 | ;Append midnight
|
---|
44 | I MIDNIGHT I $P(XTRNDT,"@",2)="" S $P(XTRNDT,"@",2)="00:00:00"
|
---|
45 | S XMLDT=$TR(XTRNDT,"@ /","T0-")
|
---|
46 | I 'NOTIME S XMLDT=XMLDT_$$TZ^XLFDT()
|
---|
47 | Q XMLDT
|
---|
48 | ;
|
---|
49 | ERR2XTMP(NODE,DESC,TEXTARR) ;Add error info to XTMP global
|
---|
50 | ; Input : NODE - Namespaced node name to store info off of
|
---|
51 | ; (Defaults to "HDI")
|
---|
52 | ; DESC - Error description (short text)
|
---|
53 | ; TEXTARR - Array containing error text (full global ref)
|
---|
54 | ;Output : None
|
---|
55 | ; Notes : Sets the following nodes in XTMP
|
---|
56 | ; ^XTMP(NODE,0) = Purge Date (T+10) ^ Create Date (NOW)
|
---|
57 | ; ^ "HDI software issues"
|
---|
58 | ; ^XTMP(NODE,x,0) = Create Date (NOW) ^ DESC
|
---|
59 | ; ^XTMP(NODE,x,"ERR") = TEXTARR
|
---|
60 | S NODE=$G(NODE)
|
---|
61 | S:NODE="" NODE="HDI"
|
---|
62 | S DESC=$G(DESC)
|
---|
63 | S TEXTARR=$G(TEXTARR)
|
---|
64 | N CDATE,PDATE,SUB
|
---|
65 | ;Set main node in XTMP
|
---|
66 | S CDATE=$$NOW^XLFDT()
|
---|
67 | S PDATE=$$FMADD^XLFDT(CDATE,10)
|
---|
68 | S ^XTMP(NODE,0)=PDATE_"^"_CDATE_"^HDI software issues"
|
---|
69 | ;Get next error node
|
---|
70 | S SUB=1+$O(^XTMP(NODE,""),-1)
|
---|
71 | ;Set main error node
|
---|
72 | S ^XTMP(NODE,SUB,0)=CDATE_"^"_DESC
|
---|
73 | ;Store error text
|
---|
74 | I TEXTARR'="" M ^XTMP(NODE,SUB,"TXT")=@TEXTARR
|
---|
75 | ;Done
|
---|
76 | Q
|
---|