2014年12月21日 星期日

HL7 v2.6學習心得 第二章 USE OF ESCAPE SEQUENCES IN TEXT FIELDS

原文參考:2.7 Use of Escape Sequences in Text Fields
=============================
上回提到,如果資料來源內容包含了那些分隔符號的話,一定要避開,否則剖析程式是會誤判的。如果要避開,那就是在這個符號前面加上跳脫符號。大部分的程式語言(程式語言我沒全學過,不敢說全部)都是用"\"來當作跳脫符號,在HL7的預設值也是,不過倒是可以在MSH宣告時換成其他的符號。不清楚?那又請回到上上篇囉。大部分講到這就結束了,我又不是老師,這是自我學習耶!當然要再深入一點。
到底還會在什麼情形下使用到呢?且慢慢道來。
1. Formatting Codes 格式化編碼

當欄位的資料型態是TX、FT或CF時,其資料內容會是非常豐富的。相對地,會碰到地雷的機會也就變大了。主要的幾個地雷,就是分隔符號,若遇到時,就得用下列跳脫符號來避免之:
\F\ :field separator 欄位分隔符號
\S\ :component separator 組件(成員/成份)分隔符號
\T\ :subcomponent separator 次組件分隔符號
\R\ :repetition separator 重複分隔符號
\E\ :escape character 跳脫符號。
接著我們來看看TX、FT與CF 這幾個資料型態到底有什麼特殊性。
> TX(text data)
他的欄位屬性表很乾脆。什麼都沒有。

簡單說他是可以顯示在終端機或印表機上的字串。注意,這個是很單純的字串唷,除了內容要避開地雷符號外,唯一需要擔心的就是字串結束符號的差異。DOS是CR/LF;UNIX是LF。
> FT(formatted text data)
他的欄位屬性表也好不到哪裡去。

多了長度65536。之前有提供唷長度設成65536是什麼意思唷。回想
這下子尷尬了。資料型態中說,要知道怎麼用,請參考section 2.7.6, “Usage and Examples of Formatted Text” 啊不就是這邊要講的。恩,耐心等一下囉。
>CF(code element with formatted values)
他的欄位屬性表,終於比較正常一點了。

仔細一看,原來也沒什麼了不起,就是因為他CF.2與CF.5的資料型態是FT,那還是回到上一個問題。(至於其他的詳細說明,應該是要留到資料型態時,才會細講。) 好吧,還是來講格式的內容。
2. Usage and Examples of Formatted Text (格式化文字的使用與範例)

注意若是TX時,是有甚麼就印甚麼,不會多印空白,或者縮格等功能。想要有漂亮的格式,就得乖乖使用下列幾個符號。注意,那個符號前的"."是一定要的。
> .sp<數字>:留空行。數字代表往下留幾行空白。
> .br:換行。其實也就是.sp的意思。
> .sk<數字>:留空白。數字代表往右留幾個空白。
> .fi:自動換行。這個是預設值。
> .nf:不自動換行。可與.fi做相互切換。
> .ce:將目前所在行置中。
> .in<數字>:段落首行縮排。數字可以為正負。
> .ti<數字>:這個叫temporarily indent,照字面翻譯是暫時縮排。應該要這麼說,.in好像是絕對位置;.ti是相對位置。一般會與.br相配合的話。
以上的符號若是用在FT型態的資料內容時,就需要用跳脫符號告訴HL7剖析器說,這是用來做格式化之用。說實在,還真慚愧,搞HL7到現在,還真的沒用過。
就用標準書的內容當範例吧:

當你接收到這個內容時,如果你有心,你可以解譯成:

為什麼說是你有心呢?你不解譯也沒關係。並不影響其實值內容,他僅是用來排版好看而已。而且,上圖也只是其中一種呈現的結果,端看你要如何設計HL7剖析器。
3. Highlighting 凸顯

當然跳脫符號沒這簡單。還有好多其他的應用。這邊再舉一個凸顯某些文字表示方式。例如說檢驗報告的異常值時,就可以用這個方法。
他所使用的符號是:
> \H\:凸顯資料開始。
> \N\:凸顯資料結束。
至於說你是要如何呈現這個凸顯資料,例如說變成紅色、變成粗體、變成斜體,端看HL7剖析器是如何處理。
另外一些就是字元表達方式,在這就不囉唆了。
=============================


沒有留言:

張貼留言