"Fossies" - the Fresh Open Source Software Archive

Member "cda10.dtd" (19 Jul 2001, 105409 Bytes) of package /linux/privat/old/dtd2xs154.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) XML source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 <!ENTITY % HL7_V3DT.Version "-//HL7//DTD V3DT 1.0//EN">
    2 <!--
    3     Typical usage within a DTD for an HMD or the PRA...
    4     
    5     <!ENTITY % V3DT PUBLIC
    6        "-//HL7//DTD V3DT 1.0//EN"
    7        "http://www.hl7.org/XXX/v3dt.dtd">
    8     %V3DT;
    9 
   10     The URI used as a system identifier with the public identifier allows
   11     the user agent to download the DTD as needed.
   12 
   13     The FPI for the V3DT DTD is:
   14 
   15         "-//HL7//DTD V3DT 1.0//EN"
   16 
   17     and its URI is:
   18 
   19         http://www.hl7.org/XXX/v3dt.dtd
   20 
   21     During the development of this DTD, the FPI will contain a
   22     "revision" number in addition to the "version" number.  The revision
   23     number will be removed for just prior to balloting.
   24     
   25     The URI given for this DTD includes the path XXX, since at this
   26     time the path where it will be archived has yet to be determined.
   27     Once a general policy for archival storage of HL7 DTD has been
   28     determined, XXX will be replaced with the proper path.
   29   -->
   30 
   31 <!--
   32      the following type declarations are in the order they are specified
   33      in the abstract document (except for some of the "subsidiary" types,
   34      such as ADXP for AD, which are defined before their "principle" type)
   35   -->
   36 <!--
   37     Each datatype definition contains "HL7 Processing Rules", which are
   38     statements of required application level validity checks over and above
   39     what teh DTD expresses.  The rules are written as XPath expressions.
   40     The intention is that the set of rules for each datatype will be
   41     embedded in a fixed attribute and a receiving application could then
   42     evaluate them and if any fail the receiving application would know
   43     that the instance wasn't legal.  At present, some of the rules
   44     are still expressed in the syntax that was used for this purpose
   45     for the HIMSS demo.
   46   -->
   47 <!--     
   48     The ANY in the HIMSS demo DTD was ANY in the sense of "any type",
   49     which was implemented as, essentially, the union of properties from
   50     all datatypes.
   51     
   52     Do we still need an "any type" datatype?  My guess is the answer
   53     is yes (for obvservation.value, anywhere else?)...but would
   54     like more input before going there.
   55   -->
   56 
   57 <!-- ............. Code Set null.code.set.............
   58                 NI      no information
   59                 NA      not applicable
   60                 UNK     unknown
   61                 NASK    not asked
   62                 ASKU    asked but unknown
   63                 NAV     not available
   64                 OTH     other
   65                 PINF    positive infinity
   66                 NINF    negative infinity
   67    
   68    Note: NP (not present) does not appear in this list, because it
   69    should never be sent in an instance.  The ITS layer should give
   70    the application layer a null flavor of NP for all XML elements/attributes
   71    not present in the instance
   72   -->
   73 <!ENTITY % null.code.set '(NI|NA|UNK|NASK|ASKU|NAV|OTH|PINF|NINF)'>
   74 
   75 <!--  ========================== Boolean (BL) ========================== 
   76 
   77     *************** HL7 Processing Rules ***************
   78 
   79     @NULL or @V
   80     @PROB >= 0 and @PROB <= 1
   81     ****************************************************
   82 
   83     <someBL V="true"/>
   84     <someOtherBL V="false"/>
   85 
   86      Note: the boolean literals have changed (from T and F) to conform
   87      with the lexical space of the XML Schema boolean datatype.
   88      There is still some possibility that the XML Schema boolean datatype
   89      will change to use 0 and 1, but I'm resisting that.
   90       ============================================================   -->
   91 <!-- ............. Code Set boolean.code.set.............
   92                 true        TRUE
   93                 false       FALSE
   94   -->
   95 <!ENTITY % boolean.code.set '(true|false)'>
   96 <!ENTITY % BL-cont.model '(NOTE?, CONFID?)'>
   97 <!ENTITY % BL-attrib.list '
   98     T                 NMTOKEN #FIXED "BL"
   99     NULL              %null.code.set; #IMPLIED
  100     V                 %boolean.code.set; #IMPLIED
  101     V-T               NMTOKEN #FIXED "BL"
  102     V-HL7_NAME        CDATA   #FIXED "value"
  103     VT                CDATA   #IMPLIED
  104     VT-T              NMTOKEN #FIXED "IVL_TS"
  105     VT-HL7_NAME       CDATA   #FIXED "validTime"
  106     PROB              CDATA   #IMPLIED
  107     PROB-T            NMTOKEN #FIXED "REAL"
  108     PROB-HL7_NAME     CDATA   #FIXED "probability"
  109 '>
  110 
  111 <!--
  112     ======================== Binary Data (BIN) ======================== 
  113     The XML ITS does not need to define this datatype, since the
  114     only use of it is within the ED datatype, and a complete definition
  115     of the datatype is not needed for that purpose
  116     ============================================================
  117   -->
  118 
  119 <!--
  120     ===================== Encapsulated Data (ED) ===================== 
  121 
  122     *************** HL7 Processing Rules ***************
  123 
  124     @V or child::REF
  125     @NULL or @MT
  126     THUMBNAIL[not(child::THUMBNAIL) or child::THUMBNAIL/@NULL]
  127     @T='BIN' and string-length(@V)>0
  128     not(@IAC) or @IA
  129     @PROB >= 0 and @PROB <= 1
  130     @T='ST' and (not(@COMPN) or not(child::REF) or not(child::THUMBNAIL))
  131     ****************************************************
  132 
  133         <someED>cellulitis of the left foot</someED>
  134         <someED MT="image/png"
  135           IC="aA5mb7c8TXtu392KMsaSa2MKkAwL5LKAo2d99azAs3MdUdw">
  136           <REF V="http://radiology.iumc.edu/xrays/128s8d9ej229se32s.jpg" 
  137                VT="200007200845-0820845" />
  138           <THUMBNAIL MT="image/jpeg" ENC="B64">
  139             MNYD83jmMdomSJUEdmde9j44zmMir6edjzMMIjdMDSsWdIJdksIJR3373jeu83
  140             6edjzMMIjdMDSsWdIJdksIJR3373jeu83MNYD83jmMdomSJUEdmde9j44zmMir
  141             ...
  142             omSJUEdmde9j44zmMiromSJUEdmde9j44zmMirdMDSsWdIJdksIJR3373jeu83
  143             4zmMir6edjzMMIjdMDSsWdIJdksIJR3373jeu83==
  144           </THUMBNAIL>
  145         </someED>
  146         <someED MT="application/msword" ENC="B64" COMPN="GZ">
  147           omSJUEdmde9j44zmMiromSJUEdmde9j44zmMirdMDSsWdIJdksIJR3373jeu83
  148           6edjzMMIjdMDSsWdIJdksIJR3373jeu83MNYD83jmMdomSJUEdmde9j44zmMir
  149           ...
  150           MNYD83jmMdomSJUEdmde9j44zmMir6edjzMMIjdMDSsWdIJdksIJR3373jeu83
  151           4zmMir6edjzMMIjdMDSsWdIJdksIJR3373jeu83==
  152         </someED>
  153 
  154     uses xml:lang for the language property
  155     
  156     When applicable, the value of the charset property should be
  157     obtained from the encoding psuedo attribute of the XML declaration
  158     ...if the XML declaration or the encoding psuedo attribute is not
  159     present in the instance, then the charset is assumed to be UTF-8
  160     (as per the XML 1.0 Rec)
  161     
  162     Declares the xml namespace as a fixed attribute, which is in scope
  163     for this element and its children
  164     
  165     How should we deal with the "mandatory/recommended/deprecated/other"
  166     status of MT and CHARST?  Should that be expressed as an HL7-PR?
  167     
  168     If present, the value of the IA attribute shall be base64 encoded
  169     
  170     See note below on the declaration of THUMBNAIL, regarding inherited
  171     values for ED properties
  172 
  173     if @IC is valued, the we know that integrityCheckAlgorithm is "SHA-1"
  174     
  175     value is text() node ONLY if that text() node is the first child
  176     only 1st occurance of REF, THUMBNAIL, NOTE and CONFID are significant
  177     
  178     @ENC does not correspond to any property
  179       ============================================================   -->
  180 <!ENTITY % ED-cont.model '(#PCDATA | REF | THUMBNAIL | NOTE | CONFID)*'>
  181 <!ENTITY % ED-attrib.list '
  182     T                 (ST|ED) "ED"
  183     NULL              %null.code.set; #IMPLIED
  184     ENC               (B64|TXT) "TXT"
  185     MT                CDATA   "text/plain"
  186     MT-T              NMTOKEN #FIXED "CS"
  187     MT-DOMAIN         NMTOKEN #FIXED "2.16.840.1.113883.6.10"
  188     MT-HL7_NAME       CDATA   #FIXED "type"
  189     xml:lang          NMTOKEN #IMPLIED
  190     xml:lang-T        NMTOKEN #FIXED "CS"
  191     xml:lang-HL7_NAME CDATA   #FIXED "language"
  192     COMPN             (DF|GZ|ZL|Z) #IMPLIED
  193     COMPN-T           NMTOKEN #FIXED "CS"
  194     COMPN-HL7_NAME    CDATA   #FIXED "compression"
  195     COMPN-DOMAIN      NMTOKEN #FIXED "2.16.840.1.113883.5.1009"
  196     IC                CDATA   #IMPLIED
  197     IC-T              NMTOKEN #FIXED "BIN"
  198     IC-HL7_NAME       CDATA   #FIXED "integrityCheck"
  199     VT                CDATA   #IMPLIED
  200     VT-T              NMTOKEN #FIXED "IVL_TS"
  201     VT-HL7_NAME       CDATA   #FIXED "validTime"
  202     PROB              CDATA   #IMPLIED
  203     PROB-T            NMTOKEN #FIXED "REAL"
  204     PROB-HL7_NAME     CDATA   #FIXED "probability"
  205 '>
  206 
  207 <!--  ========================== String (ST) ========================== 
  208 
  209     *************** HL7 Processing Rules ***************
  210 
  211     @NULL or length(@V)>0
  212     @PROB >= 0 and @PROB <= 1
  213     ****************************************************
  214 
  215     <someST V="required ST"/>
  216 
  217     The value of the charset property should be
  218     obtained from the encoding psuedo attribute of the XML declaration
  219     ...if the XML declaration or the encoding psuedo attribute is not
  220     present in the instance, then the CHARSET is assumed to be UTF-8
  221     (as per the XML 1.0 Rec)
  222 
  223     Declares the xml namespace as a fixed attribute, which is in scope
  224     for this element and its children
  225     
  226     uses xml:lang for the language property
  227       ============================================================   -->
  228 <!ENTITY % ST-cont.model '(#PCDATA | NOTE | CONFID)*'>
  229 <!ENTITY % ST-attrib.list '
  230     T                 CDATA   #FIXED "ST"
  231     NULL              %null.code.set; #IMPLIED
  232     MT                CDATA   #FIXED "text/plain"
  233     MT-T              NMTOKEN #FIXED "CS"
  234     MT-HL7_NAME       CDATA   #FIXED "type"
  235     xml:lang          NMTOKEN #IMPLIED
  236     xml:lang-T        NMTOKEN #FIXED "CS"
  237     xml:lang-HL7_NAME CDATA   #FIXED "language"
  238     VT                CDATA   #IMPLIED
  239     VT-T              NMTOKEN #FIXED "IVL_TS"
  240     VT-HL7_NAME       CDATA   #FIXED "validTime"
  241     PROB              CDATA   #IMPLIED
  242     PROB-T            NMTOKEN #FIXED "REAL"
  243     PROB-HL7_NAME     CDATA   #FIXED "probability"
  244 '>
  245 
  246 <!--  ==================== Concept Descriptor (CD) ==================== 
  247 
  248     *************** HL7 Processing Rules ***************
  249     
  250     @NULL or @V
  251     not(@S) or @V
  252     not(@V) or @DN
  253     not(@ORIGTXT) or not(child::ORIGTXT)
  254     @PROB >= 0 and @PROB <= 1
  255     ****************************************************
  256     
  257         <someCD T="CD" V="10.3" S="ICD" SV="99" DN="The meaning of the code"/>
  258 
  259     need more examples!!!!
  260     
  261     Still need processing rules for type demotions
  262     
  263     rather than have a "code" attribute, simply uses the V attribute
  264     (but V-HL7_NAME is still "code")
  265     
  266     When S and SV appear in a containing element, they are the default
  267     coding system and version for subordinate codes.
  268 
  269     You can have EITHER an ORIGTXT child element OR an ORIGTXT attribute,
  270     but not both.  If @ORIGTXT is present, then its value is assumed to
  271     be the ID of some other element in the current message/document, in
  272     which case the value of the originalText property is the PCDATA content
  273     of that element.  If @ORIGTXT is present, but doesn't resolve to
  274     the ID of some element or the element it resolves to has no PCDATA content,
  275     then the value of the originalText property is NULL with the
  276     default flavor.  Note: with this mechanism, @ORIGTXT can only
  277     point to originalText that, essentially, has a media type of
  278     "text/plain".
  279 ============================================================   -->
  280 
  281 <!ENTITY % CD-cont.model '(TRANSLTN*, ORIGTXT?, MODIFIER*, NOTE?, CONFID?)'>
  282 <!ENTITY % CD-attrib.list '
  283     T                 (CD|CE|CV|CS) "CD"
  284     NULL              %null.code.set; #IMPLIED
  285     V                 CDATA   #IMPLIED
  286     V-T               NMTOKEN #FIXED "ST"
  287     V-HL7_NAME        CDATA   #FIXED "code"
  288     DN                CDATA   #IMPLIED
  289     DN-T              NMTOKEN #FIXED "ST"
  290     DN-HL7_NAME       CDATA   #FIXED "displayName"
  291     S                 CDATA   #IMPLIED
  292     S-T               NMTOKEN #FIXED "OID"
  293     S-HL7_NAME        CDATA   #FIXED "codeSystem"
  294     SN                CDATA   #IMPLIED
  295     SN-T              NMTOKEN #FIXED "ST"
  296     SN-HL7_NAME       CDATA   #FIXED "codeSystemName"
  297     SV                CDATA   #IMPLIED
  298     SV-T              NMTOKEN #FIXED "ST"
  299     SV-HL7_NAME       CDATA   #FIXED "codeSystemVersion"
  300     ORIGTXT           IDREF   #IMPLIED
  301     ORIGTXT-T         NMTOKEN #FIXED "ST"
  302     ORIGTXT-HL7_NAME  CDATA   #FIXED "originalText"
  303     VT                CDATA   #IMPLIED
  304     VT-T              NMTOKEN #FIXED "IVL_TS"
  305     VT-HL7_NAME       CDATA   #FIXED "validTime"
  306     PROB              CDATA   #IMPLIED
  307     PROB-T            NMTOKEN #FIXED "REAL"
  308     PROB-HL7_NAME     CDATA   #FIXED "probability"
  309 '>
  310 
  311 <!--  ==================== Concept Role (CR) ==================== 
  312 
  313     *************** HL7 Processing Rules ***************
  314 
  315     @NULL or child::VALUE
  316     @PROB >= 0 and @PROB <= 1
  317     ****************************************************
  318     
  319     need example instances!!!!
  320         
  321     as suggested in the abstract doc, the default value for the
  322     inverted property is "false"
  323 
  324     CR is modeled essentially as an extension of CD which
  325     adds the name and inverse properties (but the ITS restricts
  326     the use of @S, @SN and @SV)
  327     ============================================================   -->
  328 
  329 <!ENTITY % CR-cont.model '(NAME?, %CD-cont.model;)'>
  330 <!--
  331      Unfortunately, we can't use the CD-attrib.list param entity
  332      for CR's attribute list for a number of reasons: 1) the @T's don't
  333      match; 2) CD contains @PROB which CR should have; 3) we need to
  334      supress @S, @SN and @SV.  So, we'll just dup here what we need.
  335   -->
  336 <!ENTITY % CR-attrib.list '
  337     T                 NMTOKEN #FIXED "CR"
  338     NULL              %null.code.set; #IMPLIED
  339     V                 CDATA   #IMPLIED
  340     V-T               NMTOKEN #FIXED "ST"
  341     V-HL7_NAME        CDATA   #FIXED "code"
  342     DN                CDATA   #IMPLIED
  343     DN-T              NMTOKEN #FIXED "ST"
  344     DN-HL7_NAME       CDATA   #FIXED "displayName"
  345     ORIGTXT           IDREF   #IMPLIED
  346     ORIGTXT-T         NMTOKEN #FIXED "ST"
  347     ORIGTXT-HL7_NAME  CDATA   #FIXED "originalText"
  348     INV               %boolean.code.set; "false"
  349     INV-T             NMTOKEN #FIXED "BL"
  350     INV-HL7_NAME      CDATA   #FIXED "inverted"
  351     VT                CDATA   #IMPLIED
  352     VT-T              NMTOKEN #FIXED "IVL_TS"
  353     VT-HL7_NAME       CDATA   #FIXED "validTime"
  354     PROB              CDATA   #IMPLIED
  355     PROB-T            NMTOKEN #FIXED "REAL"
  356     PROB-HL7_NAME     CDATA   #FIXED "probability"
  357 '>
  358 
  359 <!--  ==================== Coded Simple Value (CS) ==================== 
  360 
  361     *************** HL7 Processing Rules ***************
  362 
  363     @NULL or @V
  364     @PROB >= 0 and @PROB <= 1
  365     ****************************************************
  366     
  367     need example instances!!!!
  368     
  369     rather than have a "code" attribute, simply uses the V attribute
  370     
  371     Question: where does the application get the CONTEXT, to
  372     supply the values for S, SV and SN (especially when the instance
  373     of CS is the value of an attribute for some other element)...
  374     one option is illustrated in the declaration of TEL (see USE-DOMAIN)
  375     
  376     typo in the abstract doc...duplicate prose describing CNE status of CS
  377     ============================================================   -->
  378 
  379 <!ENTITY % CS-cont.model '(NOTE?, CONFID?)'>
  380 <!ENTITY % CS-attrib.list '
  381     T                 NMTOKEN #FIXED "CS"
  382     NULL              %null.code.set; #IMPLIED
  383     V                 CDATA   #IMPLIED
  384     V-T               NMTOKEN #FIXED "ST"
  385     V-HL7_NAME        CDATA   #FIXED "code"
  386     DN                CDATA   #IMPLIED
  387     DN-T              NMTOKEN #FIXED "ST"
  388     DN-HL7_NAME       CDATA   #FIXED "displayName"
  389     VT                CDATA   #IMPLIED
  390     VT-T              NMTOKEN #FIXED "IVL_TS"
  391     VT-HL7_NAME       CDATA   #FIXED "validTime"
  392     PROB              CDATA   #IMPLIED
  393     PROB-T            NMTOKEN #FIXED "REAL"
  394     PROB-HL7_NAME     CDATA   #FIXED "probability"
  395 '>
  396 
  397 <!--  ==================== Coded Value (CV)) ==================== 
  398 
  399     *************** HL7 Processing Rules ***************
  400 
  401     @NULL or @V
  402     not(@S) or @V
  403     child::ORIGTXT[@MT='text/plain']
  404     @PROB >= 0 and @PROB <= 1
  405     ****************************************************
  406     
  407     need example instances!!!!    
  408     
  409     Still need processing rules for type demotion
  410     
  411     rather than have a "code" attribute, simply uses the V attribute
  412     
  413     When S and SV appear in a containing element, they are the default coding 
  414     system and version for subordinate codes.
  415     
  416     You can have EITHER an ORIGTXT child element OR an ORIGTXT attribute,
  417     but not both.  If @ORIGTXT is present, then its value is assumed to
  418     be the ID of some other element in the current message/document, in
  419     which case the value of the originalText property is the PCDATA content
  420     of that element.  If @ORIGTXT is present, but doesn't resolve to
  421     the ID of some element or the element it resolves to has no PCDATA content,
  422     then the value of the originalText property is NULL with the
  423     default flavor.  Note: with this mechanism, @ORIGTXT can only
  424     point to originalText that, essentially, has a media type of
  425     "text/plain".
  426     ============================================================   -->
  427 
  428 <!ENTITY % CV-cont.model '(ORIGTXT?, NOTE?, CONFID?)'>
  429 <!ENTITY % CV-attrib.list '
  430     T                 (CS|CV) "CV"
  431     NULL              %null.code.set; #IMPLIED
  432     V                 CDATA   #IMPLIED
  433     V-T               NMTOKEN #FIXED "ST"
  434     V-HL7_NAME        CDATA   #FIXED "code"
  435     DN                CDATA   #IMPLIED
  436     DN-T              NMTOKEN #FIXED "ST"
  437     DN-HL7_NAME       CDATA   #FIXED "displayName"
  438     S                 CDATA   #IMPLIED
  439     S-T               NMTOKEN #FIXED "OID"
  440     S-HL7_NAME        CDATA   #FIXED "codeSystem"
  441     SN                CDATA   #IMPLIED
  442     SN-T              NMTOKEN #FIXED "ST"
  443     SN-HL7_NAME       CDATA   #FIXED "codeSystemName"
  444     SV                CDATA   #IMPLIED
  445     SV-T              NMTOKEN #FIXED "OID"
  446     SV-HL7_NAME       CDATA   #FIXED "codeSystemVersion"
  447     ORIGTXT           IDREF   #IMPLIED
  448     ORIGTXT-T         NMTOKEN #FIXED "ST"
  449     ORIGTXT-HL7_NAME  CDATA   #FIXED "originalText"
  450     VT                CDATA   #IMPLIED
  451     VT-T              NMTOKEN #FIXED "IVL_TS"
  452     VT-HL7_NAME       CDATA   #FIXED "validTime"
  453     PROB              CDATA   #IMPLIED
  454     PROB-T            NMTOKEN #FIXED "REAL"
  455     PROB-HL7_NAME     CDATA   #FIXED "probability"
  456 '>
  457 
  458 <!--  ==================== Coded With Equivalents (CE)) ==================== 
  459 
  460     *************** HL7 Processing Rules ***************
  461 
  462     @NULL or @V
  463     not(@S) or @V
  464     child::TRANSTN[@T='CV' or @T='CS']
  465     @PROB >= 0 and @PROB <= 1
  466     ****************************************************
  467     
  468     need example instances!!!!
  469     
  470     Still need processing rules for type demotions
  471     
  472     rather than have a "code" attribute, simply uses the V attribute
  473     
  474     When S and SV appear in a containing element, they are the default coding 
  475     system and version for subordinate codes.
  476 
  477     You can have EITHER an ORIGTXT child element OR an ORIGTXT attribute,
  478     but not both.  If @ORIGTXT is present, then its value is assumed to
  479     be the ID of some other element in the current message/document, in
  480     which case the value of the originalText property is the PCDATA content
  481     of that element.  If @ORIGTXT is present, but doesn't resolve to
  482     the ID of some element or the element it resolves to has no PCDATA content,
  483     then the value of the originalText property is NULL with the
  484     default flavor.  Note: with this mechanism, @ORIGTXT can only
  485     point to originalText that, essentially, has a media type of
  486     "text/plain".
  487     ============================================================   -->
  488 
  489 <!ENTITY % CE-cont.model '(ORIGTXT?, TRANSLTN*, NOTE?, CONFID?)'>
  490 <!ENTITY % CE-attrib.list '
  491     T                 (CS|CV|CE) "CE"
  492     NULL              %null.code.set; #IMPLIED
  493     V                 CDATA   #IMPLIED
  494     V-T               NMTOKEN #FIXED "ST"
  495     V-HL7_NAME        CDATA   #FIXED "code"
  496     DN                CDATA   #IMPLIED
  497     DN-T              NMTOKEN #FIXED "ST"
  498     DN-HL7_NAME       CDATA   #FIXED "displayName"
  499     S                 CDATA   #IMPLIED
  500     S-T               NMTOKEN #FIXED "OID"
  501     S-HL7_NAME        CDATA   #FIXED "codeSystem"
  502     SN                CDATA   #IMPLIED
  503     SN-T              NMTOKEN #FIXED "ST"
  504     SN-HL7_NAME       CDATA   #FIXED "codeSystemName"
  505     SV                CDATA   #IMPLIED
  506     SV-T              NMTOKEN #FIXED "OID"
  507     SV-HL7_NAME       CDATA   #FIXED "codeSystemVersion"
  508     ORIGTXT           IDREF   #IMPLIED
  509     ORIGTXT-T         NMTOKEN #FIXED "ST"
  510     ORIGTXT-HL7_NAME  CDATA   #FIXED "originalText"
  511     VT                CDATA   #IMPLIED
  512     VT-T              NMTOKEN #FIXED "IVL_TS"
  513     VT-HL7_NAME       CDATA   #FIXED "validTime"
  514     PROB              CDATA   #IMPLIED
  515     PROB-T            NMTOKEN #FIXED "REAL"
  516     PROB-HL7_NAME     CDATA   #FIXED "probability"
  517 '>
  518 
  519 <!--  ==================== ISO Object Identifier (OID) ==================== 
  520     no need for a separate OID type, since it is never used
  521     by itself, but only as the type of property of some other type,
  522     in which case it is also used just as a CDATA attribute
  523     ============================================================   -->
  524   
  525 <!--  ==================== Instance Identifier (II) ==================== 
  526 
  527     *************** HL7 Processing Rules ***************
  528 
  529     @NULL or @RT
  530     @PROB >= 0 and @PROB <= 1
  531     ****************************************************
  532 
  533     <someII V="optional ST" RT="required OID" ANN="optional ST"
  534         VT='2000-06-23-2000-07-24'/>
  535 
  536       ============================================================   -->
  537 
  538 <!ENTITY % II-cont.model '(TYPE?, NOTE?, CONFID?)'>
  539 <!ENTITY % II-attrib.list '
  540     T                 NMTOKEN #FIXED "II"
  541     NULL              %null.code.set; #IMPLIED
  542     EX                CDATA   #IMPLIED
  543     EX-T              NMTOKEN #FIXED "ST"
  544     EX-HL7_NAME       CDATA   #FIXED "extension"
  545     RT                CDATA   #IMPLIED
  546     RT-T              NMTOKEN #FIXED "OID"
  547     RT-HL7_NAME       CDATA   #FIXED "root"
  548     AAN               CDATA   #IMPLIED
  549     AAN-T             NMTOKEN #FIXED "ST"
  550     AAN-HL7_NAME      CDATA   #FIXED "assigningAuthorityName"
  551     VT                CDATA   #IMPLIED
  552     VT-T              NMTOKEN #FIXED "IVL_TS"
  553     VT-HL7_NAME       CDATA   #FIXED "validTime"
  554     PROB              CDATA   #IMPLIED
  555     PROB-T            NMTOKEN #FIXED "REAL"
  556     PROB-HL7_NAME     CDATA   #FIXED "probability"
  557 '>
  558 
  559 <!--  ================= Uniform Resource Locator (URL) ================= 
  560     no need for a separate URL type, since it is never used
  561     by itself, but only as the type of property of some other type,
  562     in which case it is also used just as a CDATA attribute
  563 
  564     URL's are encoded as a single string, even tho the abstract model
  565     has the schema and address as separate properties
  566     ============================================================   -->
  567 
  568 <!--  ================= telecommunication address (TEL) ================= 
  569 
  570     *************** HL7 Processing Rules ***************
  571 
  572     @NULL or @V
  573     @PROB >= 0 and @PROB <= 1
  574     ****************************************************
  575 
  576     <someTEL V="http://example.com/somePath" USE="WP"/>
  577     <someTEL V="tel:(358)555-1234" USE="HP EC"/>
  578 
  579     The latest draft of the Abstract doc mentions a resovledData
  580     property, although it doesn't describe that property in detail.
  581     I believe the property is ill-defined and should not be present,
  582     hence I haven't represented it here.
  583       ============================================================   -->
  584 <!ENTITY % TEL-cont.model '(NOTE?, CONFID?)'>
  585 <!ENTITY % TEL-attrib.list '
  586     T                 NMTOKEN #FIXED "TEL"
  587     NULL              %null.code.set; #IMPLIED
  588     V                 CDATA   #IMPLIED
  589     V-T               NMTOKEN #FIXED "URL"
  590     V-HL7_NAME        CDATA   #FIXED "value"
  591     USE               NMTOKENS #IMPLIED
  592     USE-T             NMTOKEN #FIXED "SET_CS"
  593     USE-DOMAIN        CDATA   #FIXED "2.16.840.1.113883.5.1011"
  594     USE-HL7_NAME      CDATA   #FIXED "use"
  595     VT                CDATA   #IMPLIED
  596     VT-T              NMTOKEN #FIXED "GTS"
  597     VT-HL7_NAME       CDATA   #FIXED "validTime"
  598     PROB              CDATA   #IMPLIED
  599     PROB-T            NMTOKEN #FIXED "REAL"
  600     PROB-HL7_NAME     CDATA   #FIXED "probability"
  601 '>
  602 
  603 <!--  ========================== address part (ADXP) ==========================
  604       address part type codes are represented by sub-element GIs in the
  605       enclosing AD
  606       ============================================================   -->
  607 <!ENTITY % ADXP-cont.model '(NOTE?, CONFID?)'>
  608 <!ENTITY % ADXP-attrib.list '
  609     T                 NMTOKEN #FIXED "ADXP"
  610     NULL              %null.code.set; #IMPLIED
  611     V                 CDATA   #IMPLIED
  612     V-T               NMTOKEN #FIXED "ST"
  613     V-HL7_NAME        CDATA   #FIXED "value"
  614     VT                CDATA   #IMPLIED
  615     VT-T              NMTOKEN #FIXED "IVL_TS"
  616     VT-HL7_NAME       CDATA   #FIXED "validTime"
  617     PROB              CDATA   #IMPLIED
  618     PROB-T            NMTOKEN #FIXED "REAL"
  619     PROB-HL7_NAME     CDATA   #FIXED "probability"
  620 '>
  621 
  622 <!--  ============== Postal and Residential Address (AD) ============== 
  623 
  624     *************** HL7 Processing Rules ***************
  625 
  626     @NULL or child::LIT or child::DEL or child::CNT etc.
  627     @PROB >= 0 and @PROB <= 1
  628     ****************************************************
  629     <someAD USE="PST"/>
  630         <HNR V="970"/>
  631         <STR V="Post St"/>
  632         <DIR V="NE"/>
  633         <CTY V="Alameda"/>
  634         <STA V="CA"/>
  635         <ZIP V="94501"/>
  636     </someAD>
  637 
  638     formated property is represented as @V
  639     
  640     LIT as an ADXP type code has been removed from the latest draft of
  641     the Abstract doc, with the notion being that what was formerly the content
  642     of LIT should now become PCDATA...this requires a mixed content model, which
  643     I'm not quite ready to introduce...so, LIT is still used here.  The problem
  644     with a mixed content model in this case is that child::NOTE's could be
  645     sprinkled anywhere and the semantics of that aren't defined.  Having a
  646     mixed content model would also make it harder (tho not impossible) to
  647     define a good content model for HXIT<AD> (unless of course, we switch
  648     to a literal for for IVL<TS>, which would simplify the transfer syntax
  649     but complicate the applications)
  650       ============================================================   -->
  651 <!ENTITY % AD-cont.model '((LIT|DEL|CNT|STA|CTY|ZIP|STR|HNR|DIR|ADL|POB)*, NOTE?, CONFID?)'>
  652 <!ENTITY % AD-attrib.list '
  653     T                 NMTOKEN #FIXED "AD"
  654     NULL              %null.code.set; #IMPLIED
  655     V                 CDATA   #IMPLIED
  656     V-T               NMTOKEN #FIXED "ST"
  657     V-HL7_NAME        CDATA   #FIXED "formated"
  658     USE               NMTOKENS #IMPLIED
  659     USE-T             NMTOKEN #FIXED "SET_CS"
  660     USE-DOMAIN        CDATA   #FIXED "2.16.840.1.113883.5.1012"
  661     USE-HL7_NAME      CDATA   #FIXED "use"
  662     VT                CDATA   #IMPLIED
  663     VT-T              NMTOKEN #FIXED "GTS"
  664     VT-HL7_NAME       CDATA   #FIXED "validTime"
  665     PROB              CDATA   #IMPLIED
  666     PROB-T            NMTOKEN #FIXED "REAL"
  667     PROB-HL7_NAME     CDATA   #FIXED "probability"
  668 '>
  669 
  670 <!--  ================== Person Name Part (PNXP) ================== 
  671 
  672     *************** HL7 Processing Rules ***************
  673 
  674     @NULL or @V
  675     ****************************************************
  676 
  677       name part type codes are represented by sub-element GIs in the
  678       enclosing PN
  679       ============================================================   -->
  680 <!ENTITY % PNXP-cont.model '(NOTE?, CONFID?)'>
  681 <!ENTITY % PNXP-attrib.list '
  682     T                 NMTOKEN #FIXED "PNXP"
  683     NULL              %null.code.set; #IMPLIED
  684     V                 CDATA   #IMPLIED
  685     V-T               NMTOKEN #FIXED "ST"
  686     V-HL7_NAME        CDATA   #FIXED "value"
  687     QUAL              NMTOKENS #IMPLIED
  688     QUAL-T            NMTOKEN #FIXED "SET_CS"
  689     QUAL-DOMAIN       CDATA   #FIXED "2.16.840.1.113883.5.1014"
  690     QUAL-HL7_NAME     CDATA   #FIXED "qualifier"
  691     VT                CDATA   #IMPLIED
  692     VT-T              NMTOKEN #FIXED "IVL_TS"
  693     VT-HL7_NAME       CDATA   #FIXED "validTime"
  694     PROB              CDATA   #IMPLIED
  695     PROB-T            NMTOKEN #FIXED "REAL"
  696     PROB-HL7_NAME     CDATA   #FIXED "probability"
  697 '>
  698 
  699 <!--  ======================== Person Name (PN) ======================== 
  700 
  701     *************** HL7 Processing Rules ***************
  702 
  703     The order in which the name parts are sent should represent the natural 
  704     order for displaying the name. It is not required to break names down 
  705     using all of the elements, although individual nations may require 
  706     specific elements. Displaying a name depends on the white space rules 
  707     included in the V3DT report. It may be necessary to preserve white space 
  708     in certain elements.
  709     
  710     @PROB >= 0 and @PROB <= 1
  711     ****************************************************
  712 
  713     <somePN NOTE="This is an example of 'Wesley Rishel'">
  714         <FAM V="Rishel" QUAL="BR RE"/>
  715         <GIV V="Wesley" QUAL="BR RE"/>
  716     </somePN>
  717 
  718     <somePN NOTE="This is an example of 'Irma Corine Jongeneel-de Haas'">
  719         <GIV V="Irma" QUAL="RE"/>
  720         <GIV V="Corine" QUAL="RE"/>
  721         <FAM V="Jongeneel" QUAL="RE SP"/>
  722         <DEL V="-"/>
  723         <FAM V="de Haas" QUAL="RE BR"/>
  724     </somePN>
  725 
  726     uses @V to represent the formated property
  727       ============================================================   -->
  728 <!ENTITY % PN-cont.model '((GIV|MID|FAM|PFX|SFX|DEL)*, NOTE?, CONFID?)'>
  729 <!ENTITY % PN-attrib.list '
  730     T                 NMTOKEN #FIXED "PN"
  731     NULL              %null.code.set; #IMPLIED
  732     V                 CDATA   #IMPLIED
  733     V-T               NMTOKEN #FIXED "ST"
  734     V-HL7_NAME        CDATA   #FIXED "formated"
  735     VT                CDATA   #IMPLIED
  736     VT-T              NMTOKEN #FIXED "IVL_TS"
  737     VT-HL7_NAME       CDATA   #FIXED "validTime"
  738     PROB              CDATA   #IMPLIED
  739     PROB-T            NMTOKEN #FIXED "REAL"
  740     PROB-HL7_NAME     CDATA   #FIXED "probability"
  741 '>
  742 
  743 <!--  ===================== Organization Name (ON) ===================== 
  744 
  745     *************** HL7 Processing Rules ***************
  746 
  747     @NULL or @V
  748     @PROB >= 0 and @PROB <= 1
  749     ****************************************************
  750 
  751     <someON TYPE="optional CS" V="optional ST"/>
  752 
  753     should this be modeled closer to AD and PN?
  754       ============================================================   -->
  755 <!ENTITY % ON-cont.model '(NOTE?, CONFID?)'>
  756 <!ENTITY % ON-attrib.list '
  757     T                 NMTOKEN #FIXED "ON"
  758     NULL              %null.code.set; #IMPLIED
  759     V                 CDATA   #IMPLIED
  760     V-T               NMTOKEN #FIXED "ST"
  761     V-HL7_NAME        CDATA   #FIXED "value"
  762     TYPE              (L|A|ST) #IMPLIED
  763     TYPE-T            NMTOKEN #FIXED "CS"
  764     TYPE-DOMAIN       CDATA   #FIXED "2.16.840.1.113883.5.1015"
  765     TYPE-HL7_NAME     CDATA   #FIXED "type"
  766     VT                CDATA   #IMPLIED
  767     VT-T              NMTOKEN #FIXED "IVL_TS"
  768     VT-HL7_NAME       CDATA   #FIXED "validTime"
  769     PROB              CDATA   #IMPLIED
  770     PROB-T            NMTOKEN #FIXED "REAL"
  771     PROB-HL7_NAME     CDATA   #FIXED "probability"
  772 '>
  773 
  774 <!--  ========================== Quantity (QTY) ========================== 
  775 
  776     *************** HL7 Processing Rules ***************
  777 
  778     @NULL or @V
  779     ###not xpath### INT|REAL|TS ::= V or PQ|MO ::= V, U?
  780     not(@T='PQ' or @T='MO' or @T='TS') or @U  ### I think does the HL7-PR above
  781     @PROB >= 0 and @PROB <= 1
  782     ****************************************************
  783 
  784     <someQTY T="INT|REAL|PQ|MO" V="123.75" U="mg/dL"/>
  785     
  786     Unless @T=TS, @CAL is meaningless and should be ignored
  787     
  788     The cardinality/default value for QTY is defined as a param entity
  789     whose starting value is "#IMPLIED".  We do it this way so that the
  790     NUM and DENOM properties of RTO can take on the default value
  791     "1" as specified in the abstract ballot.
  792       ============================================================   -->
  793 <!ENTITY % QTY-cont.model '(NOTE?, CONFID?)'>
  794 <!ENTITY % QTY-default.value '#IMPLIED'>
  795 <!ENTITY % QTY-attrib.list '
  796     T                 (INT|REAL|PQ|MO|TS) "INT"
  797     NULL              %null.code.set; #IMPLIED
  798     V                 CDATA   %QTY-default.value;
  799     V-T               NMTOKEN #FIXED "ST"
  800     V-HL7_NAME        CDATA   #FIXED "value"
  801     U                 CDATA   #IMPLIED
  802     U-T               NMTOKEN #FIXED "CS"
  803     U-HL7_NAME        CDATA   #FIXED "unit"
  804     VT                CDATA   #IMPLIED
  805     VT-T              NMTOKEN #FIXED "IVL_TS"
  806     VT-HL7_NAME       CDATA   #FIXED "validTime"
  807     PROB              CDATA   #IMPLIED
  808     PROB-T            NMTOKEN #FIXED "REAL"
  809     PROB-HL7_NAME     CDATA   #FIXED "probability"
  810 '>
  811 
  812 <!--  ========================== Integer (INT) ========================== 
  813 
  814     *************** HL7 Processing Rules ***************
  815 
  816     @NULL or @V
  817     @PROB >= 0 and @PROB <= 1
  818     ****************************************************
  819 
  820     <someINT V="required ST"/>
  821 
  822     The "exceptional" values positive and negative infinity are
  823     represented as null flavors
  824       ============================================================   -->
  825 
  826 <!ENTITY % INT-cont.model '(NOTE?, CONFID?)'>
  827 <!ENTITY % INT-attrib.list '
  828     T                 NMTOKEN #FIXED "INT"
  829     NULL              %null.code.set; #IMPLIED
  830     V                 CDATA   #IMPLIED
  831     V-T               NMTOKEN #FIXED "ST"
  832     V-HL7_NAME        CDATA   #FIXED "value"
  833     VT                CDATA   #IMPLIED
  834     VT-T              NMTOKEN #FIXED "IVL_TS"
  835     VT-HL7_NAME       CDATA   #FIXED "validTime"
  836     PROB              CDATA   #IMPLIED
  837     PROB-T            NMTOKEN #FIXED "REAL"
  838     PROB-HL7_NAME     CDATA   #FIXED "probability"
  839 '>
  840 
  841 <!--  ======================== Real Number (REAL) ======================== 
  842 
  843     *************** HL7 Processing Rules ***************
  844 
  845     @NULL or @V
  846     @PROB >= 0 and @PROB <= 1
  847     ****************************************************
  848 
  849     <someREAL V="required REAL"/>
  850 
  851     The "exceptional" values positive and negative infinity are
  852     represented as null flavors
  853     
  854     Note: XML Schema currently allows trailing zeros in its literals
  855     of type decimal, hence we will be able to get the precision property
  856     from the literals.  However, there is discussion within the WG
  857     to disallow trailing zeros, and if this happens, we will have to
  858     add @PREC or some such
  859       ============================================================   -->
  860 <!ENTITY % REAL-cont.model '(NOTE?, CONFID?)'>
  861 <!ENTITY % REAL-attrib.list '
  862     T                 NMTOKEN #FIXED "REAL"
  863     NULL              %null.code.set; #IMPLIED
  864     V                 CDATA   #IMPLIED
  865     V-T               NMTOKEN #FIXED "ST"
  866     V-HL7_NAME        CDATA   #FIXED "value"
  867     VT                CDATA   #IMPLIED
  868     VT-T              NMTOKEN #FIXED "IVL_TS"
  869     VT-HL7_NAME       CDATA   #FIXED "validTime"
  870     PROB              CDATA   #IMPLIED
  871     PROB-T            NMTOKEN #FIXED "REAL"
  872     PROB-HL7_NAME     CDATA   #FIXED "probability"
  873 '>
  874 
  875 <!--  ==================== Ratio of Quantities (RTO) ==================== 
  876 
  877     *************** HL7 Processing Rules ***************
  878 
  879     @NULL or (child::NUM and not(child::NUM/@NULL))
  880     @NULL or (child::DENOM[@V!='0'] and not(child::DENOM/@NULL))
  881     @PROB >= 0 and @PROB <= 1
  882     ****************************************************
  883 
  884     <someRTO>
  885         <NUM T="INT|REAL|PQ|MO" V="123.75" U="mg/dL"/>
  886         <DENOM T="INT|REAL|PQ|MO" V="123.75" U="mg/dL"/>
  887     </someRTO>
  888     
  889     How should the demotion to PQ and REAL be handled?
  890       ============================================================   -->
  891 <!ENTITY % RTO-cont.model '((NUM, DENOM)?, NOTE?, CONFID?)'>
  892 <!ENTITY % RTO-attrib.list '
  893     T                 NMTOKEN #FIXED "RTO"
  894     NULL              %null.code.set; #IMPLIED
  895     VT                CDATA   #IMPLIED
  896     VT-T              NMTOKEN #FIXED "IVL_TS"
  897     VT-HL7_NAME       CDATA   #FIXED "validTime"
  898     PROB              CDATA   #IMPLIED
  899     PROB-T            NMTOKEN #FIXED "REAL"
  900     PROB-HL7_NAME     CDATA   #FIXED "probability"
  901 '>
  902 
  903 <!--  ====================== Physical Quantity (PQ) ====================== 
  904 
  905     *************** HL7 Processing Rules ***************
  906 
  907     @NULL or (@V and @U)
  908     @PROB >= 0 and @PROB <= 1
  909     ****************************************************
  910 
  911     <somePQ V="1123.37" U="cm"/>
  912 
  913     Does the XML ITS have to say *anything* about about the
  914     canonical form for a PQ?
  915       ==================================== ========================   -->
  916 <!ENTITY % PQ-cont.model '(NOTE?, CONFID?)'>
  917 <!ENTITY % PQ-attrib.list '
  918     T                 NMTOKEN #FIXED "PQ"
  919     NULL              %null.code.set; #IMPLIED
  920     V                 CDATA   #IMPLIED
  921     V-T               NMTOKEN #FIXED "REAL"
  922     V-HL7_NAME        CDATA   #FIXED "value"
  923     U                 CDATA   #IMPLIED
  924     U-T               NMTOKEN #FIXED "CS"
  925     U-HL7_NAME        CDATA   #FIXED "unit"
  926     VT                CDATA   #IMPLIED
  927     VT-T              NMTOKEN #FIXED "IVL_TS"
  928     VT-HL7_NAME       CDATA   #FIXED "validTime"
  929     PROB              CDATA   #IMPLIED
  930     PROB-T            NMTOKEN #FIXED "REAL"
  931     PROB-HL7_NAME     CDATA   #FIXED "probability"
  932 '>
  933 
  934 <!--  ====================== Monetary Amount (MO) ====================== 
  935 
  936     *************** HL7 Processing Rules ***************
  937 
  938     @NULL or (@V and @U)
  939     @PROB >= 0 and @PROB <= 1
  940     ****************************************************
  941 
  942     <someMO V="1123.37" U="USD"/>
  943 
  944     Why is there an MO type to begin with...why can't this just be a
  945     restriction of PQ, where the domain of unit is fixed to ISO 4217?
  946       ==================================== ========================   -->
  947 
  948 <!ENTITY % MO-cont.model '(NOTE?, CONFID?)'>
  949 <!ENTITY % MO-attrib.list '
  950     T                 NMTOKEN #FIXED "MO"
  951     NULL              %null.code.set; #IMPLIED
  952     V                 CDATA   #IMPLIED
  953     V-T               NMTOKEN #FIXED "REAL"
  954     V-HL7_NAME        CDATA   #FIXED "value"
  955     U                 CDATA   #IMPLIED
  956     U-T               NMTOKEN #FIXED "CS"
  957     U-DOMAIN          CDATA   #FIXED "2.16.840.1.113883.6.9"
  958     U-HL7_NAME        CDATA   #FIXED "currency"
  959     VT                CDATA   #IMPLIED
  960     VT-T              NMTOKEN #FIXED "IVL_TS"
  961     VT-HL7_NAME       CDATA   #FIXED "validTime"
  962     PROB              CDATA   #IMPLIED
  963     PROB-T            NMTOKEN #FIXED "REAL"
  964     PROB-HL7_NAME     CDATA   #FIXED "probability"
  965 '>
  966 
  967 <!--  ======================= Point in Time (TS) ======================= 
  968 
  969     *************** HL7 Processing Rules ***************
  970 
  971     @NULL or @V
  972     @PROB >= 0 and @PROB <= 1
  973     ****************************************************
  974 
  975     <someTS V="19990924162403-0800"/>
  976 
  977     the timezone property is conveyed as part of value (V)
  978     instead of as a separate property (there is some call w/i the
  979     XML Schema WG that ALL time-related datatypes in the schema spec
  980     should be specified in UTC, I'm fighting that but may loose)
  981     
  982     offset is not represented at all (and to editorialize, I believe
  983     should be removed from the abstract type, unless the epoch is also
  984     added...semantically, it does no good to know that some point in
  985     time is 1 day from an epoch if I don't also know what the epoch is).
  986       ============================================================   -->
  987 <!ENTITY % TS-cont.model '(NOTE?, CONFID?)'>
  988 <!ENTITY % TS-attrib.list '
  989     T                 NMTOKEN #FIXED "TS"
  990     NULL              %null.code.set; #IMPLIED
  991     V                 CDATA   #IMPLIED
  992     V-T               NMTOKEN #FIXED "ST"
  993     V-HL7_NAME        CDATA   #FIXED "value"
  994     VT                CDATA   #IMPLIED
  995     VT-T              NMTOKEN #FIXED "IVL_TS"
  996     VT-HL7_NAME       CDATA   #FIXED "validTime"
  997     PROB              CDATA   #IMPLIED
  998     PROB-T            NMTOKEN #FIXED "REAL"
  999     PROB-HL7_NAME     CDATA   #FIXED "probability"
 1000 '>
 1001 
 1002 <!-- We do not need SET<T> for all T -->
 1003 <!-- We do not need LIST<T> for all T -->
 1004 <!-- We do not need BAG<T> for all T -->
 1005 
 1006 <!--  ================ interval of physical quantities (IVL_PQ) ================ 
 1007 
 1008     To avoid redundancy and difficulty in processing we factor the
 1009     units from both bounds into one unit of the interval. This
 1010     requires both low and high bound to have a common unit. Width,
 1011     however must have its own unit, since in difference-scale
 1012     quantities the width may be of a different unit.
 1013 
 1014     *************** HL7 Processing Rules ***************
 1015 
 1016     The following combinations of components are valid:
 1017 
 1018     @NULL or @V
 1019     @PROB >= 0 and @PROB <= 1
 1020     ****************************************************
 1021 
 1022     <someIVL_PQ LOW="optional REAL" LOW_CLOSED="optional BL" HIGH="optional REAL"
 1023         HIGH_CLOSED="optional BL" UNIT="optional CV" WID="optional PQ"/>
 1024 
 1025     The XML ITS does not support promotion of a PQ into an IVL_PQ,
 1026     although demotion of IVL_PQ to PQ is supported (using @V and @U)
 1027       ============================================================   -->
 1028 <!ENTITY % IVL_PQ-cont.model "(NOTE?, CONFID?)">
 1029 <!ENTITY % IVL_PQ-attrib.list "
 1030     T                 (IVL_PQ|PQ) 'IVL_PQ'
 1031     NULL              %null.code.set; #IMPLIED
 1032     V                 CDATA   #IMPLIED
 1033     V-T               NMTOKEN #FIXED 'REAL'
 1034     V-HL7_NAME        CDATA   #FIXED 'value'
 1035     U                 CDATA   #IMPLIED
 1036     U-T               NMTOKEN #FIXED 'CS'
 1037     U-HL7_NAME        CDATA   #FIXED 'unit'
 1038     VT                CDATA   #IMPLIED
 1039     VT-T              NMTOKEN #FIXED 'IVL_TS'
 1040     VT-HL7_NAME       CDATA   #FIXED 'validTime'
 1041     PROB              CDATA   #IMPLIED
 1042     PROB-T            NMTOKEN #FIXED 'REAL'
 1043     PROB-HL7_NAME     CDATA   #FIXED 'probability'
 1044 ">
 1045 
 1046 <!--  ================ interval of points in time (IVL_TS) ================ 
 1047 
 1048     *************** HL7 Processing Rules ***************
 1049 
 1050     The following combinations of components are valid:
 1051 
 1052     ****************************************************
 1053 
 1054     Note that DIF_TS is just an alias for PQ with a dimensional
 1055     constraint on the unit (PQ in the dimension of time.)
 1056 
 1057     The XML ITS does not support promotion of a PQ into an IVL_PQ,
 1058     although demotion of IVL_PQ to PQ is supported (using @V and @U)
 1059 
 1060     literals (e.g., values of @V) follow literal form from section
 1061     7.4.3 of abstract ballot
 1062       ============================================================   -->
 1063 <!ENTITY % IVL_TS-cont.model "(NOTE?, CONFID?)">
 1064 <!ENTITY % IVL_TS-attrib.list "
 1065     T                 NMTOKEN #FIXED 'IVL_TS'
 1066     NULL              %null.code.set; #IMPLIED
 1067     V                 CDATA   #IMPLIED
 1068     V-T               NMTOKEN #FIXED 'TS'
 1069     V-HL7_NAME        CDATA   #FIXED 'value'
 1070     VT                CDATA   #IMPLIED
 1071     VT-T              NMTOKEN #FIXED 'IVL_TS'
 1072     VT-HL7_NAME       CDATA   #FIXED 'validTime'
 1073     PROB              CDATA   #IMPLIED
 1074     PROB-T            NMTOKEN #FIXED 'REAL'
 1075     PROB-HL7_NAME     CDATA   #FIXED 'probability'
 1076 ">
 1077 
 1078 <!--  ================= Periodic Interval of Time (PIVL) ================= 
 1079     no need for a separate PIVL type, since it is never used
 1080     by itself, but only to define the semantics of GTS
 1081     ============================================================   -->
 1082 <!--  ============ Event-Related Periodic Interval of Time (EIVL) ========
 1083     no need for a separate EIVL type, since it is never used
 1084     by itself, but only to define the semantics of GTS
 1085     ============================================================   -->
 1086 
 1087 <!--  ================ General Timing Specification (GTS) ================ 
 1088 
 1089     *************** HL7 Processing Rules ***************
 1090 
 1091     The following combinations of components are valid:
 1092 
 1093     @NULL or @V
 1094     @PROB >= 0 and @PROB <= 1
 1095     ****************************************************
 1096         need examples!!!
 1097         
 1098     The values of @V follow the Literal Form in section 8.3.1.3 of the
 1099     abstract ballot
 1100       ============================================================   -->
 1101 <!ENTITY % GTS-cont.model '(NOTE?, CONFID?)'>
 1102 <!ENTITY % GTS-attrib.list '
 1103     T                 NMTOKEN #FIXED "GTS"
 1104     NULL              %null.code.set; #IMPLIED
 1105     V                 CDATA #IMPLIED
 1106     V-T               NMTOKEN #FIXED "GTS"
 1107     V-HL7_NAME        CDATA   #FIXED "value"
 1108     VT                CDATA   #IMPLIED
 1109     VT-T              NMTOKEN #FIXED "IVL_TS"
 1110     VT-HL7_NAME       CDATA   #FIXED "validTime"
 1111     PROB              CDATA   #IMPLIED
 1112     PROB-T            NMTOKEN #FIXED "REAL"
 1113     PROB-HL7_NAME     CDATA   #FIXED "probability"
 1114 '>
 1115 
 1116 
 1117 <!--  ========================== ANT<T> ========================== 
 1118      no need for ANT<T> since all types defined for the XML ITS
 1119      already include an optional note property
 1120       ============================================================   -->
 1121 
 1122 <!--  ========================== HIST<T> ========================== 
 1123      no need for HIST<T> since all types defined for the XML ITS
 1124      already include an optional validTime property (and hence, are HXIT<T>),
 1125      and HIST<T> is simply an optionally repeating HXIT<T>
 1126       ============================================================   -->
 1127 
 1128 <!--  ================ Uncertain Value-Narrative (UVN<T>) ================ 
 1129      no need for UVN<T> since all types defined for the XML ITS
 1130      already include an optional confidence property
 1131       ============================================================   -->
 1132 
 1133 <!--  ================ Uncertain Value-Probabilistic (UVP<T>) ================ 
 1134      no need for UVP<T> since all types defined for the XML ITS
 1135      already include an optional probability property
 1136       ============================================================   -->
 1137 
 1138 <!--  ============ Non-Parametric Probability Distribution (NPPD<T>) ============ 
 1139      no need for NPPD<T> since all types defined for the XML ITS
 1140      already include an optional probability property (and hence,
 1141      are already UVP<T>) and NPPD<T> is simply an optionally
 1142      repeating UVP<T>
 1143       ============================================================   -->
 1144 
 1145 <!--  ========================== PPD<QTY> ========================== 
 1146 
 1147     *************** HL7 Processing Rules ***************
 1148 
 1149     @NULL or @V
 1150     ****************************************************
 1151 
 1152      need examples!!!
 1153      
 1154     The XML ITS does not support promoting a QTY to a PPD<QTY>
 1155       ============================================================   -->
 1156 <!ENTITY % PPD_QTY-cont.model '(NOTE?, CONFID?)'>
 1157 <!ENTITY % PPD_QTY-attrib.list '
 1158     T                 (PPD_INT|PPD_REAL|PPD_PQ|PPD_MO|PPD_TS) "PPD_INT"
 1159     NULL              %null.code.set; #IMPLIED
 1160     V                 CDATA   #IMPLIED
 1161     V-T               NMTOKEN #FIXED "REAL"
 1162     V-HL7_NAME        CDATA   #FIXED "value"
 1163     U                 CDATA   #IMPLIED
 1164     U-T               NMTOKEN #FIXED "ST"
 1165     U-HL7_NAME        CDATA   #FIXED "unit"
 1166     SD                CDATA   #IMPLIED
 1167     SD-T              NMTOKEN #FIXED "REAL"
 1168     SD-HL7_NAME       CDATA   #FIXED "standardDeviation"
 1169     SDU               CDATA   #IMPLIED
 1170     SDU-T             NMTOKEN #FIXED "CS"
 1171     SDU-HL7_NAME      CDATA   #FIXED "standardDeviation unit"
 1172     TY                (U|N|LN|G|E|X2|T|F|B) #IMPLIED
 1173     TY-T              NMTOKEN #FIXED "CS"
 1174     TY-DOMAIN         CDATA   #FIXED "2.16.840.1.113883.5.1019"
 1175     TY-HL7_NAME       CDATA   #FIXED "type" 
 1176     VT                CDATA   #IMPLIED
 1177     VT-T              NMTOKEN #FIXED "IVL_TS"
 1178     VT-HL7_NAME       CDATA   #FIXED "validTime"
 1179     PROB              CDATA   #IMPLIED
 1180     PROB-T            NMTOKEN #FIXED "REAL"
 1181     PROB-HL7_NAME     CDATA   #FIXED "probability"
 1182 '>
 1183 <!--  ========================== PPD<REAL> ========================== 
 1184 
 1185     *************** HL7 Processing Rules ***************
 1186 
 1187     @NULL or @V
 1188     ****************************************************
 1189 
 1190      need examples!!!
 1191      
 1192      The abstract ballot says that @TY is of type CV...shouldn't
 1193      it really be of type CS since the domain is fixed and no
 1194      exceptions are allowed?  Assuming so, none of extra properties
 1195      of CV are represented
 1196      
 1197     The XML ITS does not support promoting a REAL to a PPD<REAL>
 1198       ============================================================   -->
 1199 <!ENTITY % PPD_REAL-cont.model '(NOTE?, CONFID?)'>
 1200 <!ENTITY % PPD_REAL-attrib.list '
 1201     T                 NMTOKEN #FIXED "PPD_REAL"
 1202     NULL              %null.code.set; #IMPLIED
 1203     V                 CDATA   #IMPLIED
 1204     V-T               NMTOKEN #FIXED "REAL"
 1205     V-HL7_NAME        CDATA   #FIXED "value"
 1206     SD                CDATA   #IMPLIED
 1207     SD-T              NMTOKEN #FIXED "REAL"
 1208     SD-HL7_NAME       CDATA   #FIXED "standardDeviation"
 1209     TY                (U|N|LN|G|E|X2|T|F|B) #IMPLIED
 1210     TY-T              NMTOKEN #FIXED "CS"
 1211     TY-DOMAIN         CDATA   #FIXED "2.16.840.1.113883.5.1019"
 1212     TY-HL7_NAME       CDATA   #FIXED "type" 
 1213     VT                CDATA   #IMPLIED
 1214     VT-T              NMTOKEN #FIXED "IVL_TS"
 1215     VT-HL7_NAME       CDATA   #FIXED "validTime"
 1216     PROB              CDATA   #IMPLIED
 1217     PROB-T            NMTOKEN #FIXED "REAL"
 1218     PROB-HL7_NAME     CDATA   #FIXED "probability"
 1219 '>
 1220 <!--  ========================== PPD<QTY> ========================== 
 1221 
 1222     *************** HL7 Processing Rules ***************
 1223 
 1224     @NULL or @V
 1225     ****************************************************
 1226 
 1227      need examples!!!
 1228      
 1229     The XML ITS does not support promoting a PQ to a PPD<PQ>
 1230       ============================================================   -->
 1231 <!ENTITY % PPD_PQ-cont.model '(NOTE?, CONFID?)'>
 1232 <!ENTITY % PPD_PQ-attrib.list '
 1233     T                 NMTOKEN #FIXED "PPD_PQ"
 1234     NULL              %null.code.set; #IMPLIED
 1235     V                 CDATA   #IMPLIED
 1236     V-T               NMTOKEN #FIXED "REAL"
 1237     V-HL7_NAME        CDATA   #FIXED "value"
 1238     U                 CDATA   #IMPLIED
 1239     U-T               NMTOKEN #FIXED "ST"
 1240     U-HL7_NAME        CDATA   #FIXED "unit"
 1241     SD                CDATA   #IMPLIED
 1242     SD-T              NMTOKEN #FIXED "REAL"
 1243     SD-HL7_NAME       CDATA   #FIXED "standardDeviation"
 1244     SDU               CDATA   #IMPLIED
 1245     SDU-T             NMTOKEN #FIXED "CS"
 1246     SDU-HL7_NAME      CDATA   #FIXED "standardDeviation unit"
 1247     TY                (U|N|LN|G|E|X2|T|F|B) #IMPLIED
 1248     TY-T              NMTOKEN #FIXED "CS"
 1249     TY-DOMAIN         CDATA   #FIXED "2.16.840.1.113883.5.1019"
 1250     TY-HL7_NAME       CDATA   #FIXED "type" 
 1251     VT                CDATA   #IMPLIED
 1252     VT-T              NMTOKEN #FIXED "IVL_TS"
 1253     VT-HL7_NAME       CDATA   #FIXED "validTime"
 1254     PROB              CDATA   #IMPLIED
 1255     PROB-T            NMTOKEN #FIXED "REAL"
 1256     PROB-HL7_NAME     CDATA   #FIXED "probability"
 1257 '>
 1258 <!--  ========================== PPD<TS> ========================== 
 1259 
 1260     *************** HL7 Processing Rules ***************
 1261 
 1262     @NULL or @V
 1263     ****************************************************
 1264 
 1265      need examples!!!
 1266      
 1267     The XML ITS does not support promoting a TS to a PPD<TS>
 1268       ============================================================   -->
 1269 <!ENTITY % PPD_TS-cont.model '(NOTE?, CONFID?)'>
 1270 <!ENTITY % PPD_TS-attrib.list '
 1271     T                 NMTOKEN #FIXED "PPD_TS"
 1272     NULL              %null.code.set; #IMPLIED
 1273     V                 CDATA   #IMPLIED
 1274     V-T               NMTOKEN #FIXED "REAL"
 1275     V-HL7_NAME        CDATA   #FIXED "value"
 1276     SD                CDATA   #IMPLIED
 1277     SD-T              NMTOKEN #FIXED "REAL"
 1278     SD-HL7_NAME       CDATA   #FIXED "standardDeviation"
 1279     SDU               CDATA   #IMPLIED
 1280     SDU-T             NMTOKEN #FIXED "CS"
 1281     SDU-HL7_NAME      CDATA   #FIXED "standardDeviation unit"
 1282     TY                (U|N|LN|G|E|X2|T|F|B) #IMPLIED
 1283     TY-T              NMTOKEN #FIXED "CS"
 1284     TY-DOMAIN         CDATA   #FIXED "2.16.840.1.113883.5.1019"
 1285     TY-HL7_NAME       CDATA   #FIXED "type" 
 1286     VT                CDATA   #IMPLIED
 1287     VT-T              NMTOKEN #FIXED "IVL_TS"
 1288     VT-HL7_NAME       CDATA   #FIXED "validTime"
 1289     PROB              CDATA   #IMPLIED
 1290     PROB-T            NMTOKEN #FIXED "REAL"
 1291     PROB-HL7_NAME     CDATA   #FIXED "probability"
 1292 '>
 1293 
 1294 <!--
 1295      while some of these elements could be declared up with
 1296      their main datatype, others can't since the para-enties
 1297      need for them wouldn't yet have been defined; hence, we
 1298      just put them all here.
 1299 
 1300      Also, there are most likely HL7-PR's associated with some
 1301      (all?) of these properties, but I haven't had the time to
 1302      check into that
 1303   -->
 1304 
 1305 <!--
 1306      elements required for ANT<T>
 1307   -->
 1308 <!ELEMENT NOTE %CE-cont.model;>
 1309 <!ATTLIST NOTE
 1310     %CE-attrib.list;
 1311     HL7_NAME          CDATA   #FIXED 'note'
 1312 >
 1313 <!--
 1314      elements required for UVN<T>
 1315   -->
 1316 <!ELEMENT CONFID %CV-cont.model;>
 1317 <!ATTLIST CONFID
 1318     %CV-attrib.list;
 1319     HL7_NAME          CDATA   #FIXED 'confidence'
 1320 >
 1321 <!--
 1322      elements required for ED properties
 1323   -->
 1324 <!ELEMENT REF %TEL-cont.model;>
 1325 <!ATTLIST REF
 1326     %TEL-attrib.list;
 1327     HL7_NAME          CDATA   #FIXED 'reference'
 1328 >
 1329 <!--
 1330      Following the ITS note in the abstract ballot, any properties
 1331      of the THUMBNAIL not specified in the instance are to be "inherited"
 1332      from the enclosing ED element.
 1333      
 1334      Note: actually, the ITS note only mentions the type, charset and compression
 1335      properties, but I think it equally applies to all properties
 1336   -->
 1337 <!ELEMENT THUMBNAIL %ED-cont.model;>
 1338 <!ATTLIST THUMBNAIL
 1339     %ED-attrib.list;
 1340     HL7_NAME          CDATA   #FIXED 'thumbnail'
 1341 >
 1342 
 1343 <!--
 1344      elements required for CD properties (and related types)
 1345   -->
 1346 <!ELEMENT ORIGTXT     %ED-cont.model;>
 1347 <!ATTLIST ORIGTXT
 1348     %ED-attrib.list;
 1349     HL7_NAME          CDATA   #FIXED 'originalText'
 1350 >
 1351 <!ELEMENT MODIFIER    %CR-cont.model;>
 1352 <!ATTLIST MODIFIER
 1353     %CR-attrib.list;
 1354     HL7_NAME          CDATA   #FIXED 'modifier'
 1355 >
 1356 <!ELEMENT TRANSLTN   %CD-cont.model;>
 1357 <!ATTLIST TRANSLTN
 1358     %CD-attrib.list;
 1359     HL7_NAME          CDATA   #FIXED 'translation'
 1360 >
 1361 
 1362 <!--
 1363      elements required for CR properties
 1364   -->
 1365 <!ELEMENT NAME     %CV-cont.model;>
 1366 <!ATTLIST NAME
 1367     %CV-attrib.list;
 1368     HL7_NAME          CDATA   #FIXED 'name'
 1369 >
 1370 
 1371 <!--
 1372      elements required for II properties
 1373   -->
 1374 <!ELEMENT TYPE      %CV-cont.model;>
 1375 <!ATTLIST TYPE
 1376     %CV-attrib.list;
 1377     HL7_NAME          CDATA   #FIXED 'type'
 1378 >
 1379 
 1380 <!--
 1381      elements required for AD properties
 1382   -->
 1383 <!ELEMENT LIT        %ADXP-cont.model;>
 1384 <!ATTLIST LIT
 1385     %ADXP-attrib.list;
 1386     HL7_NAME         CDATA   #FIXED 'literal'
 1387 >
 1388 <!ELEMENT DEL        %ADXP-cont.model;>
 1389 <!ATTLIST DEL
 1390     %ADXP-attrib.list;
 1391     HL7_NAME         CDATA   #FIXED 'delimiter'
 1392 >
 1393 <!ELEMENT CNT        %ADXP-cont.model;>
 1394 <!ATTLIST CNT
 1395     %ADXP-attrib.list;
 1396     HL7_NAME         CDATA   #FIXED 'country'
 1397 >
 1398 <!ELEMENT CTY        %ADXP-cont.model;>
 1399 <!ATTLIST CTY
 1400     %ADXP-attrib.list;
 1401     HL7_NAME         CDATA   #FIXED 'city'
 1402 >
 1403 <!ELEMENT STA        %ADXP-cont.model;>
 1404 <!ATTLIST STA
 1405     %ADXP-attrib.list;
 1406     HL7_NAME         CDATA   #FIXED 'state'
 1407 >
 1408 <!ELEMENT ZIP        %ADXP-cont.model;>
 1409 <!ATTLIST ZIP
 1410     %ADXP-attrib.list;
 1411     HL7_NAME         CDATA   #FIXED 'postal code'
 1412 >
 1413 <!ELEMENT STR        %ADXP-cont.model;>
 1414 <!ATTLIST STR
 1415     %ADXP-attrib.list;
 1416     HL7_NAME         CDATA   #FIXED 'street name'
 1417 >
 1418 <!ELEMENT HNR        %ADXP-cont.model;>
 1419 <!ATTLIST HNR
 1420     %ADXP-attrib.list;
 1421     HL7_NAME         CDATA   #FIXED 'house number'
 1422 >
 1423 <!ELEMENT DIR        %ADXP-cont.model;>
 1424 <!ATTLIST DIR
 1425     %ADXP-attrib.list;
 1426     HL7_NAME          CDATA   #FIXED 'direction'
 1427 >
 1428 <!ELEMENT ADL        %ADXP-cont.model;>
 1429 <!ATTLIST ADL
 1430     %ADXP-attrib.list;
 1431     HL7_NAME         CDATA   #FIXED 'address locator'
 1432 >
 1433 <!ELEMENT POB        %ADXP-cont.model;>
 1434 <!ATTLIST POB
 1435     %ADXP-attrib.list;
 1436     HL7_NAME         CDATA   #FIXED 'post office box'
 1437 >
 1438 
 1439 <!--
 1440      elements required for PN properties
 1441   -->
 1442 <!ELEMENT FAM        %PNXP-cont.model;>
 1443 <!ATTLIST FAM
 1444     %PNXP-attrib.list;
 1445     HL7_NAME         CDATA   #FIXED 'family'
 1446 >
 1447 <!ELEMENT GIV        %PNXP-cont.model;>
 1448 <!ATTLIST GIV
 1449     %PNXP-attrib.list;
 1450     HL7_NAME         CDATA   #FIXED 'given'
 1451 >
 1452 <!ELEMENT MID        %PNXP-cont.model;>
 1453 <!ATTLIST MID
 1454     %PNXP-attrib.list;
 1455     HL7_NAME         CDATA   #FIXED 'middle'
 1456 >
 1457 <!ELEMENT PFX        %PNXP-cont.model;>
 1458 <!ATTLIST PFX
 1459     %PNXP-attrib.list;
 1460     HL7_NAME         CDATA   #FIXED 'prefix'
 1461 >
 1462 <!ELEMENT SFX        %PNXP-cont.model;>
 1463 <!ATTLIST SFX
 1464     %PNXP-attrib.list;
 1465     HL7_NAME         CDATA   #FIXED 'suffix'
 1466 >
 1467 
 1468 <!------------------------------------------------------- NOT REFERRED TO IN THE CDA
 1469 
 1470 <!ELEMENT PN.DEL        %PNXP-cont.model;>
 1471 <!ATTLIST PN.DEL
 1472     %PNXP-attrib.list;
 1473     HL7_NAME         CDATA   #FIXED 'delimiter'
 1474 >
 1475 
 1476 elements required for RTO properties
 1477 
 1478 <!ELEMENT NUM          %QTY-cont.model;>
 1479 <!ENTITY % QTY-default.value '1'>
 1480 <!ATTLIST NUM
 1481     %QTY-attrib.list;
 1482     HL7_NAME          CDATA   #FIXED 'numerator'
 1483 >
 1484 
 1485 <!ELEMENT DENOM          %QTY-cont.model;>
 1486 <!ATTLIST DENOM
 1487     %QTY-attrib.list;
 1488     HL7_NAME          CDATA   #FIXED 'denominator'
 1489 >
 1490 
 1491 ------------------------------------------------------->
 1492 
 1493 <!ENTITY % QTY-default.value '#IMPLIED'>
 1494 
 1495 <!--
 1496     Revsion history
 1497     
 1498     2000-06-27:
 1499         a) A long history in which I didn't explicitly record revision comments.
 1500         b) assigned this revision number 0.9
 1501     
 1502     2000-06-28:
 1503         a) added this revision history section
 1504         b) added a "usage" comment to the top of the DTD which includes
 1505            the specification of both a full URI and an FPI for this DTD
 1506         c) removed UPDATE_MODE (and the param entities needed to
 1507            support it).  The funcationality will be handled at the
 1508            general XML ITS level.
 1509         d) changed the definition of ED:@T to be the enumeration (ST|ED)
 1510            instead of the #FIXED value ED...made ED the default
 1511         e) added X-DOMAIN #FIXED attributes for ED:@COMPN, ED:@IAC
 1512            with their values being taken from the OID table on page 104
 1513            of the Abstract doc
 1514         f) changed the HL7_NAME for ED:@IC, ED:@IAC, CD:@V, CD:@S, CD:@SN,
 1515            CD:@SV, CD:ORIGTEXT, CS:@V, CS:@DN, CV:@V, CV:@DN, CV:@S, SV:@SN,
 1516            CV:@SV, CE:@V, CE:@DN, CE:@S, CE:@SN, CE:@SV to match their spelling in
 1517            the Abstract doc
 1518         g) fixed a bug in the declaration of ED:@IAC, including adding
 1519            a param entity which enumerates the domain
 1520         h) corrected the HL7_NAME for ST:@MT, to be "type" instead of
 1521            "media type"
 1522         i) removed ENTITY decl for OID, and replaced all references to that
 1523            OID back to CDATA
 1524         j) added producer and quality properties to CD, as per the latest
 1525            revision of the Abstract doc
 1526         k) remove CR:@V and associated attributes and added a VALUE sub-element,
 1527            since the value property is of type CD
 1528         l) assigned this revision number 0.91
 1529     2000-06-29:
 1530         a) added an HL7-PR to CE which says that the type of any TRANSLN
 1531            children must be either CV or CS
 1532         b) changed the attribute type of CE:@T to the enumeration (CS|CV|CE)
 1533            which defaults to CE, to handle type demotion for CE
 1534         c) changed the HL7_NAME for CV:@V, CV:@DN, CV:@S, CV:@SN, CV:@SV,
 1535            CE:@V, CE:@DN, CE:@S, CE:@SN, CE:@SV, II:@V, II:@AAN to match
 1536            their spelling in the Abstract doc
 1537         d) changed II:@VT to II:child::VALIDTIME, since the validTime
 1538            property is of type IVL<TS>, we can't do it as an attribute
 1539         e) changed II:@TYPE to II:child::TYPE, since the type property is
 1540            of type CV, we can't do it as an attribute
 1541         f) removed tel.use.code.set and tel.use.code.default param entities,
 1542            since they were not actually correctly used in the definition of
 1543            the TEL type
 1544         g) changed the #FIXED value of TEL:@USE-DOMAIN to the OID from the table
 1545            on p 104
 1546         h) removed ad.purpose.code.set param entity, since it was not actually
 1547            used in the definition of the AD type
 1548         i) added AD:@USE-DOMAIN and #FIXED its value to the OID from the table
 1549            on p. 104
 1550         j) removed pnxp.qualifier.code.set param entity, since it was not actually
 1551            used in the definition of the PNXP type
 1552         k) added PN:@USE-DOMAIN and #FIXED its value to the OID from the table
 1553            on p. 104
 1554         l) changed the required-repeating group in AD and PN content modesl to
 1555            optional-repeating, to allow for NULL-able message elements
 1556         m) assigned this revision number 0.92
 1557     2000-06-30:
 1558         a) Added ON:@TYPE-DOMAIN, with #FIXED value from the OID table on p 104
 1559         b) assigned this revision number 0.921
 1560     2000-07-05:
 1561         a) added ability to specify originalText property of CD as either
 1562            a child::ORIGTXT or as @ORIGTXT.
 1563         b) assigned this revision number 0.922
 1564     2000-07-19:
 1565         a) Removed CD:@Q since quality appears to have disappeared from the
 1566            final abstract ballot doc
 1567         b) added processing rule to CV which says that if child::ORIGTXT is
 1568            present, its @MT must have the value "text/plain"
 1569         c) added @ORIGTXT to appropriate subtypes of CD
 1570         d) added AD:@VT
 1571         e) re-added null.code.set param entity decl, which somehow got removed
 1572         f) changed QTY:@V-T,INT:@V-T and REAL:@V-T to ST
 1573         g) added note to INT/REAL about PINF/NINF as null flavors
 1574         h) added note to REAL about precision and XML Schema
 1575         i) changed processor rule for RTO to require a non-zero DENOM
 1576            (if DENOM is not null)
 1577         j) consolidated the processing rules for PQ into a single rule
 1578         k) consolidated the processing rules for MO into a single rule
 1579         l) added MO:@U-DOMAIN and #FIXED its value to the OID from the table in
 1580            appendix A
 1581         m) added note on IVL<T> that center property is not represented,
 1582            but can be calculated
 1583         n) added preliminary xpath processing rules to IVL<T> (they may
 1584            not be correct)
 1585         o) Added @V to all IVL<QTY> to support demotion.  Also added note
 1586            that promotion of a QTY to IVL<QTY> is also not supported.
 1587         p) added note on all IVL<T> asking whether we want to get rid of
 1588            the structured rep and go to a simple literal form?
 1589         q) fixed typo in attlist decl for the TYPE element and %ED-attrib.list;
 1590         r) changed name of HXIT_AD to HXIT_AD.VALUE and added child::VALIDTIME
 1591         s) added a processing rule to AD which says that either it is null
 1592            or at least one address part is given
 1593         t) added optional child::CONFID to all T content models, so that
 1594            all T are really UVN<T>
 1595         u) added @PROB to all T, so that all T are really UVP<T>...question:
 1596            do we need a processing rule which says that we really have either
 1597            a UVN<T> or a UVP<T> but not both?
 1598         v) added TS:@CAL-DOMAIN and #FIXED its value to the OID from the table in
 1599            appendix A
 1600         w) added note that promotion of a QTY to PPD<QTY> is not supported.
 1601            added @CAL to support newly added demotion to PPD_TS.
 1602         x) added QTY:@CAL to support TS as an extension of QTY
 1603         y) added ED:@MT-DOMAIN and #FIXED its value to the OID from the table in
 1604            appendix A
 1605         z) expanded all param entities used as enumerated attribute type domains
 1606            if the param entity was only used once...removed param entity decl
 1607            as well.  Only %null.code.set; and %boolean.code.set; remain.
 1608         A) assigned this revision number 0.93
 1609     2000-07-20:
 1610         a) added a processing rule to ED which says that when demoted to ST,
 1611            no compression algorithm can be specified and no references are
 1612            allowed.
 1613         b) assigned this revision number 0.931
 1614     2000-07-21:
 1615         a) removed CD&CR:@P, they were added mistakenly (they're from an
 1616            earlier draft of the abstract ballot)
 1617         b) per GS's comments, redefined CR as essentially an extension of 
 1618            CD which adds child::NAME and @INV
 1619         c) assinged this revision number 0.932
 1620     2000-07-23:
 1621         a) made ED into a mixed content model, with "value" in PCDATA; added
 1622            ED:@ENC (B64|TXT) [TXT is default]
 1623         b) removed ED:@ICA
 1624         c) removed structured form of IVL_TS, now uses literal form from 7.3.4
 1625            of ballot doc
 1626         d) removed II:child::VALIDTIME and replaced it with II:@VT
 1627         e) changed II:@V to II:@EX
 1628   -->
 1629 <!--
 1630 ============================================================
 1631 ============================================================
 1632 HL7 Clinical Document Architecture, Version 1.0 
 1633 
 1634 CDA Header DTD
 1635 
 1636 Public Identifier :: "-//HL7//DTD CDA Header 1.0//EN"
 1637 
 1638 Derived from HL7 Reference Information Model, Version 0.98
 1639 
 1640 DTD Last Revised: September 18, 2000
 1641 ============================================================
 1642 ============================================================
 1643 -->
 1644 
 1645 
 1646 <!--
 1647 ============================================================
 1648 ============================================================
 1649 Import the V3 data type DTD
 1650 
 1651 (The following system id must be changed to point to the location of the V3DT file on your system.)
 1652 ============================================================
 1653 ============================================================
 1654 -->
 1655 
 1656 <!ENTITY % HL7V3.0-datatypes PUBLIC 
 1657   "-//HL7//DTD V3DT 1.0//EN" 
 1658   "v3DT_1.0.dtd" >
 1659 %HL7V3.0-datatypes;
 1660 
 1661 <!--
 1662 ============================================================
 1663 ============================================================
 1664 Common attributes
 1665 
 1666 ============================================================
 1667 ============================================================
 1668 -->
 1669 
 1670 <!ENTITY % common_atts "
 1671   ID ID #IMPLIED "
 1672 >
 1673 
 1674 <!--
 1675 ============================================================
 1676 ============================================================
 1677 The base RIM class for the DTD is Document_service
 1678 
 1679 ============================================================
 1680 ============================================================
 1681 -->
 1682 
 1683 <!ELEMENT clinical_document_header (
 1684   id,
 1685   set_id?,
 1686   version_nbr?,
 1687   document_type_cd,
 1688   service_tmr?,
 1689   origination_dttm,
 1690   copy_dttm?,
 1691   confidentiality_cd*,
 1692   document_relationship*,
 1693   fulfills_order?,
 1694   patient_encounter?,
 1695   authenticator*,
 1696   legal_authenticator?,
 1697   intended_recipient*,
 1698   originator*,
 1699   originating_organization?,
 1700   transcriptionist?,
 1701   provider+,
 1702   service_actor*,
 1703   patient,
 1704   originating_device*,
 1705   service_target*,
 1706   local_header*)>
 1707 <!ATTLIST clinical_document_header
 1708   %common_atts;
 1709   HL7-NAME CDATA #FIXED 'document_service_as_clinical_document_header'
 1710   T CDATA #FIXED 'service'
 1711   RIM-VERSION CDATA #FIXED '0.98'>
 1712 
 1713 <!--
 1714 ============================================================
 1715 ============================================================
 1716 RIM components (classes, attributes, associations) nested under clinical_document_header
 1717 
 1718 There are four logical components of the CDA Header:
 1719 (1) Document information; 
 1720 (2) Encounter data; 
 1721 (3) Service actors (such as providers); 
 1722 (4) Service targets (such as patients). 
 1723 
 1724 The four components are presented in this order, similar to their order in the CDA Header Hierarchical Description.
 1725 ============================================================
 1726 ============================================================
 1727 -->
 1728 
 1729 <!--
 1730 ============================================================
 1731 ============================================================
 1732 Document Information
 1733 
 1734 Document information identifies the document, defines confidentiality status, and describes relationships to other documents and orders. 
 1735 ============================================================
 1736 ============================================================
 1737 -->
 1738 
 1739 <!--
 1740 ============================================================
 1741 Document Information :: Document Identification
 1742 
 1743 Elements declared in this section include:
 1744 <id>, <set_id>, <version_nbr>, <document_type_cd>
 1745 ============================================================
 1746 -->
 1747 
 1748 <!ELEMENT id %II-cont.model;>
 1749 <!ATTLIST id
 1750   %II-attrib.list;
 1751   %common_atts;
 1752   HL7-NAME CDATA #FIXED 'id'>
 1753 
 1754 <!ELEMENT set_id %II-cont.model;>
 1755 <!ATTLIST set_id
 1756   %II-attrib.list;
 1757   %common_atts;
 1758   HL7-NAME CDATA #FIXED 'set_id'>
 1759 
 1760 <!ELEMENT version_nbr %INT-cont.model;>
 1761 <!ATTLIST version_nbr
 1762   %INT-attrib.list;
 1763   %common_atts;
 1764   HL7-NAME CDATA #FIXED 'version_nbr'>
 1765 
 1766 <!ELEMENT document_type_cd %CE-cont.model;>
 1767 <!ATTLIST document_type_cd
 1768   %CE-attrib.list;
 1769   %common_atts;
 1770   HL7-NAME CDATA #FIXED 'service_cd'>
 1771 
 1772 <!--
 1773 ============================================================
 1774 Document Information :: Document Time Stamps
 1775 
 1776 Elements declared in this section include:
 1777 <service_tmr>, <origination_dttm>, <copy_dttm>
 1778 ============================================================
 1779 -->
 1780 
 1781 <!ELEMENT service_tmr %GTS-cont.model;>
 1782 <!ATTLIST service_tmr
 1783   %GTS-attrib.list;
 1784   %common_atts;
 1785   HL7-NAME CDATA #FIXED 'service_tmr'>
 1786 
 1787 <!ELEMENT origination_dttm %TS-cont.model;>
 1788 <!ATTLIST origination_dttm
 1789   %TS-attrib.list;
 1790   %common_atts;
 1791   HL7-NAME CDATA #FIXED 'origination_dttm'>
 1792 
 1793 <!ELEMENT copy_dttm %TS-cont.model;>
 1794 <!ATTLIST copy_dttm
 1795   %TS-attrib.list;
 1796   %common_atts;
 1797   HL7-NAME CDATA #FIXED 'copy_dttm'>
 1798 
 1799 <!--
 1800 ============================================================
 1801 Document Information :: Document Confidentiality
 1802 
 1803 Elements declared in this section include:
 1804 <confidentiality_cd>
 1805 ============================================================
 1806 -->
 1807 
 1808 <!ELEMENT confidentiality_cd %CE-cont.model;>
 1809 <!ATTLIST confidentiality_cd
 1810   %CE-attrib.list;
 1811   %common_atts;
 1812   HL7-NAME CDATA #FIXED 'confidentiality_cd'>
 1813 
 1814 <!--
 1815 ============================================================
 1816 Document Information :: Document Relationships
 1817 
 1818 Elements declared in this section include:
 1819 <document_relationship>, <document_relationship.type_cd>, <related_document>, <fulfills_order>, <fulfills_order.type_cd>, <order>
 1820 ============================================================
 1821 -->
 1822 
 1823 <!ELEMENT document_relationship (
 1824   document_relationship.type_cd,
 1825   related_document,
 1826   local_header*)>
 1827 <!ATTLIST document_relationship
 1828   %common_atts;
 1829   HL7-NAME CDATA #FIXED 'is_source_for_service_relationship'
 1830   T CDATA #FIXED 'service_relationship'>
 1831 
 1832 <!ELEMENT document_relationship.type_cd %CS-cont.model;>
 1833 <!ATTLIST document_relationship.type_cd
 1834   T NMTOKEN #FIXED "CS"
 1835   V (APND|RPLC) #REQUIRED
 1836   V-T NMTOKEN #FIXED "ST"
 1837   V-HL7_NAME CDATA   #FIXED "code"
 1838   DN CDATA #IMPLIED
 1839   DN-T NMTOKEN #FIXED "ST"
 1840   DN-HL7_NAME CDATA #FIXED "displayName"
 1841   %common_atts;
 1842   HL7-NAME CDATA #FIXED 'type_cd'>
 1843 
 1844 <!ELEMENT related_document (
 1845   id,
 1846   set_id?,
 1847   version_nbr?,
 1848   local_header*)>
 1849 <!ATTLIST related_document
 1850   %common_atts;
 1851   HL7-NAME CDATA #FIXED 'has_target_service'
 1852   T CDATA #FIXED 'service'>
 1853 
 1854 <!ELEMENT fulfills_order (
 1855   fulfills_order.type_cd,
 1856   order+,
 1857   local_header*)>
 1858 <!ATTLIST fulfills_order
 1859   %common_atts;
 1860   HL7-NAME CDATA #FIXED 'is_source_for_service_relationship'
 1861   T CDATA #FIXED 'service_relationship'>
 1862 
 1863 <!ELEMENT fulfills_order.type_cd %CS-cont.model;>
 1864 <!ATTLIST fulfills_order.type_cd
 1865   T NMTOKEN #FIXED "CS"
 1866   V CDATA #FIXED "FLFS"
 1867   V-T NMTOKEN #FIXED "ST"
 1868   V-HL7_NAME CDATA   #FIXED "code"
 1869   DN CDATA #IMPLIED
 1870   DN-T NMTOKEN #FIXED "ST"
 1871   DN-HL7_NAME CDATA #FIXED "displayName"
 1872   %common_atts;
 1873   HL7-NAME CDATA #FIXED 'type_cd'>
 1874 
 1875 <!ELEMENT order (
 1876   id,
 1877   local_header*)>
 1878 <!ATTLIST order
 1879   %common_atts;
 1880   HL7-NAME CDATA #FIXED 'has_target_service'
 1881   T CDATA #FIXED 'service'>
 1882 
 1883 <!--
 1884 ============================================================
 1885 ============================================================
 1886 Encounter Data
 1887 
 1888 Encounter data describes the setting in which the documented encounter occurred. 
 1889 
 1890 Elements declared in this section include:
 1891 <patient_encounter>, <practice_setting_cd>, <encounter_tmr>, <service_location>, <addr>
 1892 ============================================================
 1893 ============================================================
 1894 -->
 1895 
 1896 <!ELEMENT patient_encounter (
 1897   id?,
 1898   practice_setting_cd?,
 1899   encounter_tmr,
 1900   service_location?,
 1901   local_header*)>
 1902 <!ATTLIST patient_encounter
 1903   %common_atts;
 1904   HL7-NAME CDATA #FIXED 'is_assigned_to_patient_encounter'
 1905   T CDATA #FIXED 'patient_encounter'>
 1906 
 1907 <!ELEMENT practice_setting_cd %CE-cont.model;>
 1908 <!ATTLIST practice_setting_cd
 1909   %CE-attrib.list;
 1910   %common_atts;
 1911   HL7-NAME CDATA #FIXED 'practice_setting_cd'>
 1912 
 1913 <!ELEMENT encounter_tmr %IVL_TS-cont.model;>
 1914 <!ATTLIST encounter_tmr
 1915   %IVL_TS-attrib.list;
 1916   %common_atts;
 1917   HL7-NAME CDATA #FIXED 'encounter_tmr'>
 1918 
 1919 <!ELEMENT service_location (
 1920   id?,
 1921   addr?,
 1922   local_header*)>
 1923 <!ATTLIST service_location
 1924   %common_atts;
 1925   HL7-NAME CDATA #FIXED 'has_master_patient_service_location'
 1926   T CDATA #FIXED 'master_patient_service_location'>
 1927 
 1928 <!ELEMENT addr %AD-cont.model;>
 1929 <!ATTLIST addr
 1930   %AD-attrib.list;
 1931   %common_atts;
 1932   HL7-NAME CDATA #FIXED 'addr'>
 1933 
 1934 <!--
 1935 ============================================================
 1936 ============================================================
 1937 Service Actors
 1938 
 1939 Service actors include those who authenticate the document, those intended to receive a copy of the document, document originators and transcriptionists, and health care providers who participated in the service(s) being documented.
 1940 ============================================================
 1941 ============================================================
 1942 -->
 1943 
 1944 <!--
 1945 ============================================================
 1946 Service Actors :: People Responsible for a Clinical Document
 1947 
 1948 Elements declared in this section include:
 1949 <person>, <person_name>, <effective_tmr>, <nm>, <person_name.type_cd>, <telecom>
 1950 ============================================================
 1951 -->
 1952 
 1953 <!ELEMENT person (
 1954   id+,
 1955   person_name*,
 1956   addr*,
 1957   telecom*,
 1958   local_header*)>
 1959 <!ATTLIST person
 1960   %common_atts;
 1961   HL7-NAME CDATA #FIXED 'participation_of_person'
 1962   T CDATA #FIXED 'person'>
 1963 
 1964 <!ELEMENT person_name (
 1965   effective_tmr?,
 1966   nm,
 1967   person_name.type_cd?,
 1968   local_header*)>
 1969 <!ATTLIST person_name
 1970   %common_atts;
 1971   HL7-NAME CDATA #FIXED 'has_person_name'
 1972   T CDATA #FIXED 'person_name'>
 1973 
 1974 <!ELEMENT effective_tmr %IVL_TS-cont.model;>
 1975 <!ATTLIST effective_tmr
 1976   %IVL_TS-attrib.list;
 1977   %common_atts;
 1978   HL7-NAME CDATA #FIXED 'effective_tmr'>
 1979 
 1980 <!ELEMENT nm %PN-cont.model;>
 1981 <!ATTLIST nm
 1982   %PN-attrib.list;
 1983   %common_atts;
 1984   HL7-NAME CDATA #FIXED 'nm'>
 1985 
 1986 <!ELEMENT person_name.type_cd %CE-cont.model;>
 1987 <!ATTLIST person_name.type_cd
 1988   %CE-attrib.list;
 1989   %common_atts;
 1990   HL7-NAME CDATA #FIXED 'type_cd'>
 1991 
 1992 <!ELEMENT telecom %TEL-cont.model;>
 1993 <!ATTLIST telecom
 1994   %TEL-attrib.list;
 1995   %common_atts;
 1996   HL7-NAME CDATA #FIXED 'phon'>
 1997 
 1998 <!--
 1999 ============================================================
 2000 Service Actors :: Authenticators
 2001 
 2002 Elements declared in this section include:
 2003 <authenticator>, <authenticator.type_cd>, <participation_tmr>, <signature_cd>, <legal_authenticator>, <legal_authenticator.type_cd>
 2004 ============================================================
 2005 -->
 2006 
 2007 <!ELEMENT authenticator (
 2008   authenticator.type_cd,
 2009   participation_tmr,
 2010   signature_cd,
 2011   person,
 2012   local_header*)>
 2013 <!ATTLIST authenticator
 2014   %common_atts;
 2015   HL7-NAME CDATA #FIXED 'has_service_actor'
 2016   T CDATA #FIXED 'service_actor'>
 2017 
 2018 <!ELEMENT authenticator.type_cd %CS-cont.model;>
 2019 <!ATTLIST authenticator.type_cd
 2020   T NMTOKEN #FIXED "CS"
 2021   V CDATA #FIXED "VRF"
 2022   V-T NMTOKEN #FIXED "ST"
 2023   V-HL7_NAME CDATA   #FIXED "code"
 2024   DN CDATA #IMPLIED
 2025   DN-T NMTOKEN #FIXED "ST"
 2026   DN-HL7_NAME CDATA #FIXED "displayName"
 2027   %common_atts;
 2028   HL7-NAME CDATA #FIXED 'type_cd'>
 2029 
 2030 <!ELEMENT participation_tmr %IVL_TS-cont.model;>
 2031 <!ATTLIST participation_tmr
 2032   %IVL_TS-attrib.list;
 2033   %common_atts;
 2034   HL7-NAME CDATA #FIXED 'tmr'>
 2035 
 2036 <!ELEMENT signature_cd %CS-cont.model;>
 2037 <!ATTLIST signature_cd
 2038   T NMTOKEN #FIXED "CS"
 2039   V (S|X) "S"
 2040   V-T NMTOKEN #FIXED "ST"
 2041   V-HL7_NAME CDATA   #FIXED "code"
 2042   DN CDATA #IMPLIED
 2043   DN-T NMTOKEN #FIXED "ST"
 2044   DN-HL7_NAME CDATA #FIXED "displayName"
 2045   %common_atts;
 2046   HL7-NAME CDATA #FIXED 'signature_cd'>
 2047 
 2048 <!ELEMENT legal_authenticator (
 2049   legal_authenticator.type_cd,
 2050   participation_tmr,
 2051   signature_cd,
 2052   person,
 2053   local_header*)>
 2054 <!ATTLIST legal_authenticator
 2055   %common_atts;
 2056   HL7-NAME CDATA #FIXED 'has_service_actor'
 2057   T CDATA #FIXED 'service_actor'>
 2058 
 2059 <!ELEMENT legal_authenticator.type_cd %CS-cont.model;>
 2060 <!ATTLIST legal_authenticator.type_cd
 2061   T NMTOKEN #FIXED "CS"
 2062   V CDATA #FIXED "SPV"
 2063   V-T NMTOKEN #FIXED "ST"
 2064   V-HL7_NAME CDATA   #FIXED "code"
 2065   DN CDATA #IMPLIED
 2066   DN-T NMTOKEN #FIXED "ST"
 2067   DN-HL7_NAME CDATA #FIXED "displayName"
 2068   %common_atts;
 2069   HL7-NAME CDATA #FIXED 'type_cd'>
 2070 
 2071 <!--
 2072 ============================================================
 2073 Service Actors :: Intended Recipients
 2074 
 2075 Elements declared in this section include:
 2076 <intended_recipient>, <intended_recipient.type_cd>
 2077 ============================================================
 2078 -->
 2079 
 2080 <!ELEMENT intended_recipient (
 2081   intended_recipient.type_cd,
 2082   person,
 2083   local_header*)>
 2084 <!ATTLIST intended_recipient
 2085   %common_atts;
 2086   HL7-NAME CDATA #FIXED 'has_service_actor'
 2087   T CDATA #FIXED 'service_actor'>
 2088 
 2089 <!ELEMENT intended_recipient.type_cd %CS-cont.model;>
 2090 <!ATTLIST intended_recipient.type_cd
 2091   T NMTOKEN #FIXED "CS"
 2092   V CDATA #FIXED "TRC"
 2093   V-T NMTOKEN #FIXED "ST"
 2094   V-HL7_NAME CDATA   #FIXED "code"
 2095   DN CDATA #IMPLIED
 2096   DN-T NMTOKEN #FIXED "ST"
 2097   DN-HL7_NAME CDATA #FIXED "displayName"
 2098   %common_atts;
 2099   HL7-NAME CDATA #FIXED 'type_cd'>
 2100 
 2101 <!--
 2102 ============================================================
 2103 Service Actors :: Originators
 2104 
 2105 Elements declared in this section include:
 2106 <originator>, <originator.type_cd>, <originating_organization>, <originating_organization.type_cd>, <organization>, <organization.nm>
 2107 ============================================================
 2108 -->
 2109 
 2110 <!ELEMENT originator (
 2111   originator.type_cd,
 2112   participation_tmr,
 2113   person,
 2114   local_header*)>
 2115 <!ATTLIST originator
 2116   %common_atts;
 2117   HL7-NAME CDATA #FIXED 'has_service_actor'
 2118   T CDATA #FIXED 'service_actor'>
 2119 
 2120 <!ELEMENT originator.type_cd %CS-cont.model;>
 2121 <!ATTLIST originator.type_cd
 2122   T NMTOKEN #FIXED "CS"
 2123   V CDATA #FIXED "AUT"
 2124   V-T NMTOKEN #FIXED "ST"
 2125   V-HL7_NAME CDATA   #FIXED "code"
 2126   DN CDATA #IMPLIED
 2127   DN-T NMTOKEN #FIXED "ST"
 2128   DN-HL7_NAME CDATA #FIXED "displayName"
 2129   %common_atts;
 2130   HL7-NAME CDATA #FIXED 'type_cd'>
 2131 
 2132 <!ELEMENT originating_organization (
 2133   originating_organization.type_cd,
 2134   organization,
 2135   local_header*)>
 2136 <!ATTLIST originating_organization
 2137   %common_atts;
 2138   HL7-NAME CDATA #FIXED 'has_service_actor'
 2139   T CDATA #FIXED 'service_actor'>
 2140 
 2141 <!ELEMENT originating_organization.type_cd %CS-cont.model;>
 2142 <!ATTLIST originating_organization.type_cd
 2143   T NMTOKEN #FIXED "CS"
 2144   V CDATA #FIXED "CST"
 2145   V-T NMTOKEN #FIXED "ST"
 2146   V-HL7_NAME CDATA   #FIXED "code"
 2147   DN CDATA #IMPLIED
 2148   DN-T NMTOKEN #FIXED "ST"
 2149   DN-HL7_NAME CDATA #FIXED "displayName"
 2150   %common_atts;
 2151   HL7-NAME CDATA #FIXED 'type_cd'>
 2152 
 2153 <!ELEMENT organization (
 2154   id*,
 2155   organization.nm*,
 2156   addr*,
 2157   local_header*)>
 2158 <!ATTLIST organization
 2159   %common_atts;
 2160   HL7-NAME CDATA #FIXED 'participation_of_organization'
 2161   T CDATA #FIXED 'organization'>
 2162 
 2163 <!ELEMENT organization.nm %ON-cont.model;>
 2164 <!ATTLIST organization.nm
 2165   %ON-attrib.list;
 2166   %common_atts;
 2167   HL7-NAME CDATA #FIXED 'nm'>
 2168 
 2169 <!--
 2170 ============================================================
 2171 Service Actors :: Transcriptionist
 2172 
 2173 Elements declared in this section include:
 2174 <transcriptionist>, <transcriptionist.type_cd>
 2175 ============================================================
 2176 -->
 2177 
 2178 <!ELEMENT transcriptionist (
 2179   transcriptionist.type_cd,
 2180   participation_tmr?,
 2181   person,
 2182   local_header*)>
 2183 <!ATTLIST transcriptionist
 2184   %common_atts;
 2185   HL7-NAME CDATA #FIXED 'has_service_actor'
 2186   T CDATA #FIXED 'service_actor'>
 2187 
 2188 <!ELEMENT transcriptionist.type_cd %CS-cont.model;>
 2189 <!ATTLIST transcriptionist.type_cd
 2190   T NMTOKEN #FIXED "CS"
 2191   V CDATA #FIXED "ENT"
 2192   V-T NMTOKEN #FIXED "ST"
 2193   V-HL7_NAME CDATA   #FIXED "code"
 2194   DN CDATA #IMPLIED
 2195   DN-T NMTOKEN #FIXED "ST"
 2196   DN-HL7_NAME CDATA #FIXED "displayName"
 2197   %common_atts;
 2198   HL7-NAME CDATA #FIXED 'type_cd'>
 2199 
 2200 <!--
 2201 ============================================================
 2202 Service Actors :: Healthcare providers
 2203 
 2204 Elements declared in this section include:
 2205 <provider>, <provider.type_cd>, <function_cd>
 2206 ============================================================
 2207 -->
 2208 
 2209 <!ELEMENT provider (
 2210   provider.type_cd,
 2211   function_cd?,
 2212   participation_tmr?,
 2213   person,
 2214   local_header*)>
 2215 <!ATTLIST provider
 2216   %common_atts;
 2217   HL7-NAME CDATA #FIXED 'has_service_actor'
 2218   T CDATA #FIXED 'service_actor'>
 2219 
 2220 <!ELEMENT provider.type_cd %CS-cont.model;>
 2221 <!ATTLIST provider.type_cd
 2222   T NMTOKEN #FIXED "CS"
 2223   V (ASS|CON|PRF) "PRF"
 2224   V-T NMTOKEN #FIXED "ST"
 2225   V-HL7_NAME CDATA   #FIXED "code"
 2226   DN CDATA #IMPLIED
 2227   DN-T NMTOKEN #FIXED "ST"
 2228   DN-HL7_NAME CDATA #FIXED "displayName"
 2229   %common_atts;
 2230   HL7-NAME CDATA #FIXED 'type_cd'>
 2231 
 2232 <!ELEMENT function_cd %CE-cont.model;>
 2233 <!ATTLIST function_cd
 2234   %CE-attrib.list;
 2235   %common_atts;
 2236   HL7-NAME CDATA #FIXED 'function_cd'>
 2237 
 2238 <!--
 2239 ============================================================
 2240 Service Actors :: Other Service Actors
 2241 
 2242 Elements declared in this section include:
 2243 <service_actor>, <service_actor.type_cd>
 2244 ============================================================
 2245 -->
 2246 
 2247 <!ELEMENT service_actor (
 2248   service_actor.type_cd,
 2249   participation_tmr?,
 2250   signature_cd?,
 2251   (person | organization),
 2252   local_header*)>
 2253 <!ATTLIST service_actor
 2254   %common_atts;
 2255   HL7-NAME CDATA #FIXED 'has_service_actor'
 2256   T CDATA #FIXED 'service_actor'>
 2257 
 2258 <!ELEMENT service_actor.type_cd %CE-cont.model;>
 2259 <!ATTLIST service_actor.type_cd
 2260   %CE-attrib.list;
 2261   %common_atts;
 2262   HL7-NAME CDATA #FIXED 'type_cd'>
 2263 
 2264 <!--
 2265 ============================================================
 2266 ============================================================
 2267 Service Targets
 2268 
 2269 Service targets include the patient, other significant participants (such as family members), and those devices that may have originated portions of the document.
 2270 ============================================================
 2271 ============================================================
 2272 -->
 2273 
 2274 <!--
 2275 ============================================================
 2276 Service Targets :: Patient
 2277 
 2278 Elements declared in this section include:
 2279 <patient>, <patient.type_cd>, <assigned_identifier>, <is_known_by>, <birth_dttm>, <administrative_gender_cd>
 2280 ============================================================
 2281 -->
 2282 
 2283 <!ELEMENT patient (
 2284   patient.type_cd,
 2285   participation_tmr?,
 2286   person,
 2287   is_known_by*,
 2288   birth_dttm?,
 2289   administrative_gender_cd?,
 2290   local_header*)>
 2291 <!ATTLIST patient
 2292   %common_atts;
 2293   HL7-NAME CDATA #FIXED 'has_service_target'
 2294   T CDATA #FIXED 'service_target'>
 2295 
 2296 <!ELEMENT patient.type_cd %CS-cont.model;>
 2297 <!ATTLIST patient.type_cd
 2298   T NMTOKEN #FIXED "CS"
 2299   V (PAT|PATSBJ) "PATSBJ"
 2300   V-T NMTOKEN #FIXED "ST"
 2301   V-HL7_NAME CDATA   #FIXED "code"
 2302   DN CDATA #IMPLIED
 2303   DN-T NMTOKEN #FIXED "ST"
 2304   DN-HL7_NAME CDATA #FIXED "displayName"
 2305   %common_atts;
 2306   HL7-NAME CDATA #FIXED 'type_cd'>
 2307 
 2308 <!ELEMENT is_known_by (
 2309   id+,
 2310   is_known_to,
 2311   local_header*)>
 2312 <!ATTLIST is_known_by
 2313   %common_atts;
 2314   HL7-NAME CDATA #FIXED 'is_known_by'
 2315   T CDATA #FIXED 'person_provider_association'>
 2316 
 2317 <!ELEMENT is_known_to (
 2318   id+,
 2319   local_header*)>
 2320 <!ATTLIST is_known_to
 2321   %common_atts;
 2322   HL7-NAME CDATA #FIXED 'is_known_to'
 2323   T CDATA #FIXED 'healthcare_service_provider'>
 2324 
 2325 <!ELEMENT birth_dttm %TS-cont.model;>
 2326 <!ATTLIST birth_dttm
 2327   %TS-attrib.list;
 2328   %common_atts;
 2329   HL7-NAME CDATA #FIXED 'birth_dttm'>
 2330 
 2331 <!ELEMENT administrative_gender_cd %CE-cont.model;>
 2332 <!ATTLIST administrative_gender_cd
 2333   %CE-attrib.list;
 2334   %common_atts;
 2335   HL7-NAME CDATA #FIXED 'administrative_gender_cd'>
 2336 
 2337 <!--
 2338 ============================================================
 2339 Service Targets :: Originating Device
 2340 
 2341 Elements declared in this section include:
 2342 <originating_device>, <originating_device.type_cd>, <device>, <responsibility>, <responsibility.type_cd>, <responsibility_tmr>
 2343 ============================================================
 2344 -->
 2345 
 2346 <!ELEMENT originating_device (
 2347   originating_device.type_cd,
 2348   participation_tmr?,
 2349   device,
 2350   local_header*)>
 2351 <!ATTLIST originating_device
 2352   %common_atts;
 2353   HL7-NAME CDATA #FIXED 'has_service_target'
 2354   T CDATA #FIXED 'service_target'>
 2355 
 2356 <!ELEMENT originating_device.type_cd %CS-cont.model;>
 2357 <!ATTLIST originating_device.type_cd
 2358   T NMTOKEN #FIXED "CS"
 2359   V CDATA #FIXED "ODV"
 2360   V-T NMTOKEN #FIXED "ST"
 2361   V-HL7_NAME CDATA   #FIXED "code"
 2362   DN CDATA #IMPLIED
 2363   DN-T NMTOKEN #FIXED "ST"
 2364   DN-HL7_NAME CDATA #FIXED "displayName"
 2365   %common_atts;
 2366   HL7-NAME CDATA #FIXED 'type_cd'>
 2367 
 2368 <!ELEMENT device (
 2369   id+,
 2370   responsibility*,
 2371   local_header*)>
 2372 <!ATTLIST device
 2373   %common_atts;
 2374   HL7-NAME CDATA #FIXED 'participation_of_material'
 2375   T CDATA #FIXED 'device'>
 2376 
 2377 <!ELEMENT responsibility (
 2378   responsibility.type_cd?,
 2379   responsibility_tmr?,
 2380   person,
 2381   local_header*)>
 2382 <!ATTLIST responsibility
 2383   %common_atts;
 2384   HL7-NAME CDATA #FIXED 'is_the_responsibility'
 2385   T CDATA #FIXED 'responsibility'>
 2386 
 2387 <!ELEMENT responsibility.type_cd %CE-cont.model;>
 2388 <!ATTLIST responsibility.type_cd
 2389   %CE-attrib.list;
 2390   %common_atts;
 2391   HL7-NAME CDATA #FIXED 'type_cd'>
 2392 
 2393 <!ELEMENT responsibility_tmr %IVL_TS-cont.model;>
 2394 <!ATTLIST responsibility_tmr
 2395   %IVL_TS-attrib.list;
 2396   %common_atts;
 2397   HL7-NAME CDATA #FIXED 'tmr'>
 2398 
 2399 <!--
 2400 ============================================================
 2401 Service Targets :: Other Service Targets
 2402 
 2403 Elements declared in this section include:
 2404 <service_target>, <service_target.type_cd>
 2405 ============================================================
 2406 -->
 2407 
 2408 <!ELEMENT service_target (
 2409   service_target.type_cd,
 2410   participation_tmr?,
 2411   person,
 2412   local_header*)>
 2413 <!ATTLIST service_target
 2414   %common_atts;
 2415   HL7-NAME CDATA #FIXED 'has_service_target'
 2416   T CDATA #FIXED 'service_target'>
 2417 
 2418 <!ELEMENT service_target.type_cd %CE-cont.model;>
 2419 <!ATTLIST service_target.type_cd
 2420   %CE-attrib.list;
 2421   %common_atts;
 2422   HL7-NAME CDATA #FIXED 'type_cd'>
 2423 
 2424 <!--
 2425 ============================================================
 2426 ============================================================
 2427 Local Header Information
 2428 
 2429 Locally-defined markup must be used when local semantics have no corresponding representation in the CDA specification. CDA seeks to standardize the highest level of shared meaning while providing a clean and standard mechanism for tagging meaning that is not shared. This is achieved with the CDA <local_header> element. 
 2430 
 2431 The <local_header> element is optionally repeating, and recursive. The "descriptor" attribute describes the element, and the value can be drawn from a local vocabulary domain. The "ignore" attribute tells the receiver to ignore just the <local_header> tag (ignore="markup"), or to ignore the <local_header> tag and all contained content (ignore="all"). The "render" attribute indicates how the sender would render the contents. The value can be drawn from a local vocabulary domain. The language of contained character data can be specified using the xml:lang attribute (see 3.3.2.4.1 Character data). The nested <local_attr> element is provided to make it easier to map local XML attribute values into local markup.
 2432 ============================================================
 2433 ============================================================
 2434 -->
 2435 
 2436 <!ELEMENT local_header (#PCDATA | local_header | local_attr)* >
 2437 <!ATTLIST local_header
 2438   ignore (all | markup) "markup"
 2439   descriptor CDATA #IMPLIED
 2440   render CDATA #IMPLIED
 2441   %common_atts;
 2442   xml:lang NMTOKEN #IMPLIED >
 2443 
 2444 <!ELEMENT local_attr EMPTY>
 2445 <!ATTLIST local_attr
 2446   name NMTOKEN #REQUIRED
 2447   value CDATA #REQUIRED
 2448   %common_atts;
 2449   xml:lang NMTOKEN #IMPLIED>
 2450 <!--
 2451 ============================================================
 2452 ============================================================
 2453 HL7 Clinical Document Architecture, Version 1.0
 2454 
 2455 CDA Level One DTD 
 2456 
 2457 Public Identifier :: "-//HL7//DTD CDA Level One 1.0//EN"
 2458 
 2459 DTD Last Revised: September 18, 2000
 2460 ============================================================
 2461 ============================================================
 2462 -->
 2463 
 2464 
 2465 <!--
 2466 ============================================================
 2467 ============================================================
 2468 The following system id must be changed to point to the location of the Header file on your system.
 2469 ============================================================
 2470 ============================================================
 2471 -->
 2472 
 2473 <!ENTITY % CDA-Header-1.0 PUBLIC 
 2474   "-//HL7//DTD CDA Header 1.0//EN" 
 2475   "header_1.0.dtd" >
 2476 %CDA-Header-1.0;
 2477 
 2478 
 2479 <!--
 2480 ============================================================
 2481 ============================================================
 2482 Shared XML attributes 
 2483 
 2484 XML element identification
 2485 Every XML element within a CDA document has an optional identifier, which must be unique within the document. (See 3.2.2.1.1 XML element identification). (This attribute is declared in the CDA Header DTD.)
 2486 
 2487 Confidentiality
 2488 The confidentiality attribute can occur on any element within the CDA body. The CDA Header contains an optionally repeating element <confidentiality_cd> (see 3.2.2.2.3 Document confidentiality). The confidentiality attribute on CDA Body elements can reference one or more of the confidentiality values in the CDA Header using XML IDREFS. The value(s) referenced must be XML ID(s) in the <confidentiality_cd> element of the CDA Header. Confidentiality is inherited by nested content, unless overridden.
 2489 
 2490 Originators
 2491 The originator attribute can occur on any element within the CDA body. The CDA Header contains optionally repeating elements <originator> (see 3.2.2.4.4.1 Originating person) and <originating_device> (see 3.2.2.5.2 Originating device). The originator attribute on an element within the CDA Body can reference one or more of these values using XML IDREFS. The value(s) referenced must be XML ID(s) in the <originator> or <originating_device> element of the CDA Header. Origination is inherited by nested content, unless overridden.
 2492 ============================================================
 2493 ============================================================
 2494 -->
 2495 
 2496 <!ENTITY % body_atts  "
 2497   %common_atts;
 2498   originator IDREFS #IMPLIED
 2499   confidentiality IDREFS #IMPLIED
 2500   xml:lang NMTOKEN #IMPLIED
 2501 ">
 2502 
 2503 <!ENTITY % entries "#PCDATA | content | link | coded_entry | observation_media | local_markup">
 2504 
 2505 <!ENTITY % structures "paragraph | list | table">
 2506 
 2507 
 2508 <!--
 2509 ============================================================
 2510 ============================================================
 2511 Level One Root
 2512 
 2513 The CDA element <levelone> is the root element of a CDA Level One document. The <levelone> element contains a <clinical_document_header> and a <body>. The <clinical_document_header> is derived from the RIM (see 3.2 CDA Header). The <body> is comprised of either <section> elements, or a <non_xml> element, which is used when the document body is in some format other then XML. A CDA <section> can contain "structures", nested <section> elements, and <coded_entry> elements. CDA structures include the <paragraph>, <list>, and <table> elements. These structures contain CDA "entries", which include the <content>, <link>, <coded_entry>, <observation_media>, and <local_markup> elements, in addition to plain character data.
 2514 ============================================================
 2515 ============================================================
 2516 -->
 2517 
 2518 <!ELEMENT levelone (clinical_document_header, body) >
 2519 <!ATTLIST levelone
 2520   %body_atts;
 2521 >
 2522 
 2523 
 2524 <!--
 2525 ============================================================
 2526 ============================================================
 2527 Document body and sections
 2528 
 2529 The CDA <body> occurs in the <levelone> element. All CDA documents have exactly one <body>. The <body> contains either one or more <section> elements (see 3.3.2.2.2 Document sections) or a single non_xml data segment (see 3.3.2.2.3 Non_xml body).
 2530 
 2531 The CDA <section> is a container used to wrap other containers. A <section> can occur in the <body>, or can be nested within another <section>. A <section> has an optional <caption> (see 3.3.2.2.2.1 Captions), followed by nested <section> elements or structures (see 3.3.2.3 Document Structures), followed by optionally repeating <coded_entry> elements (see 3.3.2.4.4 Coded entries).
 2532 
 2533 The CDA <non_xml> container represents a document body that is in some format other than XML. CDA's <non_xml> is an encoded data type (ED), which is used only to reference data that is stored externally to the CDA Level One document.
 2534 ============================================================
 2535 ============================================================
 2536 -->
 2537 
 2538 <!ELEMENT body (section+ | non_xml) >
 2539 <!ATTLIST body 
 2540   %body_atts;
 2541 >
 2542 
 2543 <!ELEMENT section (caption?,(%structures; | section)*, coded_entry*)>
 2544 <!ATTLIST section
 2545   %body_atts;
 2546 >
 2547 
 2548 <!ELEMENT non_xml %ED-cont.model;>
 2549 <!ATTLIST non_xml
 2550   %common_atts;
 2551   originator IDREFS #IMPLIED
 2552   confidentiality IDREFS #IMPLIED
 2553   %ED-attrib.list;
 2554 >
 2555 
 2556 
 2557 <!--
 2558 ============================================================
 2559 ============================================================
 2560 Entries: 
 2561 content, link, coded_entry, observation_media, local_markup
 2562 
 2563 ============================================================
 2564 ============================================================
 2565 -->
 2566 
 2567 <!--
 2568 ============================================================
 2569 content
 2570 
 2571 CDA <content> occurs in <local_markup>, table cells (<td>), <paragraph>, <item>, and nested within <content>. The <content> element contains zero or more entries (see 3.3.2.4 Document Entries). 
 2572 
 2573 The <content> element can nest recursively, which enables wrapping a string of plain text down to as small a chunk as desired. These <content> elements can serve as anchors, and <coded_entry.value> elements can reference these anchors to indicate the original text that supports the use of a coded entry. (See 3.3.2.4.4 Coded entries for more detail.)
 2574 ============================================================
 2575 -->
 2576 
 2577 <!ELEMENT content (%entries;)*>
 2578 <!ATTLIST content
 2579   %body_atts;
 2580 >
 2581 
 2582 
 2583 <!--
 2584 ============================================================
 2585 link
 2586 
 2587 The CDA <link> is a generic referencing mechanism and occurs within <content>, <local_markup>, table cells (<td>), or <caption>. A <link> contains a single required <link_html> element.
 2588 
 2589 The CDA <link_html> can only occur within a <link>. Each <link_html> has an optional local identifier (see 3.3.2.1.1 XML element identification), an optional set of confidentiality status flags (see 3.3.2.1.2 Confidentiality), and an optional set of originators (see 3.3.2.1.3 Originators). The human language of contained character data can be specified using the xml:lang attribute (see 3.3.2.1.4 Language).
 2590 
 2591 The CDA link mechanism is based on the HTML anchor tag. Several groups (see 5.4 References) are actively developing formal link specifications. When a suitable open standard is available and implemented, it will be reviewed with the intent to incorporate it into the CDA Level One specification.
 2592 
 2593 Multimedia that is integral to a document, and part of the attestable content of the document requires the use of <observation_media> (see 3.3.2.4.5 Observation media). Multimedia that is simply referenced by the document and not an integral part of the document should use <link>.
 2594 ============================================================
 2595 -->
 2596 
 2597 <!ELEMENT link (link_html) >
 2598 <!ATTLIST link
 2599   %body_atts;
 2600 >
 2601 
 2602 <!ELEMENT link_html (#PCDATA) >
 2603 <!ATTLIST link_html
 2604   name    CDATA   #IMPLIED    
 2605   href    CDATA   #IMPLIED   
 2606   rel     CDATA   #IMPLIED 
 2607   rev     CDATA   #IMPLIED  
 2608   title   CDATA   #IMPLIED  
 2609   %body_atts;
 2610 >
 2611 
 2612 
 2613 <!--
 2614 ============================================================
 2615 coded_entry
 2616 
 2617 The CDA element <coded_entry> inserts codes from HL7-recognized coding schemes into CDA documents. Where there are no suitable HL7-recognized codes available, locally-defined codes can be used. The use of <coded_entry> in CDA Level One is unrestricted, and the primary intent of <coded_entry> is to facilitate document indexing, search and retrieval, and to provide a standard convention for insertion of locally-meaningful codes.
 2618 
 2619 The <coded_entry.value> element can explicitly reference the original text within the document that supports the use of the code.
 2620 ============================================================
 2621 -->
 2622 
 2623 <!ELEMENT coded_entry (coded_entry.id?, coded_entry.value, local_markup*)>
 2624 <!ATTLIST coded_entry 
 2625   %body_atts;>
 2626 
 2627 <!ELEMENT coded_entry.id %II-cont.model;>
 2628 <!ATTLIST coded_entry.id
 2629   %common_atts;
 2630   %II-attrib.list; >
 2631 
 2632 <!ELEMENT coded_entry.value %CD-cont.model;>
 2633 <!ATTLIST coded_entry.value
 2634   %CD-attrib.list;
 2635   %common_atts;>
 2636 
 2637 <!--
 2638 ============================================================
 2639 observation_media
 2640 
 2641 The <observation_media> element represents media that is logically a part of a CDA document, but is stored outside the document and incorporated by reference. Multimedia that is integral to a document, and part of the attestable content of the document, requires the use of <observation_media>. Multimedia that is simply referenced by the document and not an integral part of the document should use <link> (see 3.3.2.4.3 Links). Note that CDA's <observation_media> is used only to reference data that is stored externally.
 2642 
 2643 The CDA does not take advantage of ED's ability to Base64 encode images and other observation media and include them directly in a document instance file. Several groups (see 5.4 References) are actively developing formal specifications for packaging binary data within XML documents. When a suitable open standard for direct incorporation of binary data is available and implemented, it will be incorporated into the CDA Level One specification.
 2644 ============================================================
 2645 -->
 2646 
 2647 <!ELEMENT observation_media (observation_media.id?, observation_media.value, local_markup*)>
 2648 <!ATTLIST observation_media 
 2649   %body_atts;
 2650   HL7-NAME CDATA #FIXED 'observation'
 2651   T CDATA #FIXED 'observation'>
 2652 
 2653 <!ELEMENT observation_media.id %II-cont.model;>
 2654 <!ATTLIST observation_media.id
 2655   %common_atts;
 2656   %II-attrib.list;
 2657   HL7-NAME CDATA #FIXED 'id'>
 2658 
 2659 <!ELEMENT observation_media.value %ED-cont.model;>
 2660 <!ATTLIST observation_media.value
 2661   %common_atts;
 2662   %ED-attrib.list;
 2663   HL7-NAME CDATA #FIXED 'value'>
 2664 
 2665 
 2666 <!--
 2667 ============================================================
 2668 local_markup
 2669 
 2670 The implementation of localization in the CDA Level One Body using the <local_markup> element parallels the implementation described for the CDA Header (see 3.2.2.6 Localization).
 2671 
 2672 The descriptor attribute describes the element, and the value can be drawn from a local vocabulary domain. The ignore attribute tells the receiver to ignore just the <local_markup> tag (ignore="markup"), or to ignore the <local_markup> tag and all contained content (ignore="all"). The render attribute indicates how the sender would render the contents. The value can be drawn from a local vocabulary domain. The nested <local_attr> element makes it easier to map local XML attribute values into the CDA.
 2673 ============================================================
 2674 -->
 2675 
 2676 <!ELEMENT local_markup (%entries; | local_attr)* >
 2677 <!ATTLIST local_markup
 2678   ignore (all | markup) "markup"
 2679   descriptor CDATA #IMPLIED
 2680   render CDATA #IMPLIED
 2681   %body_atts;
 2682 >
 2683 
 2684 
 2685 <!--
 2686 ============================================================
 2687 ============================================================
 2688 Structures:
 2689 paragraph, list, table
 2690 
 2691 ============================================================
 2692 ============================================================
 2693 -->
 2694 
 2695 <!--
 2696 ============================================================
 2697 paragraph
 2698 
 2699 The CDA <paragraph> can occur in a <section>, <item>, or table cell (<td>). A <paragraph> has an optional <caption> (see 3.3.2.2.2.1 Captions), followed by zero or more <content> elements (see 3.3.2.4.2 Content).
 2700 ============================================================
 2701 -->
 2702 
 2703 <!ELEMENT paragraph (caption?, content*) >
 2704 <!ATTLIST paragraph
 2705   %body_atts;
 2706 >
 2707 
 2708 
 2709 <!--
 2710 ============================================================
 2711 list and item
 2712 
 2713 The CDA <list> can occur in a <section>, <item>, or table cell (<td>). A <list> has an optional <caption> (see 3.3.2.2.2.1 Captions), and contains one or more <item> elements. The list_type attribute specifies whether the <list> is ordered or unordered (with unordered being the default). Use an ordered list when the ordering of list items is meaningful.
 2714 
 2715 The CDA <item> only occurs within a <list>. An <item> has an optional <caption> (see 3.3.2.2.2.1 Captions), and may contain <content> (see 3.3.2.4.2 Content) and nested structures (see 3.3.2.3 Document Structures).
 2716 ============================================================
 2717 -->
 2718 
 2719 <!ELEMENT list (caption?, item+)>
 2720 <!ATTLIST list 
 2721   %body_atts;
 2722   list_type (ordered | unordered) "unordered" 
 2723 >
 2724 
 2725 <!ELEMENT item (caption?, (content | %structures;)*)>
 2726 <!ATTLIST item
 2727   %body_atts;
 2728 >
 2729 
 2730 
 2731 <!-- 
 2732 ============================================================
 2733 table
 2734 
 2735 In CDA Level One, any information can be presented as a table. The table markup is for presentation purposes only and, unlike a database table, does not possess meaningful field names. The CDA <table> can occur in a <section> or <item>. A <table> has an optional <caption> (see 3.3.2.2.2.1 Captions).
 2736 
 2737 CDA modifies the strict XHTML table model (see 5.4 References and Appendix 5.3.1 Tables) by removing formatting tags and by setting the content model of cells to be similar to the contents of other CDA containers. The <th> element is modeled analogously to the <caption> element (see 3.3.2.2.2.1 Captions), and like the <caption> element, the <caption_cd> is optional and non-repeatable, and must occur first.
 2738 
 2739 Changes to the strict XHTML table model in CDA include:
 2740 
 2741 Change this:
 2742   <!ELEMENT caption  %Inline;>
 2743 To this:
 2744   <!ELEMENT caption (#PCDATA | link | caption_cd)*>
 2745 
 2746 Change these XML attributes:
 2747   %attrs;
 2748 To these:
 2749   ID ID #IMPLIED
 2750   confidentiality IDREFS #IMPLIED
 2751   originator IDREFS #IMPLIED
 2752   xml:lang NMTOKEN #IMPLIED
 2753 
 2754 Change this:
 2755   <!ELEMENT td %Flow;>
 2756 to this:
 2757   <!ELEMENT td (#PCDATA | content | link | coded_entry | observation_media | paragraph | list | local_markup)*>
 2758 
 2759 change this:
 2760   <!ELEMENT th %Flow;>
 2761 to this:
 2762   <!ELEMENT th (#PCDATA | link | caption_cd)*>
 2763 ============================================================
 2764 -->
 2765 
 2766 <!--===== XHTML entities used in the XHTML table model ===========-->
 2767 
 2768 <!ENTITY % Character "CDATA">
 2769     <!-- a single character from [ISO10646] -->
 2770 
 2771 <!ENTITY % Length "CDATA">
 2772     <!-- nn for pixels or nn% for percentage length -->
 2773 
 2774 <!ENTITY % MultiLength "CDATA">
 2775     <!-- pixel, percentage, or relative -->
 2776 
 2777 <!ENTITY % Number "CDATA">
 2778     <!-- one or more digits -->
 2779 
 2780 <!ENTITY % Pixels "CDATA">
 2781     <!-- integer representing length in pixels -->
 2782 
 2783 <!ENTITY % Text "CDATA">
 2784 
 2785 <!--======================= Tables =======================================-->
 2786 
 2787 <!-- Derived from IETF HTML table standard, see [RFC1942] -->
 2788 
 2789 <!--
 2790  The border attribute sets the thickness of the frame around the
 2791  table. The default units are screen pixels.
 2792 
 2793  The frame attribute specifies which parts of the frame around
 2794  the table should be rendered. The values are not the same as
 2795  CALS to avoid a name clash with the valign attribute.
 2796 -->
 2797 <!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
 2798 
 2799 <!--
 2800  The rules attribute defines which rules to draw between cells:
 2801 
 2802  If rules is absent then assume:
 2803      "none" if border is absent or border="0" otherwise "all"
 2804 -->
 2805 
 2806 <!ENTITY % TRules "(none | groups | rows | cols | all)">
 2807   
 2808 <!-- horizontal alignment attributes for cell contents
 2809 
 2810   char        alignment char, e.g. char=':'
 2811   charoff     offset for alignment char
 2812 -->
 2813 <!ENTITY % cellhalign
 2814   "align      (left|center|right|justify|char) #IMPLIED
 2815    char       %Character;    #IMPLIED
 2816    charoff    %Length;       #IMPLIED"
 2817   >
 2818 
 2819 <!-- vertical alignment attributes for cell contents -->
 2820 <!ENTITY % cellvalign
 2821   "valign     (top|middle|bottom|baseline) #IMPLIED"
 2822   >
 2823 
 2824 <!ELEMENT table
 2825      (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
 2826 <!ELEMENT caption (#PCDATA | link | caption_cd)*>
 2827 <!ELEMENT caption_cd %CE-cont.model;>
 2828 <!ELEMENT thead    (tr)+>
 2829 <!ELEMENT tfoot    (tr)+>
 2830 <!ELEMENT tbody    (tr)+>
 2831 <!ELEMENT colgroup (col)*>
 2832 <!ELEMENT col      EMPTY>
 2833 <!ELEMENT tr       (th|td)+>
 2834 <!ELEMENT th       (#PCDATA | link | caption_cd)*>
 2835 <!ELEMENT td       (%entries; | paragraph | list)*>
 2836 
 2837 <!ATTLIST table
 2838   %body_atts;
 2839   summary     %Text;         #IMPLIED
 2840   width       %Length;       #IMPLIED
 2841   border      %Pixels;       #IMPLIED
 2842   frame       %TFrame;       #IMPLIED
 2843   rules       %TRules;       #IMPLIED
 2844   cellspacing %Length;       #IMPLIED
 2845   cellpadding %Length;       #IMPLIED
 2846   >
 2847 
 2848 <!ATTLIST caption
 2849   %body_atts;
 2850 >
 2851 
 2852 <!ATTLIST caption_cd
 2853   %body_atts;
 2854   %CE-attrib.list;
 2855 >
 2856 
 2857 <!--
 2858 colgroup groups a set of col elements. It allows you to group
 2859 several semantically related columns together.
 2860 -->
 2861 <!ATTLIST colgroup
 2862   %body_atts;
 2863   span        %Number;       "1"
 2864   width       %MultiLength;  #IMPLIED
 2865   %cellhalign;
 2866   %cellvalign;
 2867   >
 2868 
 2869 <!--
 2870  col elements define the alignment properties for cells in
 2871  one or more columns.
 2872 
 2873  The width attribute specifies the width of the columns, e.g.
 2874 
 2875      width=64        width in screen pixels
 2876      width=0.5*      relative width of 0.5
 2877 
 2878  The span attribute causes the attributes of one
 2879  col element to apply to more than one column.
 2880 -->
 2881 <!ATTLIST col
 2882   %body_atts;
 2883   span        %Number;       "1"
 2884   width       %MultiLength;  #IMPLIED
 2885   %cellhalign;
 2886   %cellvalign;
 2887   >
 2888 
 2889 <!--
 2890     Use thead to duplicate headers when breaking table
 2891     across page boundaries, or for static headers when
 2892     tbody sections are rendered in scrolling panel.
 2893 
 2894     Use tfoot to duplicate footers when breaking table
 2895     across page boundaries, or for static footers when
 2896     tbody sections are rendered in scrolling panel.
 2897 
 2898     Use multiple tbody sections when rules are needed
 2899     between groups of table rows.
 2900 -->
 2901 <!ATTLIST thead
 2902   %body_atts;
 2903   %cellhalign;
 2904   %cellvalign;
 2905   >
 2906 
 2907 <!ATTLIST tfoot
 2908   %body_atts;
 2909   %cellhalign;
 2910   %cellvalign;
 2911   >
 2912 
 2913 <!ATTLIST tbody
 2914   %body_atts;
 2915   %cellhalign;
 2916   %cellvalign;
 2917   >
 2918 
 2919 <!ATTLIST tr
 2920   %body_atts;
 2921   %cellhalign;
 2922   %cellvalign;
 2923 >
 2924 
 2925 <!-- Scope is simpler than headers attribute for common tables -->
 2926 <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
 2927 
 2928 <!-- th is for headers, td for data and for cells acting as both -->
 2929 
 2930 <!ATTLIST th
 2931   %body_atts;
 2932   abbr        %Text;         #IMPLIED
 2933   axis        CDATA          #IMPLIED
 2934   headers     IDREFS         #IMPLIED
 2935   scope       %Scope;        #IMPLIED
 2936   rowspan     %Number;       "1"
 2937   colspan     %Number;       "1"
 2938   %cellhalign;
 2939   %cellvalign;
 2940  >
 2941 
 2942 <!ATTLIST td
 2943   %body_atts;
 2944   abbr        %Text;         #IMPLIED
 2945   axis        CDATA          #IMPLIED
 2946   headers     IDREFS         #IMPLIED
 2947   scope       %Scope;        #IMPLIED
 2948   rowspan     %Number;       "1"
 2949   colspan     %Number;       "1"
 2950   %cellhalign;
 2951   %cellvalign;
 2952   >