FHIR有一個觀念稱之為80-20。也就是FHIR已經完成80%的定義,剩下20%給標準制定者彈性空間。CDA R2就沒有這麼好命,標準制定者常常得把實務情境的需求,硬在既有規範中找到適合的地方來呈現。若對CDA R2的整體規範不熟悉時,就會造成一份不倫不類的實作指引書。雖然只是20%自訂,但面對一個複雜的醫療資訊情境,這塊的發展已經有點爆炸了。
先題一下,相對於FHIR的擴充性,還有一個觀念是Profile。他不是擴充,他是利用既有之Resource作更明確的定義。使用Extesnion僅止於欄位層級之擴充,使用自己熟悉的名稱,來定義Extesion結構。這塊只能建議說台灣要儘速建立管理機制,否則容易變成一發不可收拾。
先來看看Extesion的結構。
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Extension | IN | Element | Optional Extensions Element + Rule: Must have either extensions or value[x], not both Elements defined in Ancestors: id, extension | |
url | 1..1 | uri | identifies the meaning of the extension | |
value[x] | 0..1 | * | Value of extension |
- Extension繼承自Element,所以他是資料型態。嚴格歸類的話他是Special Purpose Data types的一員。還記得Element的結構嗎?是的,他也有Extension欄位,所以...。
- url是指向定義這個Extension的詳細規範,這個是必要欄位。前面的圖形符號表示是個primative type。
- value[x],這個Extension用在Resource案例時,所攜帶的內容值。若沒有內容值,那表示需要有sub-extensions(來自Element)。前面的圖形符號代表他是一個element。
- 這個內容值的資料型態可以包含下列其中一種(應該說現有資料型態都可以):
- valueBase64Binary: base64Binary
- valueBoolean: boolean
- valueCanonical: canonical
- valueCode: code (only if the extension definition provides a fixed binding to a suitable set of codes)
- valueDate: date
- valueDateTime: dateTime
- valueDecimal: decimal
- valueId: id
- valueInstant: instant
- valueInteger: integer
- valueMarkdown: markdown
- valueOid: oid
- valuePositiveInt: positiveInt
- valueString: string
- valueTime: time
- valueUnsignedInt: unsignedInt
- valueUri: uri
- valueUrl: url
- valueUuid: uuid
- valueAddress: Address
- valueAge: Age
- valueAnnotation: Annotation
- valueAttachment: Attachment
- valueCodeableConcept: CodeableConcept
- valueCoding: Coding
- valueContactPoint: ContactPoint
- valueCount: Count
- valueDistance: Distance
- valueDuration: Duration
- valueHumanName: HumanName
- valueIdentifier: Identifier
- valueMoney: Money
- valuePeriod: Period
- valueQuantity: Quantity
- valueRange: Range
- valueRatio: Ratio
- valueReference: Reference - a reference to another resource
- valueSampledData: SampledData
- valueSignature: Signature
- valueTiming: Timing
- valueContactDetail: ContactDetail
- valueContributor: Contributor
- valueDataRequirement: DataRequirement
- valueExpression: Expression
- valueParameterDefinition: ParameterDefinition
- valueRelatedArtifact: RelatedArtifact
- valueTriggerDefinition: TriggerDefinition
- valueUsageContext: UsageContext
- valueDosage: Dosage
<name> <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-use" > <valueCode value="I" /> </extension> <text value="Chief Red Cloud"/> </name>
- 此extension的定義是在(url)http://hl7.org/fhir/StructureDefinition/iso21090-EN-use(備註:原本的範例內容的url是錯誤的)。其結構如下:
- 根據上述Url找到了定義。其資料型態是code。也就是說,他的element的名稱是valueCode。
- 是element就會有value。再根據定義,這個編碼必須遵循 EntityNameUseR2 這個value set。
- 經查目前value的I,其顯示名稱Indigenous/Tribal,定義內容為:Description:e.g . Chief Red Cloud(抱歉,我也不知何意)
Summary
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
EN-use | 0..1 | code | URL = http://hl7.org/fhir/StructureDefinition/iso21090-EN-use EN-use: A set of codes advising a system or user which name in a set of names to select for a given purpose. Binding: EntityNameUseR2 (required) Use on Element ID HumanName |
範例2
<Patient> <extension url="http://hl7.org/fhir/StructureDefinition/patient-citizenship" > <extension url="code" > <valueCodeableConcept> <coding> <system value="urn:iso:std:iso:3166" /> <code value="DE" /> </coding> </valueCodeableConcept> </extension> <extension url="period" > <valuePeriod> <start value="2009-03-14" /> </valuePeriod> </extension> </extension> <!-- other data for patient --> </Patient>
- 根據rul我們找到了定義。其結構如下:
- 原來他使用了element的extension(我怎麼知道,看前方圖形符號)。
- 因為code與period都是extension所以,都要遵守extension的規範。但這兩個是依附在citizenship,沒有自己的定義url。所以,採用的是名稱。
Summary
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
citizenship | 0..* | Extension | URL = http://hl7.org/fhir/StructureDefinition/patient-citizenship citizenship: The patient's legal status as citizen of a country. Use on Element ID Patient | |
code | 0..1 | CodeableConcept | Nation code representing the citizenship of patient. | |
period | 0..1 | Period | Period when citizenship was effective. |
還有一種extension稱之為Modifier Extensions,因為還不懂,也沒遇到。也就不多說了。
沒有留言:
張貼留言