]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/hl7v2.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / hl7v2.xml
1 <?xml version="1.0"?>\r
2 \r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">\r
4 <!--\r
5     Thiemo Kellner, 2009-08-06\r
6     Very basic mode for HL7 version 2.8.2 message based on Jaco de Groot's\r
7     csv.xml 2.2 20070213\r
8     Reference: http://www.hl7.org/documentcenter/private/standards/V282/HL7-xml%20v2.8.2.zip\r
9 \r
10 -->\r
11 \r
12 <MODE>\r
13     <RULES IGNORE_CASE="FALSE">\r
14         <EOL_SPAN_REGEXP TYPE="INVALID" AT_LINE_START="TRUE" >(?!ABS|ACC|ADD|ADJ|AFF|AIG|AIL|AIP|AIS|AL1|APR|ARQ|ARV|AUT|BHS|BLC|BLG|BPO|BPX|BTS|BTX|BUI|CDM|CDO|CER|CM0|CM1|CM2|CNS|CON|CSP|CSR|CSS|CTD|CTI|DB1|DG1|DMI|DON|DPS|DRG|DSC|DSP|ECD|ECR|EDU|EQP|EQU|ERR|EVN|FAC|FHS|FT1|FTS|GOL|GP1|GP2|GT1|Hxx|IAM|IAR|IIM|ILT|IN1|IN2|IN3|INV|IPC|IPR|ISD|ITM|IVC|IVT|LAN|LCC|LCH|LDP|LOC|LRL|MCP|MFA|MFE|MFI|MRG|MSA|MSH|NCK|NDS|NK1|NPU|NSC|NST|NTE|OBR|OBX|ODS|ODT|OM1|OM2|OM3|OM4|OM5|OM6|OM7|OMC|ORC|ORG|OVR|PAC|PCE|PCR|PD1|PDA|PDC|PEO|PES|PID|PKG|PM1|PMT|PR1|PRA|PRB|PRC|PRD|PRT|PSG|PSH|PSL|PSS|PTH|PV1|PV2|PYE|QAK|QID|QPD|QRD|QRF|QRI|RCP|RDF|RDT|REL|RF1|RFI|RGS|RMI|ROL|RQ1|RQD|RXA|RXC|RXD|RXE|RXG|RXO|RXR|RXV|SAC|SCD|SCH|SCP|SDD|SFT|SGH|SGT|SHP|SID|SLT|SPM|STF|STZ|TCC|TCD|TQ1|TQ2|TXA|UAC|UB1|UB2|URD|URS|VAR|VND|ZL7|Zxx|anyHL7Segment|anyZSegment)</EOL_SPAN_REGEXP>\r
15     </RULES>\r
16 \r
17     <!-- Is superseeded by line 36\r
18     <RULES IGNORE_CASE="FALSE">\r
19         <SEQ TYPE="LITERAL1" AT_LINE_START="TRUE">OBX</SEQ>\r
20     </RULES>\r
21     -->\r
22 \r
23     <!--\r
24         Actually the following is not strictly true. Delimiters are defined at\r
25         position 1 to 4 after the message header identifier MSH, e. g. MSH|^~\&\r
26         would mean that there are the delimiters |, ^, ~ and &. The backslash\r
27         is an escape. These are the HL7 recommendations that most softwares\r
28         adhere to but it is not guaranteed, see also http://healthstandards.com/blog/2007/09/24/hl7-separator-characters/\r
29         I do not think that jEdit supports the take some characters in a file to\r
30         highlight as token to watch for highlighting. So this mode sticks to\r
31         the "common sense" with respect to delimiters. And at least it only\r
32         supports field delimiters.\r
33     -->\r
34     <RULES>\r
35         <SEQ TYPE="MARKUP" DELEGATE="ODD_QUOTED" AT_LINE_START="TRUE">"</SEQ>\r
36         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_EVEN_QUOTED">|"</SEQ>\r
37         <EOL_SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="|" DELEGATE="FIELDDELIM_LAST_COLUMN">\|(?=[^|]*$)</EOL_SPAN_REGEXP>\r
38         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_EVEN">|</SEQ>\r
39     </RULES>\r
40 \r
41 \r
42     <RULES SET="ODD_QUOTED">\r
43         <SEQ TYPE="MARKUP" DELEGATE="ODD_QUOTED">""</SEQ>\r
44         <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="FIELDDELIM_MAIN">"(?=\|[^"][^|]*$)</SEQ_REGEXP>\r
45         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_EVEN_QUOTED">"|"</SEQ>\r
46         <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;|" DELEGATE="FIELDDELIM_MAIN">"\|$</SEQ_REGEXP>\r
47         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_EVEN">"|</SEQ>\r
48         <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="MAIN">"$</SEQ_REGEXP>\r
49         <SEQ TYPE="MARKUP" DELEGATE="EVEN">"</SEQ>\r
50     </RULES>\r
51 \r
52     <RULES DEFAULT="COMMENT1" SET="EVEN">\r
53         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_ODD_QUOTED">|"</SEQ>\r
54         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_MAIN">|</SEQ>\r
55     </RULES>\r
56 \r
57     <RULES DEFAULT="COMMENT1" SET="EVEN_QUOTED">\r
58         <SEQ TYPE="MARKUP" DELEGATE="EVEN_QUOTED">""</SEQ>\r
59         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_ODD_QUOTED">"|"</SEQ>\r
60         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_MAIN">"|</SEQ>\r
61         <SEQ TYPE="MARKUP" DELEGATE="MAIN">"</SEQ>\r
62     </RULES>\r
63 \r
64     <!-- Field delimiter rules -->\r
65 \r
66     <RULES SET="FIELDDELIM_MAIN">\r
67         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_ODD_QUOTED" AT_LINE_START="TRUE">"</SEQ>\r
68         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_EVEN_QUOTED">|"</SEQ>\r
69         <EOL_SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="|" DELEGATE="FIELDDELIM_LAST_COLUMN">\|(?=[^|]*$)</EOL_SPAN_REGEXP>\r
70         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_EVEN">|</SEQ>\r
71     </RULES>\r
72 \r
73     <RULES SET="FIELDDELIM_ODD_QUOTED">\r
74         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_ODD_QUOTED">""</SEQ>\r
75         <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="FIELDDELIM_MAIN">"(?=\|[^"][^|]*$)</SEQ_REGEXP>\r
76         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_EVEN_QUOTED">"|"</SEQ>\r
77         <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;|" DELEGATE="FIELDDELIM_MAIN">"\|$</SEQ_REGEXP>\r
78         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_EVEN">"|</SEQ>\r
79         <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="FIELDDELIM_MAIN">"$</SEQ_REGEXP>\r
80         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_EVEN">"</SEQ>\r
81     </RULES>\r
82 \r
83     <RULES SET="FIELDDELIM_EVEN" DEFAULT="COMMENT1">\r
84         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_ODD_QUOTED">|"</SEQ>\r
85         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_MAIN">|</SEQ>\r
86     </RULES>\r
87 \r
88     <RULES SET="FIELDDELIM_EVEN_QUOTED" DEFAULT="COMMENT1">\r
89         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_EVEN_QUOTED">""</SEQ>\r
90         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_ODD_QUOTED">"|"</SEQ>\r
91         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_MAIN">"|</SEQ>\r
92         <SEQ TYPE="MARKUP" DELEGATE="FIELDDELIM_MAIN">"</SEQ>\r
93     </RULES>\r
94 \r
95     <RULES SET="FIELDDELIM_LAST_COLUMN" DEFAULT="COMMENT1">\r
96     </RULES>\r
97 </MODE>\r