[From: http://www.openhealth.org/ASTM/clinical.header.html]
Clinical documents are constructed of a header and a body. The header is a structure that is consistent from one type of document to another. The clinical body varies depending on the document type. For example, one might have an operative report or a discharge summary. Both have a clinical header of the same structure, but the body varies in structure, containing information specific to the type of document.
Clinical Header attributes
ch.attrib = attribute ID{xsd:ID}?, attribute confidentiality{xsd:IDREF}?, attribute note{xsd:string}?, attribute xml:lang{xsd:NMTOKEN}?
A clinical header person type consists of a person.name, zero or more ids and zero or more addresses.
ch.person.type = person.name, id*, addr*
ch.organization.type = organization.name?, id*, addr*
ch.actor.type = ch.person.type,type.code?,date.time?
ch.authenticator.type = ch.actor.type,signature?
ch.datetime.model = text
coded.value.model = text
coded.value.attrib.list = attribute code.system {xsd:NMTOKEN}?, attribute code.system.name {xsd:string}?, attribute version {xsd:NMTOKEN}?
clinical.header = element clinical.header{ ch.attrib, id*, version.number?, confidentiality.code*, patient.encounter?, authenticator*, legal.authenticator*, intended.recipient*, originator?, originating.organization?, transcriptionist?, provider+, service.actor*, patient, events?, codes?, related.document*}
service.actor = element service.actor { ch.attrib, xlink, (person.name|organization.name), id*, addr*, type.code?, function?, date.time? }
provider = element provider{ ch.attrib, ch.actor.type, function?}
service.target.model = ch.actor & birth.date? & gender? events = element events{ch.attrib,event*} event = element event{ch.attrib, (event.name & date.time & staff? & comments?) } #
id = element id {ch.attrib, attribute root{xsd:string}?, attribute authority{xsd:string}?, attribute type{xsd:string}?, attribute valid.time{xsd:string}?, xlink, text}
version.number = element version.number {ch.attrib,text} confidentiality.code = element confidentiality.code{ ch.attrib, coded.value.attrib.list, coded.value.model}
patient.encounter = element patient.encounter{ ch.attrib, (id? & practice.setting? & date.time? & location) }
authenticator = element authenticator{ ch.attrib, ch.authenticator.type } legal.authenticator = element legal.authenticator{ ch.attrib, ch.authenticator.type } originator = element originator { ch.attrib,ch.actor.type} intended.recipient = element intended.recipient { ch.attrib,ch.actor.type} transcriptionist = element transcriptionist {ch.attrib,ch.actor.type}
patient = element patient { ch.attrib,xlink, service.target.model }
codes = element codes { ch.attrib, coded.value* } related.document = element related.document { xlink.simple, any } practice.setting = element practice.setting {ch.attrib,text} date.time = element date.time { ch.attrib, ch.datetime.model } location = element location {ch.attrib,text} event.name = element event.name {ch.attrib,text} staff = element staff{ ch.attrib, ch.person.type } comments = element comments {ch.attrib,text} #
A person name may have any number of the following elements in any order. A particular order and set of delimiters may determine the text string representation of a name.
person.name = element person.name{ ch.attrib, attribute type{text}?, (family| given| middle| prefix| suffix| delimiter )*}
name.component.type = ch.attrib,attribute type{text}?,text family = element family {name.component.type} given = element given {name.component.type} middle = element middle {name.component.type} prefix = element prefix {name.component.type} suffix = element suffix {name.component.type} delimiter = element delimiter {name.component.type} # organization.name = element organization.name {ch.attrib,text} #
addr = element addr { ch.attrib,attribute type{text}?, ( country| city| state| street| zip| house.number| direction| post.office.box| telephone| uri| delimiter )*}
addr.component.type = ch.attrib,attribute type{text}?,text
country = element country {addr.component.type} city = element city {addr.component.type} state = element state {addr.component.type} zip = element zip {addr.component.type} street = element street {addr.component.type} house.number = element house.number {addr.component.type} direction = element direction {addr.component.type} address.locator = element address.locator {addr.component.type} post.office.box = element post.office.box {addr.component.type}
#
uri = element uri {addr.component.type} telephone = element telephone {addr.component.type} coded.value = element coded.value {ch.attrib,xlink,coded.value.attrib.list,coded.value.model} signature = element signature {ch.attrib,coded.value.attrib.list,coded.value.model} type.code = element type.code {ch.attrib,xlink,coded.value.attrib.list,coded.value.model} function = element function {ch.attrib,xlink,coded.value.attrib.list,coded.value.model}
birth.date = element birth.date { ch.attrib, ch.datetime.model }
gender = element gender {ch.attrib,text}
originating.organization = element originating.organization{ ch.attrib, ch.organization.type }
The ASTM E2182 Clinical Header DTD http://www.openhealth.org/ASTM/clinical.header.dtd