The Sysadmin Notebook  

Sitemap

Open HealthCare Org Pathology Report DTD

Pathology Report DTD

<!-- 
	Copyright (c) Jonathan Borden, The Open Healthcare Group all rights reserved
	Licensed under http://www.openhealth.org/license
	
	PUBLIC "-//ASTM//DTD Pathology Report 1.0//EN"
	SYSTEM "http://www.openhealth.org/ASTM/pathology.report.dtd"
	
	This DTD defines an ASTM E31.25 standard Pathology Report
-->
<!-- 
	include the base ASTM E31.25 module
	by default namespaces are not enabled.
	Namespaces are controlled by the ENTITY % use.namespace which is defined as
		<!ENTITY % use.namespace "IGNORE">
	To enable namespaces define <!ENTITY % use.namespace "INCLUDE"> prior to including this DTD 
	(e.g. in the internal subset)
-->
<!ENTITY % ASTM.base.module PUBLIC "-//ASTM//DTD E31.25 Base 1.0//EN" "ASTM.E31.25.dtd">
<!ENTITY % PATH.xmlns "http://www.openhealth.org/ASTM/pathology.report">

%ASTM.base.module;

<!ENTITY % NS.prefixed "IGNORE">
<!ENTITY % PATH.prefixed "%NS.prefixed;">

<![ %PATH.prefixed; [
<!ENTITY % path "pr">
<!ENTITY % path.prefix "%path;:">
<!ENTITY % PATH.xmlns.attrib "xmlns:pr CDATA #FIXED 'http://www.openhealth.org/ASTM/pathology.report'">

]]>
<!ENTITY % path "">
<!ENTITY % path.prefix "">
<!ENTITY % PATH.xmlns.attrib "xmlns CDATA #FIXED 'http://www.openhealth.org/ASTM/pathology.report'">

<!ENTITY % pathology.report.qname "%path.prefix;pathology.report">
<!ENTITY % clinical.body.qname "%path.prefix;clinical.body">

<!ENTITY % clinical.history.qname "%path.prefix;clinical.history">
<!ENTITY % preoperative.diagnosis.qname "%path.prefix;preoperative.diagnosis">
<!ENTITY % postoperative.diagnosis.qname "%path.prefix;postoperative.diagnosis">
<!ENTITY % operative.procedure.qname "%path.prefix;operative.procedure">
<!ENTITY % operative.findings.qname "%path.prefix;operative.findings">
<!ENTITY % parts.qname "%path.prefix;parts">
<!ENTITY % pathology.staff.qname "%path.prefix;pathology.staff">
<!ENTITY % part.qname "%path.prefix;part">
<!ENTITY % gross.description.qname "%path.prefix;gross.description">
<!ENTITY % tissue.source.qname "%path.prefix;tissue.source">
<!ENTITY % diagnosis.qname "%path.prefix;diagnosis">
<!ENTITY % comment.qname "%path.prefix;comment">
<!ENTITY % block.qname "%path.prefix;block">
<!ENTITY % procedure.qname "%path.prefix;procedure">
<!ENTITY % ordering.physician.qname "%path.prefix;ordering.physician">
<!ENTITY % pathologist.qname "%path.prefix;pathologist">
<!ENTITY % gross.pathologist.qname "%path.prefix;gross.pathologist">
<!ENTITY % frozen.pathologist.qname "%path.prefix;frozen.pathologist">
<!ENTITY % piece.qname "%path.prefix;piece">
<!ENTITY % stain.qname "%path.prefix;stain">
<!ENTITY % ordering.date.time.qname "%path.prefix;ordering.date.time">
<!ENTITY % submitted.date.time.qname "%path.prefix;submitted.date.time">
<!ENTITY % interpretation.qname "%path.prefix;interpretation">
<!ENTITY % procedure.name.qname "%path.prefix;procedure.name">

<!ELEMENT %pathology.report.qname; (
	 %clinical.header.qname;, 
	 %clinical.body.qname;
)>
<!ATTLIST %pathology.report.qname; 	
	%astm.document.attrib;
	%PATH.xmlns.attrib;
