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