==========
本文就專門來討論編碼類的Type。這類型Type專門用在辨識、編碼(辨識與編碼是兩個不同概念)。
Coding
這是編碼類最核心的Type。(希望現在看到這個表,應該會很舒服)Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Coding | ΣN | Element | A reference to a code defined by a terminology system Elements defined in Ancestors: id, extension | |
system | Σ | 0..1 | uri | Identity of the terminology system |
version | Σ | 0..1 | string | Version of the system - if relevant |
code | Σ | 0..1 | code | Symbol in syntax defined by the system |
display | Σ | 0..1 | string | Representation defined by the system |
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user |
- Coding.system:uri [0..1]
Type是uri(別忘了uri與url的不同)。用來指定目前這個編碼歸屬於哪一個Coding System。每一個編碼系統,一定會有自己的uri(若你是程式員,就把他想像成命名空間比較快),就是放這了。
一般這邊會有兩種編碼OID(urn:oid:...)與UUID(urn:uuid:...),而且必須(SHALL)要註冊到HL7 總會的OID註冊系統中(網址:http://www.hl7.org/OID/)。
但是...,我國在推動標準的過程中,完全不重視編碼,所以...這個SHALL,根本叫放.....棄。哈!要忍住。但實在忍不住。當年2008年,我們努力爭取去註冊了。2008年耶,十年過去了,資料都沒有變。(哀~我也消失....)
- Coding.version:string [0..1]
一個正常的編碼系統,應該時常更新維護,就會有版本的問題。這兒,就是提供註記,這個編碼是採用這個編碼系統的哪個版本。
- Coding.code:code [0..1]
真正的編碼值是放在這裡。喔~他的Type是code。還好,他沒有很強的限制條件,幾乎可以隨便放。頭尾不要有空白就好。
- Coding.display:string [0..1]
code是給電腦看的。人怎麼可以光看code就知道其意,要補上display。
- Coding.userSelected:boolean [0..1]
這個有趣。是只目前這個編碼是由「人」選擇的。(是有點避責的感覺)
CodeableConcept
看到他的結構,應該沒有任何壓力吧。
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
CodeableConcept | ΣN | Element | Concept - reference to a terminology or just text Elements defined in Ancestors: id, extension | |
coding | Σ | 0..* | Coding | Code defined by a terminology system |
text | Σ | 0..1 | string | Plain text representation of the concept |
- CodeableConcept.coding:Coding [0..*]
第一個sub-element的Type是Coding,多了一層才終止。可是...他的Card.是[0..*]。喔~表示可以有很多個編碼,都是為了表達去解釋一個概念,那個概念放在text。
這個在國內,又要冷笑兩聲。連碼都不管了,還管Concept。
- CodeableConcept.text:string [0..1]
需要被進一個定義的概念描述放在這裡。這裡絕對是給Human看的。
Identifier
這個有點麻煩。辨識碼為何不是編碼。注意Identifier.type.coding.system(我用Path)跟Identifier.system,不都是編碼(?)系統。若是,那奇怪了,Identifier.type.coding.code的Type是code,那這邊的Identifier.value卻是string。
編碼只是一種情境定義,大家都可以用,同一個碼可以重複出現在很多地方。辨識碼是專指特定那一個,這個碼被用了,別人就不可以用(在同一個system之下)。除非,我們設定了period,規定使用這個辨識碼的期間,只有在這個期間內別人不可以用。
這樣子,能夠理解嗎?
這個辨識碼可能是使用者端自行編的碼,所以,得開放成string比較保險。
編碼只是一種情境定義,大家都可以用,同一個碼可以重複出現在很多地方。辨識碼是專指特定那一個,這個碼被用了,別人就不可以用(在同一個system之下)。除非,我們設定了period,規定使用這個辨識碼的期間,只有在這個期間內別人不可以用。
這樣子,能夠理解嗎?
這個辨識碼可能是使用者端自行編的碼,所以,得開放成string比較保險。
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Identifier | ΣN | Element | An identifier intended for computation Elements defined in Ancestors: id, extension | |
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) IdentifierUse (Required) |
type | Σ | 0..1 | CodeableConcept | Description of identifier IdentifierType (Extensible) |
system | Σ | 0..1 | uri | The namespace for the identifier value |
value | Σ | 0..1 | string | The value that is unique |
period | Σ | 0..1 | Period | Time period when id is/was valid for use |
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) |
- Identifier.user:code [0..1]
辨識碼具有高度唯一性,得要嚴格限定。所以,參照了IdentifierUse這個值集合(Value-Set)。
這個是值集合的定義資訊。可是,這邊的Type是code,還好,不需要攜帶這些資訊。(因為規範很明確,這個Element就是要用這個,不加Codeing Sytem的OID也不會混淆)。
實際能使用哪些值呢?這要去看Expension。
原來,這個code的@value可以放,usual, official, temp, secondary與old。
另外,很幸運,目前這個值集合的內容值,都是來自同一個Coding System(http://hl7.org/fhir/identifier-use)。
一頭霧水了嗎?應該還好吧。不過,想要知道詳細的內容,得要等到專講Terminology時。
- Identifier.type:CodeableConcept [0..1]
這個辨識碼可能是自己定義的呀,為了讓別人能夠充分理解你所說的,那就用這個Element去解釋吧。
- Identifier.system:uri [0..1]
為你的value提供一個命名空間吧。除了可避免與其他編碼系統衝突外,甚至可以提供一個服務,來驗證目前的value是否合法。
- Identifier.value:string [0..1]
就是你的辨識碼的內容值。Type是string,只要字串不要太長就好。
- Identifier.period:Period [0..1]
設定這個辨識碼的使用期限。Period還沒講。
- Identifier.assigner:Reference(Organization) [0..1]
透過Reference的方式讀取Organization,來設定這個辨識碼是哪個單位組織提供的。
沒有留言:
張貼留言