>
<!-- much of path report is in header i.e. accession number, account number can both be document ids
-->
<!ELEMENT %clinical.body.qname; (
	 %clinical.history.qname;,
	 %preoperative.diagnosis.qname;,
	 %postoperative.diagnosis.qname;,
	 (%operative.procedure.qname;)?,
	 (%operative.findings.qname;)?,
	 %parts.qname;
)>
<!ELEMENT %clinical.history.qname; %astm.content;>
<!ATTLIST %clinical.history.qname; %astm.content.attrib;>
<!ELEMENT %preoperative.diagnosis.qname; (#PCDATA)>
<!ATTLIST %preoperative.diagnosis.qname; %astm.content.attrib;>
<!ELEMENT %postoperative.diagnosis.qname; (#PCDATA)>
<!ATTLIST %postoperative.diagnosis.qname; %astm.content.attrib;>
<!ELEMENT %operative.procedure.qname; (#PCDATA)>
<!ATTLIST %operative.procedure.qname; %astm.content.attrib;>
<!ELEMENT %operative.findings.qname; %astm.content;>
<!ATTLIST %operative.findings.qname; %astm.content.attrib;>
<!ELEMENT %parts.qname; (%part.qname;)+>
<!ATTLIST %parts.qname; %astm.content.attrib;>
<!ELEMENT %part.qname; (
	(%pathology.staff.qname;)?,
	%gross.description.qname;,
	%tissue.source.qname;,
	%diagnosis.qname;,
	(%comment.qname;)?,
	(%block.qname;)*,
	(%procedure.qname;)*
)>
<!-- frozen = related frozen section to this permanent section -->
<!ATTLIST %part.qname;
	name NMTOKEN #REQUIRED
	frozen (y|n) #IMPLIED
	all-pieces-used (y|n) #IMPLIED
	%astm.content.attrib;
	>

<!ELEMENT %block.qname; (
	%ordering.date.time.qname;,
	%ordering.physician.qname;,
	(%comment.qname;)?,
	(%stain.qname;)*,
	(%piece.qname;)*
)>
<!ATTLIST %block.qname; %astm.content.attrib;>
<!ELEMENT %ordering.physician.qname; (%ch.actor.type;)>
<!ATTLIST %ordering.physician.qname; %astm.content.attrib;>
<!ELEMENT %pathology.staff.qname; ((%pathologist.qname;)?,(%gross.pathologist.qname;)?,(%frozen.pathologist.qname;)?)>
<!ATTLIST %pathology.staff.qname; %astm.content.attrib;>
<!ELEMENT %pathologist.qname; (%ch.actor.type;)>
<!ATTLIST %pathologist.qname; %astm.content.attrib;>
<!ELEMENT %gross.pathologist.qname; (%ch.actor.type;)>
<!ATTLIST %gross.pathologist.qname; %astm.content.attrib;>
<!ELEMENT %frozen.pathologist.qname; (%ch.actor.type;)>
<!ATTLIST %frozen.pathologist.qname; %astm.content.attrib;>
<!ELEMENT %tissue.source.qname; (#PCDATA)>
<!ATTLIST %tissue.source.qname; %astm.content.attrib;>
<!ELEMENT %stain.qname; (#PCDATA)>
<!ATTLIST %stain.qname; %astm.content.attrib;>
<!ELEMENT %piece.qname; %astm.content;>
<!ATTLIST %piece.qname; %astm.content.attrib;>
<!ELEMENT %ordering.date.time.qname; %ch.datetime.model;>
<!ATTLIST %ordering.date.time.qname; %astm.content.attrib;>
<!ELEMENT %submitted.date.time.qname; %ch.datetime.model;>
<!ATTLIST %submitted.date.time.qname; %astm.content.attrib;>

<!ELEMENT %procedure.qname; (
	(%ordering.date.time.qname;)?,
	(%submitted.date.time.qname;)?,
	%pathologist.qname;,
	%procedure.name.qname;,
	%interpretation.qname;
)>
<!ATTLIST %procedure.qname; %astm.content.attrib;>
<!ELEMENT %diagnosis.qname; %astm.content;>
<!ATTLIST %diagnosis.qname; %astm.content.attrib;>
<!ELEMENT %comment.qname; %astm.content;>
<!ATTLIST %comment.qname; %astm.content.attrib;>
<!ELEMENT %interpretation.qname; %astm.content;>
<!ATTLIST %interpretation.qname; %astm.content.attrib;>
<!ELEMENT %gross.description.qname; %astm.content;>
<!ATTLIST %gross.description.qname; %astm.content.attrib;>

<!ELEMENT %procedure.name.qname; (#PCDATA)>
<!ATTLIST %procedure.name.qname; %astm.content.attrib;>