source: WorldVistAEHR/trunk/r/VDEF-VDEF/VDEFEL.m@ 1073

Last change on this file since 1073 was 613, checked in by George Lilly, 15 years ago

initial load of WorldVistAEHR

File size: 2.0 KB
Line 
1VDEFEL ;INTEGIC/YG & BPOIFO/JG- VDEF library functions; ; 21 Dec 2004 11:29 AM
2 ;;1.00;VDEF;;Dec 17, 2004
3 ;Per VHA Directive 2004-038, this routine should not be modified.
4 ;
5 Q ; No bozos
6 ;
7 ; VDEF Library Subroutines.
8 ;
9SETDLMS ; Set HL7 delimiters from HL array if any or to std. HL7 ^~|\&
10 S X=$E($G(HL("FS"))) S:X="" X="^" S SEPF=X
11 S X=$G(HL("ECH")) S:X="" X="~|\&"
12 S SEPC=$E(X),SEPS=$E(X,4),SEPR=$E(X,2),SEPE=$E(X,3)
13 Q
14 ;
15 ; Converts IEN from new person file (200) into HL7 XCN data
16XCN200(VAL,SRC) ;
17 ; Inputs: VAL - IEN from ^VA(200)
18 ; SRC - Source for person (Optional)
19 ; Return: VAL is converted to HL7 XCN name format
20 I VAL="" Q VAL
21 N NM S NM("FILE")=200,NM("FIELD")=.01,NM("IENS")=VAL_","
22 S VAL=VAL_SEPC_$$HLNAME^XLFNAME(.NM,"S",SEPC)
23 I $G(SRC)'="" S $P(VAL,SEPC,8)=SRC
24 E S $P(VAL,SEPC,8)="VistA200"
25 Q VAL
26 ;
27 ; Format VAL into HL7 TS date/time
28TS(VAL) ; Format VAL as valid HL7 TS date/time/time zone
29 N OVAL,%DT,%H,% I VAL'?3A.E&(+VAL=0)!(+VAL=-1) S VAL="" G TSEXIT
30 ;
31 ; Already in HL7 TS or DT form?
32 G TSEXIT:VAL?8N.6N1"-"4N!(VAL?8N.6N1"+"4N)!(VAL?8N),TZ:VAL?12N
33 S OVAL=VAL
34 ;
35 ; Convert alpha month if needed
36 I VAL'?5N1","1.5N,VAL'?7N,VAL'?7N1"."0.6N D
37 . N X,Y,%DT S %DT="TS",X=VAL D ^%DT I Y=-1 S VAL="" Q
38 . S VAL=Y,OVAL=VAL
39 G TSEXIT:VAL=""
40 ;
41 ; Date in $H format?
42 I VAL?5N1","1.5N S %H=VAL D YMD^%DTC S VAL=X_%,OVAL=VAL
43 ;
44 ; Convert to HL7 format
45 S VAL=$$HLDATE^HLFNC(VAL,"TS") I VAL=-1 S VAL="" G TSEXIT
46 ;
47 ; Correct the time zone if time present
48TZ I $L(VAL)>8,VAL'["-",VAL'["+" S VAL=$P(VAL,"-")_$$TZ^XLFDT
49TSEXIT Q VAL
50 ;
51RTNVAL ; Validate entry for file #577, field # .3, EXTRACTION PROGRAM
52 ; Entry must be either "INACTIVE" or the name of the M routine
53 ; used to extract the VistA data and create the HL7 message.
54 ; Used by input transform of file #577, field #.3 and by the KID
55 ; post-install API in application domains's packages.
56 ;
57 I X'="INACTIVE",$T(@("^"_X))="" K X Q ; Program ain't there
58 I $P($T(@("VALID^"_X)),";",3)'="VDEF HL7 MESSAGE BUILDER" K X Q
59 Q
Note: See TracBrowser for help on using the repository browser.