Changes between Version 1 and Version 2 of Support Information Model


Ignore:
Timestamp:
Aug 18, 2008, 11:56:51 PM (16 years ago)
Author:
KOBAYASHI, Shinji
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Support Information Model

    v1 v2  
    11----
    2 
    3  * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15382 Copyright Notice]
    4  * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 Amendment Record]
    5  * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15625 Table of Contents]
    6  * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15939 1 Introduction]
    7    * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15941 1.1 Purpose]
    8    * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15957 1.2 Related Documents]
    9    * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15967 1.3 Status]
    10    * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15979 1.4 Peer review]
    11    * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15987 1.5 Conformance]
    12  * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16016 2 Support Package]
    13    * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16019 2.1 Overview]
    14    * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16043 2.2 Class Definitions]
    15      * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16043 2.2.1 EXTERNAL_ENVIRONMENT_ACCESS Class]
    16  * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16093 3 Assumed Types]
    17    * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16095 3.1 Overview]
    18    * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16135 3.2 Inbuilt Primitive Types]
    19      * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16208 3.2.1 Any Type]
    20      * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16239 3.2.2 Ordered Type]
    21      * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16261 3.2.3 Numeric Type]
    22      * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16309 3.2.4 Ordered_numeric Type]
    23      * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16327 3.2.5 Boolean Type]
    24      * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16404 3.2.6 Real Type]
    25    * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16425 3.3 Assumed Library Types]
    26      * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16488 3.3.1 String Type]
    27        * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16522 3.3.1.1 UNICODE]
     2 * [wiki:"Support Information Model Copyright Notice" Copyright Notice]
     3 * [wiki:"Support Information Model Amendment Record" Amendment Record]
     4 * [wiki:"Support Information Model Table of Contents" Table of Contents]
     5 * [wiki:"Support Information Model 1 Introduction" 1 Introduction]
     6   * [wiki:"Support Information Model 1.1 Purpose" 1.1 Purpose]
     7   * [wiki:"Support Information Model 1.2 Related Documents" 1.2 Related Documents]
     8   * [wiki:"Support Information Model 1.3 Status" 1.3 Status]
     9   * [wiki:"Support Information Model 1.4 Peer review" 1.4 Peer review]
     10   * [wiki:"Support Information Model 1.5 Conformance" 1.5 Conformance]
     11 * [wiki:"Support Information Model 2 Support Package" 2 Support Package]
     12   * [wiki:"Support Information Model 2.1 Overview" 2.1 Overview]
     13   * [wiki:"Support Information Model 2.2 Class Definitions" 2.2 Class Definitions]
     14     * [wiki:"Support Information Model 2.2.1 EXTERNAL_ENVIRONMENT_ACCESS Class" 2.2.1 EXTERNAL_ENVIRONMENT_ACCESS Class]
     15 * [wiki:"Support Information Model 3 Assumed Types" 3 Assumed Types]
     16   * [wiki:"Support Information Model 3.1 Overview" 3.1 Overview]
     17   * [wiki:"Support Information Model 3.2 Inbuilt Primitive Types" 3.2 Inbuilt Primitive Types]
     18     * [wiki:"Support Information Model 3.2.1 Any Type" 3.2.1 Any Type]
     19     * [wiki:"Support Information Model 3.2.2 Ordered Type" 3.2.2 Ordered Type]
     20     * [wiki:"Support Information Model 3.2.3 Numeric Type" 3.2.3 Numeric Type]
     21     * [wiki:"Support Information Model 3.2.4 Ordered_numeric Type" 3.2.4 Ordered_numeric Type]
     22     * [wiki:"Support Information Model 3.2.5 Boolean Type" 3.2.5 Boolean Type]
     23     * [wiki:"Support Information Model 3.2.6 Real Type" 3.2.6 Real Type]
     24   * [wiki:"Support Information Model 3.3 Assumed Library Types" 3.3 Assumed Library Types]
     25     * [wiki:"Support Information Model 3.3.1 String Type" 3.3.1 String Type]
     26       * [wiki:"Support Information Model 3.3.1.1 UNICODE" 3.3.1.1 UNICODE]
    2827     * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16525 3.3.2 Aggregate Type]
    2928     * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16563 3.3.3 List Type]
     
    9897   * [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19406 A.1 General]
    9998
    100 
    101 ||Editors: {T Beale, S Heard}a, {D Kalra, D Lloyd}b ||
     99||Editors: {T Beale, S Heard}a, {D Kalra, D Lloyd}b||
    102100||[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15442 Revision: 1.6.0]||[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Pages: 67]||[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 Date of issue: 08 Apr 2007]||
    103101
    104 
    105  a.::  Ocean Informatics
    106  b.::  Centre for Health Informatics and Multi-professional Education, University College London
    107 
    108 Keywords: EHR, openehr, reference model
    109 
    110 
    111 ||EHR Extract ||||
    112 ||EHR ||Demographic ||Integration ||Template OM ||
    113 ||Composition ||openEHR Archetype Profile ||
    114 ||Security ||Common ||Archetype OM ||||ADL ||
     102 a.:: Ocean Informatics
     103 b.:: Centre for Health Informatics and Multi-professional Education, University College London
     104
     105Keywords: EHR, openehr, reference model
     106
     107||EHR Extract||||
     108||EHR||Demographic||Integration||Template OM||
     109||Composition||openEHR Archetype Profile||
     110||Security||Common||Archetype OM||||ADL||
    115111||||
    116 ||Data Structures ||
    117 ||Data Types ||
    118 ||Support ||
    119 
    120 ===== © 2003-2007 The openEHR Foundation.  =====
    121 The openEHR Foundation is an independent, non-profit community, facilitating the sharing of health records by consumers and clinicians via open-source, standards-based implementations
    122 
    123 
    124 ||Founding ||David Ingram, Professor of Health Informatics, ||
    125 ||Chairman ||CHIME, University College London ||
    126 ||Founding ||Dr P Schloeffel, Dr S Heard, Dr D Kalra, D Lloyd, T Beale ||
    127 ||Members ||||
     112||Data Structures||
     113||Data Types||
     114||Support||
     115
     116===== © 2003-2007 The openEHR Foundation. =====
     117The openEHR Foundation is an independent, non-profit community, facilitating the sharing of health records by consumers and clinicians via open-source, standards-based implementations
     118
     119||Founding||David Ingram, Professor of Health Informatics,||
     120||Chairman||CHIME, University College London||
     121||Founding||Dr P Schloeffel, Dr S Heard, Dr D Kalra, D Lloyd, T Beale||
     122||Members||||
    128123||||[http://www.openehr.org/ email: info@openEHR.org web: http://www.openEHR.org]||
    129124
     
    132127Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15318 1.6.0]
    133128
    134 ==== Copyright Notice  ==== #LinkTarget_15382
    135 © Copyright openEHR Foundation 2001 - 2007  All Rights Reserved 
    136 
    137 
    138  1. This document is protected by copyright and/or database right throughout the world and is owned by the openEHR Foundation.
    139  1. You may read and print the document for private, non-commercial use.
    140  1. You may use this document (in whole or in part) for the purposes of making presentations and education, so long as such purposes are non-commercial and are designed to comment on, further the goals of, or inform third parties about, openEHR.
    141  1. You must not alter, modify, add to or delete anything from the document you use (except as is permitted in paragraphs 2 and 3 above).
    142  1. You shall, in any use of this document, include an acknowledgement in the form: "© Copyright openEHR Foundation 2001-2007. All rights reserved. www.openEHR.org"
    143  1. This document is being provided as a service to the academic community and on a non-commercial basis. Accordingly, to the fullest extent permitted under applicable law, the openEHR Foundation accepts no liability and offers no warranties in relation to the materials and documentation and their content.
    144  1. If you wish to commercialise, license, sell, distribute, use or otherwise copy the materials and documents on this site other than as provided for in paragraphs 1 to 6 above, you must comply with the terms and conditions of the openEHR Free Commercial Use Licence, or enter into a separate written agreement with openEHR Foundation covering such activities. The terms and conditions of the openEHR Free Commercial Use Licence can be found at !http://www.openehr.org/free_commercial_use.htm
     129==== Copyright Notice ==== #LinkTarget_15382
     130© Copyright openEHR Foundation 2001 - 2007  All Rights Reserved
     131
     132 1. This document is protected by copyright and/or database right throughout the world and is owned by the openEHR Foundation.
     133 1. You may read and print the document for private, non-commercial use.
     134 1. You may use this document (in whole or in part) for the purposes of making presentations and education, so long as such purposes are non-commercial and are designed to comment on, further the goals of, or inform third parties about, openEHR.
     135 1. You must not alter, modify, add to or delete anything from the document you use (except as is permitted in paragraphs 2 and 3 above).
     136 1. You shall, in any use of this document, include an acknowledgement in the form: "© Copyright openEHR Foundation 2001-2007. All rights reserved. www.openEHR.org"
     137 1. This document is being provided as a service to the academic community and on a non-commercial basis. Accordingly, to the fullest extent permitted under applicable law, the openEHR Foundation accepts no liability and offers no warranties in relation to the materials and documentation and their content.
     138 1. If you wish to commercialise, license, sell, distribute, use or otherwise copy the materials and documents on this site other than as provided for in paragraphs 1 to 6 above, you must comply with the terms and conditions of the openEHR Free Commercial Use Licence, or enter into a separate written agreement with openEHR Foundation covering such activities. The terms and conditions of the openEHR Free Commercial Use Licence can be found at !http://www.openehr.org/free_commercial_use.htm
    145139
    146140Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 2 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
     
    152146Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15318 1.6.0]
    153147
    154 Amendment Record
    155 
     148Amendment Record
    156149
    157150[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15358 © 2003-2007 The openEHR Foundation.] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15376 email: info@openEHR.org web: http://www.openEHR.org]
    158151
    159 ||Issue ||Details ||Raiser ||Completed ||
    160 ||||R E L E A S E  1.0.1 ||||||
    161 ||1.6.0 ||CR-000215: Merge DV_PARTIAL_XX date/time classes and move ISO 8601 semantics to Support IM. CR-000209: Minor changes to correctly define AUTHORED_RESOURCE.current_revision. Add minimal definition for List<T> class. CR-000200: Correct Release 1.0 typographical errors. Move INTERVAL class definition to correct section. Add two invariants. Improved explanation of identifiers. CR-000202: Correct minor errors in VERSION.preceding_version_id. Added is_first function and invariant to VERSION_TREE_ID class. Added invariants for 1-based numbering CR-000203: Release 1.0 explanatory text improvements. CR-000204: Add generic id subtype of OBJECT_ID. CR-000216: Allow mixture of W, D etc in ISO8601 Duration (deviation from standard). CR-000219: Use constants instead of literals to refer to terminology in RM. CR-000220: Tighten semantics of HISTORY.period and EVENT.time. CR-000144: Add new Ratio type: DV_PROPORTION. Add Real.floor. CR-000221: Add normal status to DV_ORDERED. Add “normal statuses” code set. CR-000228: Add minor deviations from ISO 8601 to assumed date/time types. CR-000229: Minor date/time corrections. Allow 2-digit time-zones. CR-000236: Change use of Character to Octet in DV_MULTIMEDIA. CR-000239: Add common parent type of OBJECT_VERSION_ID and HIER_OBJECT_ID. CR-000243: Add template_id to ARCHETYPED class CR-000246: Correct openEHR terminology rubrics. ||T Beale Y S Lim S Heard G Grieve D Lloyd S Heard, H Frankel Y S Lim A Patterson G Grieve H Frankel S Heard R Chen A Patterson S Heard H Frankel T Beale H Frankel H Frankel G Grieve H Frankel T Beale B Verhees M Forss ||08 Apr 2007 ||
    162 ||||R E L E A S E  1.0 ||||||
    163 ||1.5 ||CR-000162. Allow party identifiers when no demographic data. Relax invariant on PARTY_REF. CR-000184. Separate out terminology from Support IM. CR-000188: Add generating_type function to ANY for use in invariants CR-000161. Support distributed versioning. Move OBJECT_ID.version to subtypes. Add OBJECT_VERSION_ID, VERSION_TREE_ID and LOCATABLE_REF types. ||S Heard H Frankel T Beale T Beale T Beale H Frankel ||06 Feb 2006 ||
    164 ||||R E L E A S E  0.96 ||||||
     152||Issue||Details||Raiser||Completed||
     153||||R E L E A S E  1.0.1||||||
     154||1.6.0||CR-000215: Merge DV_PARTIAL_XX date/time classes and move ISO 8601 semantics to Support IM. CR-000209: Minor changes to correctly define AUTHORED_RESOURCE.current_revision. Add minimal definition for List<T> class. CR-000200: Correct Release 1.0 typographical errors. Move INTERVAL class definition to correct section. Add two invariants. Improved explanation of identifiers. CR-000202: Correct minor errors in VERSION.preceding_version_id. Added is_first function and invariant to VERSION_TREE_ID class. Added invariants for 1-based numbering CR-000203: Release 1.0 explanatory text improvements. CR-000204: Add generic id subtype of OBJECT_ID. CR-000216: Allow mixture of W, D etc in ISO8601 Duration (deviation from standard). CR-000219: Use constants instead of literals to refer to terminology in RM. CR-000220: Tighten semantics of HISTORY.period and EVENT.time. CR-000144: Add new Ratio type: DV_PROPORTION. Add Real.floor. CR-000221: Add normal status to DV_ORDERED. Add “normal statuses” code set. CR-000228: Add minor deviations from ISO 8601 to assumed date/time types. CR-000229: Minor date/time corrections. Allow 2-digit time-zones. CR-000236: Change use of Character to Octet in DV_MULTIMEDIA. CR-000239: Add common parent type of OBJECT_VERSION_ID and HIER_OBJECT_ID. CR-000243: Add template_id to ARCHETYPED class CR-000246: Correct openEHR terminology rubrics.||T Beale Y S Lim S Heard G Grieve D Lloyd S Heard, H Frankel Y S Lim A Patterson G Grieve H Frankel S Heard R Chen A Patterson S Heard H Frankel T Beale H Frankel H Frankel G Grieve H Frankel T Beale B Verhees M Forss||08 Apr 2007||
     155||||R E L E A S E  1.0||||||
     156||1.5||CR-000162. Allow party identifiers when no demographic data. Relax invariant on PARTY_REF. CR-000184. Separate out terminology from Support IM. CR-000188: Add generating_type function to ANY for use in invariants CR-000161. Support distributed versioning. Move OBJECT_ID.version to subtypes. Add OBJECT_VERSION_ID, VERSION_TREE_ID and LOCATABLE_REF types.||S Heard H Frankel T Beale T Beale T Beale H Frankel||06 Feb 2006||
     157||||R E L E A S E  0.96||||||
    165158
    166159[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 3 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
     
    170163Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15318 1.6.0]
    171164
    172 
    173165[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2007 The openEHR Foundation.] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15376 email: info@openEHR.org web: http://www.openEHR.org]
    174166
    175 ||Issue ||Details ||Raiser ||Completed ||
    176 ||1.3 ||CR-000135: Minor corrections to rm.support.terminology package. CR-000145: Add class for access to external environment. CR-000137: Add definitions class to support.definition package. ||D Lloyd D Lloyd D Lloyd ||25 Jun 2005 ||
    177 ||||R E L E A S E 0.95 ||||||
    178 ||1.2.1 ||CR-000129. Fix errors in UML & specs of Identification package. Adjust invariants & postcondition of OBJECT_ID, HIER_OBJECT_ID, ARCHETYPE_ID and TERMINOLOGY_ID. Improve text to do with assumed abstract types Any and Ordered_numeric. ||D Lloyd ||25 Feb 2005 ||
    179 ||1.2 ||CR-000128. Update Support assumed types to ISO !11404:2003. CR-000107. Add support for exclusion and inclusion of Interval limits. CR-000116. Add PARTICIPATION.function vocabulary and invariant. CR-000122. Fix UML in Terminology_access classes in Support model. CR-000118. Make package names lower case. CR-000111. Move Identification Package to Support. CR-000064. Re-evaluate COMPOSITION.is_persistent attribute. Add “composition category” vocabulary. Re-ordered vocabularies alphabetically. ||T Beale A Goodchild T Beale D Lloyd T Beale DSTC D Kalra ||10 Feb 2005 ||
    180 ||||R E L E A S E  0.9 ||||||
    181 ||1.1 ||CR-000047. Improve handling of codes for structural attributes. Populated Terminology and code_set codes. ||S Heard ||11 Mar 2004 ||
    182 ||1.0 ||CR-000091. Correct anomalies in use of CODE_PHRASE and DV_CODED_TEXT. Add simple terminology service interface. CR-000095. Remove property attribute from Quantity package. Add simple measurement interface. Formally validated using ISE Eiffel 5.4. ||T Beale DSTC, S Heard ||09 Mar 2004 ||
    183 ||0.9.9 ||CR-000063. ATTESTATION should have a status attribute. ||D Kalra ||13 Feb 2004 ||
    184 ||0.9.8 ||CR-000068. Correct errors in INTERVAL class. ||T Beale ||20 Dec 2003 ||
    185 ||0.9.7 ||CR-000032. Basic numeric type assumptions need to be stated CR-000041. Visually differentiate primitive types in openEHR documents. CR-000043. Move External package to Common RM and rename to Identification (incorporates CR-000036 -Add HIER_OBJECT_ID class, make OBJECT_ID class abstract.) ||DSTC, D Lloyd, T Beale ||09 Oct 2003 ||
    186 ||0.9.6 ||CR-000013. Rename key classes. Based on CEN ENV13606. CR-000038. Remove archetype_originator from multi-axial archetype id. CR-000039. Change archetype_id section separator from ':' to '-'. ||T Beale ||18 Sep 2003 ||
    187 ||0.9.5 ||CR-000036. Add HIER_OBJECT_ID class, make OBJECT_ID class abstract. ||T Beale ||16 Aug 2003 ||
    188 ||0.9.4 ||CR-000022. Code TERM_MAPPING.purpose. ||G Grieve ||20 Jun 2003 ||
     167||Issue||Details||Raiser||Completed||
     168||1.3||CR-000135: Minor corrections to rm.support.terminology package. CR-000145: Add class for access to external environment. CR-000137: Add definitions class to support.definition package.||D Lloyd D Lloyd D Lloyd||25 Jun 2005||
     169||||R E L E A S E 0.95||||||
     170||1.2.1||CR-000129. Fix errors in UML & specs of Identification package. Adjust invariants & postcondition of OBJECT_ID, HIER_OBJECT_ID, ARCHETYPE_ID and TERMINOLOGY_ID. Improve text to do with assumed abstract types Any and Ordered_numeric.||D Lloyd||25 Feb 2005||
     171||1.2||CR-000128. Update Support assumed types to ISO !11404:2003. CR-000107. Add support for exclusion and inclusion of Interval limits. CR-000116. Add PARTICIPATION.function vocabulary and invariant. CR-000122. Fix UML in Terminology_access classes in Support model. CR-000118. Make package names lower case. CR-000111. Move Identification Package to Support. CR-000064. Re-evaluate COMPOSITION.is_persistent attribute. Add “composition category” vocabulary. Re-ordered vocabularies alphabetically.||T Beale A Goodchild T Beale D Lloyd T Beale DSTC D Kalra||10 Feb 2005||
     172||||R E L E A S E  0.9||||||
     173||1.1||CR-000047. Improve handling of codes for structural attributes. Populated Terminology and code_set codes.||S Heard||11 Mar 2004||
     174||1.0||CR-000091. Correct anomalies in use of CODE_PHRASE and DV_CODED_TEXT. Add simple terminology service interface. CR-000095. Remove property attribute from Quantity package. Add simple measurement interface. Formally validated using ISE Eiffel 5.4.||T Beale DSTC, S Heard||09 Mar 2004||
     175||0.9.9||CR-000063. ATTESTATION should have a status attribute.||D Kalra||13 Feb 2004||
     176||0.9.8||CR-000068. Correct errors in INTERVAL class.||T Beale||20 Dec 2003||
     177||0.9.7||CR-000032. Basic numeric type assumptions need to be stated CR-000041. Visually differentiate primitive types in openEHR documents. CR-000043. Move External package to Common RM and rename to Identification (incorporates CR-000036 -Add HIER_OBJECT_ID class, make OBJECT_ID class abstract.)||DSTC, D Lloyd, T Beale||09 Oct 2003||
     178||0.9.6||CR-000013. Rename key classes. Based on CEN ENV13606. CR-000038. Remove archetype_originator from multi-axial archetype id. CR-000039. Change archetype_id section separator from ':' to '-'.||T Beale||18 Sep 2003||
     179||0.9.5||CR-000036. Add HIER_OBJECT_ID class, make OBJECT_ID class abstract.||T Beale||16 Aug 2003||
     180||0.9.4||CR-000022. Code TERM_MAPPING.purpose.||G Grieve||20 Jun 2003||
    189181
    190182Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 4 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
     
    194186Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15318 1.6.0]
    195187
    196 
    197 ||Issue ||Details ||Raiser ||Completed ||
    198 ||0.9.3 ||CR-000007. Added forgotten terminologies for Subject_relationships and Provider_functions. ||T Beale ||11 Apr 2003 ||
    199 ||0.9.2 ||Detailed review by Ocean, DSTC, Grahame Grieve. Updated valid characters in OBJECT_ID.namespace. ||G Grieve ||25 Mar 2003 ||
    200 ||0.9.1 ||Added specification for BOOLEAN type. Corrected minor error in ISO 639 standard strings -now conformant to TERMINOLOGY_ID. OBJECT_ID.version_id now optional. Improved document structure. ||T Beale ||18 Mar 2003 ||
    201 ||0.9 ||Initial Writing. Taken from Data types and Common Reference Models. Formally validated using ISE Eiffel 5.2. ||T Beale ||25 Feb 2003 ||
    202 
    203 ==== Acknowledgements  ====
    204 The work reported in this paper has been funded in  by a number of organisations, including The University College, London and Ocean Informatics, Australia.
     188||Issue||Details||Raiser||Completed||
     189||0.9.3||CR-000007. Added forgotten terminologies for Subject_relationships and Provider_functions.||T Beale||11 Apr 2003||
     190||0.9.2||Detailed review by Ocean, DSTC, Grahame Grieve. Updated valid characters in OBJECT_ID.namespace.||G Grieve||25 Mar 2003||
     191||0.9.1||Added specification for BOOLEAN type. Corrected minor error in ISO 639 standard strings -now conformant to TERMINOLOGY_ID. OBJECT_ID.version_id now optional. Improved document structure.||T Beale||18 Mar 2003||
     192||0.9||Initial Writing. Taken from Data types and Common Reference Models. Formally validated using ISE Eiffel 5.2.||T Beale||25 Feb 2003||
     193
     194==== Acknowledgements ====
     195The work reported in this paper has been funded in  by a number of organisations, including The University College, London and Ocean Informatics, Australia.
    205196
    206197[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 5 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
     
    220211Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    221212
    222 ==== Table of Contents  ==== #LinkTarget_15625
     213==== Table of Contents ==== #LinkTarget_15625
    223214[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15939 1 Introduction.............................................................................. 9]
    224215
     
    315306[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 7 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    316307
    317  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     308  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    318309
    319310[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model]
     
    386377
    387378[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19021 5.4.3 CODE_SET_ACCESS Class ........................................................58]
    388 
    389379
    390380==== [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19052 5.4.4 OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS Class..58] ====
     
    417407Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 8 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    418408
    419 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     409[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    420410
    421411[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Introduction Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    422412
    423 == Introduction  == #LinkTarget_15939
    424 
    425 === 1.1 Purpose  === #LinkTarget_15941
    426 This document describes the openEHR Support Reference Model, whose semantics are used by all openEHR Reference Models. The intended audience includes:
    427 
    428 
    429  * Standards bodies producing health informatics standards;
    430  * Software development organisations developing EHR systems;
    431  * Academic groups studying the EHR;
    432  * The open source healthcare community.
    433 
    434 
    435 === 1.2 Related Documents  === #LinkTarget_15957
    436 Prerequisite documents for reading this document include:
    437 
    438 
    439  * The openEHR Architecture Overview
    440  * The openEHR Modelling Guide
    441 
    442 
    443 === 1.3 Status  === #LinkTarget_15967
    444 This document is under development, and is published as a proposal for input to standards processes and implementation works.
     413== Introduction == #LinkTarget_15939
     414=== 1.1 Purpose === #LinkTarget_15941
     415This document describes the openEHR Support Reference Model, whose semantics are used by all openEHR Reference Models. The intended audience includes:
     416
     417 * Standards bodies producing health informatics standards;
     418 * Software development organisations developing EHR systems;
     419 * Academic groups studying the EHR;
     420 * The open source healthcare community.
     421
     422=== 1.2 Related Documents === #LinkTarget_15957
     423Prerequisite documents for reading this document include:
     424
     425 * The openEHR Architecture Overview
     426 * The openEHR Modelling Guide
     427
     428=== 1.3 Status === #LinkTarget_15967
     429This document is under development, and is published as a proposal for input to standards processes and implementation works.
    445430
    446431This document is available at [http://svn.openehr.org/specification/TAGS/Release-1.0.1/publishing/architecture/rm/support_im.pdf http://svn.openehr.org/specification/TAGS/Release] [http://svn.openehr.org/specification/TAGS/Release-1.0.1/publishing/architecture/rm/support_im.pdf 1.0.1/publishing/architecture/rm/support_im.pdf.]
     
    448433The latest version of this document can be found at [http://svn.openehr.org/specification/TRUNK/publishing/architecture/rm/support_im.pdf http://svn.openehr.org/specifica] [http://svn.openehr.org/specification/TRUNK/publishing/architecture/rm/support_im.pdf tion/TRUNK/publishing/architecture/rm/support_im.pdf.]
    449434
    450 Blue text indicates sections under active development.
    451 
    452 
    453 === 1.4 Peer review  === #LinkTarget_15979
    454 Areas where more analysis or explanation is required are indicated with “to be continued” paragraphs like the following:
    455 
    456 To Be Continued: more work required
     435Blue text indicates sections under active development.
     436
     437=== 1.4 Peer review === #LinkTarget_15979
     438Areas where more analysis or explanation is required are indicated with “to be continued” paragraphs like the following:
     439
     440To Be Continued: more work required
    457441
    458442Reviewers are encouraged to comment on and/or advise on these paragraphs as well as the main content. Please send requests for information to [mailto:info@gehr.org info@openEHR.org. Feedback should preferably be] provided on the mailing list [mailto:openehr-technical@openehr.org openehr-technical@openehr.org, or by private email.]
    459443
    460 
    461 === 1.5 Conformance  === #LinkTarget_15987
    462 Conformance of a data or software artifact to an openEHR Reference Model specification is determined by a formal test of that artifact against the relevant openEHR Implementation Technology Specification(s) (ITSs), such as an IDL interface or an XML-schema. Since ITSs are formal, automated derivations from the Reference Model, ITS conformance indicates RM conformance.
     444=== 1.5 Conformance === #LinkTarget_15987
     445Conformance of a data or software artifact to an openEHR Reference Model specification is determined by a formal test of that artifact against the relevant openEHR Implementation Technology Specification(s) (ITSs), such as an IDL interface or an XML-schema. Since ITSs are formal, automated derivations from the Reference Model, ITS conformance indicates RM conformance.
    463446
    464447[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 9 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    465448
    466  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     449  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    467450
    468451Introduction [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
     
    470453Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 10 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    471454
    472 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     455[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    473456
    474457[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Support Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    475458
    476 == Support Package  == #LinkTarget_16016
    477 
    478 === 2.1 Overview  === #LinkTarget_16019
     459== Support Package == #LinkTarget_16016
     460=== 2.1 Overview === #LinkTarget_16019
    479461The Support Reference Model comprises types used throughout the openEHR models, including assumed primitive types defined outside of openEHR. The package structure is illustrated in [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16040 FIGURE]
    480462
    481 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16040 1.]  The assumed_types ‘pseudo-package’ stands for types assumed by the openEHR specifcations to exist in an implementation technology, such as a programming language, schema language or database environment. The four Support packages define the semantics respectively for constants, terminology access, access to externally defined scientific units and conversion information. The class EXTERNAL_ENVIRONMENT_ACCESS is a mixin class providing access to the service interface classes.
    482 
    483 support
    484 
    485 
    486 ==== definition  ====
    487 identification
    488 
    489 
    490 ||assumed_types ||
    491 ||FIGURE 1 || rm.support and assumed_types Packages ||
    492 ||2.2 2.2.1 ||Class Definitions EXTERNAL_ENVIRONMENT_ACCESS Class ||
    493 
    494 
    495 ||CLASS ||EXTERNAL_ENVIRONMENT_ACCESS (abstract) ||
    496 ||Purpose ||A mixin class providing access to services in the external environment. ||
    497 ||Functions ||Signature ||Meaning ||
    498 ||||eea_terminology_svc: TERMINOLOGY_SERVICE ||Return an interface to the terminology service ||
    499 ||||eea_measurement_svc: MEASUREMENT_SERVICE ||Return an interface to the measurement service ||
     463[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16040 1.]  The assumed_types ‘pseudo-package’ stands for types assumed by the openEHR specifcations to exist in an implementation technology, such as a programming language, schema language or database environment. The four Support packages define the semantics respectively for constants, terminology access, access to externally defined scientific units and conversion information. The class EXTERNAL_ENVIRONMENT_ACCESS is a mixin class providing access to the service interface classes.
     464
     465support
     466
     467==== definition ====
     468identification
     469
     470||assumed_types||
     471||FIGURE 1||rm.support and assumed_types Packages||
     472||2.2 2.2.1||Class Definitions EXTERNAL_ENVIRONMENT_ACCESS Class||
     473
     474||CLASS||EXTERNAL_ENVIRONMENT_ACCESS (abstract)||
     475||Purpose||A mixin class providing access to services in the external environment.||
     476||Functions||Signature||Meaning||
     477||||eea_terminology_svc: TERMINOLOGY_SERVICE||Return an interface to the terminology service||
     478||||eea_measurement_svc: MEASUREMENT_SERVICE||Return an interface to the measurement service||
    500479
    501480[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 11 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    502481
    503  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     482  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    504483
    505484Support Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    506485
    507 Terminology_service_exists: eea_terminology_svc /= Void Measurement_service_exists: eea_measurement_svc /= Void 
     486Terminology_service_exists: eea_terminology_svc /= Void Measurement_service_exists: eea_measurement_svc /= Void
    508487
    509488Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 12 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    510489
    511 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     490[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    512491
    513492[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Assumed Types Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    514493
    515 == Assumed Types  == #LinkTarget_16093
    516 
    517 === 3.1 Overview  === #LinkTarget_16095
    518 This section describes types assumed by all openEHR models. The set of types chosen here is based on a common set from various published sources, including:
    519 
    520 
    521  * ISO 11404 (2003 revision) general purpose data types;
    522  * ISO 8601 (2004) date/time specification;
    523  * Well-known interoperability formalisms, including OMG IDL, W3C XML-schema;
    524  * Well-known object-oriented programming languages, including Java, C#, C++ and Eiffel.
    525 
    526 The intention in openEHR is twofold. Firstly, to ensure that openEHR software based on the models integrates as easily as possible with existing implementation technologies, and secondly, to make the minimum possible assumptions about types found in implementation formalisms, while making sufficient assumptions to both enable openEHR models to be conveniently specified. The ISO 11404 (2003) standard contains basic semantics of “general purpose data types” (GPDs) for information technology, and is used here as a normative basis for describing assumptions about types. The operations and properties described here are compatible with those used in ISO 11404, but not always the same, as 11404 does not use object-oriented functions. For example, the notional function has(!x:T) (test for presence of a value in a set) defined on the type Set<T> below is not defined on the ISO 11404 Set type; instead, the function !IsIn(x: T; s: Set<T>) is defined. However, in object-oriented formalisms, the function !IsIn defined on a Set type would usually mean ‘subset of’. In the interests of clarity for developers, an object-oriented style of functions and properties has been used here.
    527 
    528 !ISO8601:2004 is used as the definitional basis for assumed date/time types, since it is commonly used [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16711 around the world, and is also the basis for the date/time types in W3C XML-schema. See section 3.4] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16711 on page 22]  below for details of dates and times.
    529 
    530 Two groups of assumed types are identified: primitive types, which are those built in to a formalism’s type system, and library types, which are assumed to be available in a (class) library defined in the formalism. Thus, the type Boolean is always assumed to exist in a formalism, while the type Array<T> is assumed to be available in a library. For practical purposes, these two categories do not matter that much - whether String is really a library class (the usual case) or an inbuilt type doesn’t make much difference to the programmer. They are shown separately here mainly as an explanatory convenience.
    531 
    532 The assumptions that openEHR makes about existing types are documented below in terms of interface definitions. Each of these definitions contains only the assumptions required for the given type to be used in the openEHR Reference Model -it is not by any means a complete interface definition. The name and semantics of any function used here for an assumed type might not be identical to those found in some implementation technologies. Any mapping required should be stated in the relevant implementation technology specification (ITS). To give a concrete example, where the assumed Set<T> type defined below has an operation has(item: T): Boolean which is used throughout the openEHR specifications, Java has the method contains() on its Set<T> class. In a Java implementation, the contains() method should then be used throughout the openEHR classes as expressed in Java, in place of the has() method.
     494== Assumed Types == #LinkTarget_16093
     495=== 3.1 Overview === #LinkTarget_16095
     496This section describes types assumed by all openEHR models. The set of types chosen here is based on a common set from various published sources, including:
     497
     498 * ISO 11404 (2003 revision) general purpose data types;
     499 * ISO 8601 (2004) date/time specification;
     500 * Well-known interoperability formalisms, including OMG IDL, W3C XML-schema;
     501 * Well-known object-oriented programming languages, including Java, C#, C++ and Eiffel.
     502
     503The intention in openEHR is twofold. Firstly, to ensure that openEHR software based on the models integrates as easily as possible with existing implementation technologies, and secondly, to make the minimum possible assumptions about types found in implementation formalisms, while making sufficient assumptions to both enable openEHR models to be conveniently specified. The ISO 11404 (2003) standard contains basic semantics of “general purpose data types” (GPDs) for information technology, and is used here as a normative basis for describing assumptions about types. The operations and properties described here are compatible with those used in ISO 11404, but not always the same, as 11404 does not use object-oriented functions. For example, the notional function has(!x:T) (test for presence of a value in a set) defined on the type Set<T> below is not defined on the ISO 11404 Set type; instead, the function !IsIn(x: T; s: Set<T>) is defined. However, in object-oriented formalisms, the function !IsIn defined on a Set type would usually mean ‘subset of’. In the interests of clarity for developers, an object-oriented style of functions and properties has been used here.
     504
     505!ISO8601:2004 is used as the definitional basis for assumed date/time types, since it is commonly used [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16711 around the world, and is also the basis for the date/time types in W3C XML-schema. See section 3.4] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16711 on page 22]  below for details of dates and times.
     506
     507Two groups of assumed types are identified: primitive types, which are those built in to a formalism’s type system, and library types, which are assumed to be available in a (class) library defined in the formalism. Thus, the type Boolean is always assumed to exist in a formalism, while the type Array<T> is assumed to be available in a library. For practical purposes, these two categories do not matter that much - whether String is really a library class (the usual case) or an inbuilt type doesn’t make much difference to the programmer. They are shown separately here mainly as an explanatory convenience.
     508
     509The assumptions that openEHR makes about existing types are documented below in terms of interface definitions. Each of these definitions contains only the assumptions required for the given type to be used in the openEHR Reference Model -it is not by any means a complete interface definition. The name and semantics of any function used here for an assumed type might not be identical to those found in some implementation technologies. Any mapping required should be stated in the relevant implementation technology specification (ITS). To give a concrete example, where the assumed Set<T> type defined below has an operation has(item: T): Boolean which is used throughout the openEHR specifications, Java has the method contains() on its Set<T> class. In a Java implementation, the contains() method should then be used throughout the openEHR classes as expressed in Java, in place of the has() method.
    533510
    534511[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 13 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    535512
    536  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     513  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    537514
    538515Assumed Types [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    539516
    540 
    541 === 3.2 Inbuilt Primitive Types  === #LinkTarget_16135
    542 The following types consititute the minimum set of primitive types assumed by openEHR of an implementation formalism.
    543 
    544 
    545 ||Type name in openEHR ||Description ||ISO 11404 Type ||
    546 ||Octet ||represents a type whose value is an 8-bit value. ||Octet ||
    547 ||Character ||represents a type whose value is a member of an 8-bit character-set (ISO: “repertoire”). ||Character ||
    548 ||Boolean ||represents logical True/False values; usually physically represented as an integer, but need not be ||Boolean ||
     517=== 3.2 Inbuilt Primitive Types === #LinkTarget_16135
     518The following types consititute the minimum set of primitive types assumed by openEHR of an implementation formalism.
     519
     520||Type name in openEHR||Description||ISO 11404 Type||
     521||Octet||represents a type whose value is an 8-bit value.||Octet||
     522||Character||represents a type whose value is a member of an 8-bit character-set (ISO: “repertoire”).||Character||
     523||Boolean||represents logical True/False values; usually physically represented as an integer, but need not be||Boolean||
    549524||||||||
    550 ||Integer ||represents 32-bit integers ||Integer ||
    551 ||Real ||represents 32-bit real numbers in any interoperable representation, including single-width IEEE floating point ||Real ||
    552 ||Double ||type which represents 64-bit real numbers, in any interoperable representation including double-precision IEEE floating point. ||Real ||
    553 
    554 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16193 FIGURE 2]  illustrates the built-in primitive types. Simple inheritance relationships are shown which facilitate the type descriptions below. A class “Any” is used to stand for the usual top-level class in all object-oriented type systems, typically called something like “Any” or “Object”. Inheritance from or subsitutability for an Any class is not assumed in openEHR (hence the dotted lines in the UML). It is used here to enable basic operations like ‘=’ to be described once for the type Any, rather than in every subtype. The type Ordered_numeric is on the other hand assumed for purposes of specification in the openEHR data_types.quantity package, and is intended to be mapped to an equivalent type in a real type system (e.g. in Java, java.lang.Number). Here it is assumed that the operations defined on Ordered_numericare available on the types Integer, Realand Double in implementation type systems, where relevant. Data-oriented implementation type systems such as XML-schema do not have such operations. 
     525||Integer||represents 32-bit integers||Integer||
     526||Real||represents 32-bit real numbers in any interoperable representation, including single-width IEEE floating point||Real||
     527||Double||type which represents 64-bit real numbers, in any interoperable representation including double-precision IEEE floating point.||Real||
     528
     529[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16193 FIGURE 2]  illustrates the built-in primitive types. Simple inheritance relationships are shown which facilitate the type descriptions below. A class “Any” is used to stand for the usual top-level class in all object-oriented type systems, typically called something like “Any” or “Object”. Inheritance from or subsitutability for an Any class is not assumed in openEHR (hence the dotted lines in the UML). It is used here to enable basic operations like ‘=’ to be described once for the type Any, rather than in every subtype. The type Ordered_numeric is on the other hand assumed for purposes of specification in the openEHR data_types.quantity package, and is intended to be mapped to an equivalent type in a real type system (e.g. in Java, java.lang.Number). Here it is assumed that the operations defined on Ordered_numericare available on the types Integer, Realand Double in implementation type systems, where relevant. Data-oriented implementation type systems such as XML-schema do not have such operations.
    555530
    556531''Any ''
    557532
    558 
    559 ==== Octet  ====
    560 Character
    561 
    562 Boolean
     533==== Octet ====
     534Character
     535
     536Boolean
    563537
    564538''Ordered ''
     
    568542''Ordered_numeric ''
    569543
    570 FIGURE 2  Primitive Types Assumed by openEHR 
     544FIGURE 2  Primitive Types Assumed by openEHR
    571545
    572546Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 14 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    573547
    574 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     548[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    575549
    576550[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Assumed Types Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    577551
    578 3.2.1 Any Type
    579 
    580 
    581 ||INTERFACE ||Any (abstract) ||
    582 ||Description ||Abstract supertype. Usually maps to a type like “Any” or “Object” in an object system. Defined here to provide the value and reference equality semantics. ||
    583 ||Abstract ||Signature ||Meaning ||
    584 ||||is_equal (other: Any): Boolean ||Value equality ||
    585 ||Functions ||Signature ||Meaning ||
    586 ||||infix ‘=’ (other: Any): Boolean ||Reference equality ||
    587 ||||instance_of (a_type: String) ||Dynamic type of object as a String. Used for type name matching. ||
    588 ||Invariants ||||
    589 
    590 3.2.2 Ordered Type
    591 
    592 
    593 ||INTERFACE ||Ordered (abstract) ||
    594 ||Purpose ||Abstract notional parent class of ordered, types i.e. types on which the ‘<‘ operator is defined. ||
    595 ||Abstract ||Signature ||Meaning ||
    596 ||||infix ‘<’ (other: like Current): Boolean ||Arithmetic comparison. In conjunction with ‘=’, enables the definition of the operators ‘>’, ‘>=’, ‘<=’, ‘<>’. In real type systems, this operator might be defined on another class for comparability. ||
    597 ||Invariants ||||
    598 
    599 3.2.3 Numeric Type
    600 
    601 
    602 ||INTERFACE ||Numeric (abstract) ||
    603 ||Purpose ||Abstract notional parent class of numeric types, which are types which have various arithmetic and comparison operators defined. ||
    604 ||Abstract ||Signature ||Meaning ||
     5523.2.1 Any Type
     553
     554||INTERFACE||Any (abstract)||
     555||Description||Abstract supertype. Usually maps to a type like “Any” or “Object” in an object system. Defined here to provide the value and reference equality semantics.||
     556||Abstract||Signature||Meaning||
     557||||is_equal (other: Any): Boolean||Value equality||
     558||Functions||Signature||Meaning||
     559||||infix ‘=’ (other: Any): Boolean||Reference equality||
     560||||instance_of (a_type: String)||Dynamic type of object as a String. Used for type name matching.||
     561||Invariants||||
     562
     5633.2.2 Ordered Type
     564
     565||INTERFACE||Ordered (abstract)||
     566||Purpose||Abstract notional parent class of ordered, types i.e. types on which the ‘<‘ operator is defined.||
     567||Abstract||Signature||Meaning||
     568||||infix ‘<’ (other: like Current): Boolean||Arithmetic comparison. In conjunction with ‘=’, enables the definition of the operators ‘>’, ‘>=’, ‘<=’, ‘<>’. In real type systems, this operator might be defined on another class for comparability.||
     569||Invariants||||
     570
     5713.2.3 Numeric Type
     572
     573||INTERFACE||Numeric (abstract)||
     574||Purpose||Abstract notional parent class of numeric types, which are types which have various arithmetic and comparison operators defined.||
     575||Abstract||Signature||Meaning||
    605576
    606577[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 15 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    607578
    608  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     579  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    609580
    610581Assumed Types [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    611582
    612 
    613 ||INTERFACE ||Numeric (abstract) ||
    614 ||||infix "*" (other: like Current): like Current require other_exists: other /= void ensure result_exists: Result /= void ||Product by `other'. Actual type of result depends on arithmetic balancing rules. ||
    615 ||||infix "+" (other: like Current): like Current require other_exists: other /= void ensure result_exists: Result /= void commutative: equal (Result, other + Current) ||Sum with `other' (commutative). Actual type of result depends on arithmetic balancing rules. ||
    616 ||||infix "-" (other: like Current): like Current require other_exists: other /= void ensure result_exists: Result /= void ||Result of subtracting `other'. Actual type of result depends on arithmetic balancing rules. ||
    617 ||Invariants ||||
    618 
    619 3.2.4 Ordered_numeric Type
    620 
    621 
    622 ||INTERFACE ||Ordered_numeric (abstract) ||
    623 ||Purpose ||Abstract notional parent class of ordered, numeric types, which are types with ‘<‘ and arithmetic operators defined. ||
    624 ||Inherit ||ORDERED, NUMERIC ||
    625 ||Function ||Signature ||Meaning ||
    626 ||Invariants ||||
    627 
    628 3.2.5 Boolean Type
    629 
    630 
    631 ||INTERFACE ||Boolean ||||
    632 ||Purpose ||Boolean type used for two-valued mathematical logic. ||||
    633 ||Function ||Signature ||||Meaning ||
     583||INTERFACE||Numeric (abstract)||
     584||||infix "*" (other: like Current): like Current require other_exists: other /= void ensure result_exists: Result /= void||Product by `other'. Actual type of result depends on arithmetic balancing rules.||
     585||||infix "+" (other: like Current): like Current require other_exists: other /= void ensure result_exists: Result /= void commutative: equal (Result, other + Current)||Sum with `other' (commutative). Actual type of result depends on arithmetic balancing rules.||
     586||||infix "-" (other: like Current): like Current require other_exists: other /= void ensure result_exists: Result /= void||Result of subtracting `other'. Actual type of result depends on arithmetic balancing rules.||
     587||Invariants||||
     588
     5893.2.4 Ordered_numeric Type
     590
     591||INTERFACE||Ordered_numeric (abstract)||
     592||Purpose||Abstract notional parent class of ordered, numeric types, which are types with ‘<‘ and arithmetic operators defined.||
     593||Inherit||ORDERED, NUMERIC||
     594||Function||Signature||Meaning||
     595||Invariants||||
     596
     5973.2.5 Boolean Type
     598
     599||INTERFACE||Boolean||||
     600||Purpose||Boolean type used for two-valued mathematical logic.||||
     601||Function||Signature||||Meaning||
    634602
    635603Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 16 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    636604
    637 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     605[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    638606
    639607[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Assumed Types Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    640608
    641 
    642  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
    643 
    644 ||INTERFACE ||Boolean ||
    645 ||||infix "and" (other: Boolean): Boolean require other_exists: other /= void ensure de_morgan: Result = not (not Current or not other) commutative: Result = (other and Current) ||Logical conjunction ||
    646 ||||infix "and then" (other: Boolean): Boolean require other_exists: other /= void ensure de_morgan: Result = not (not Current or else not other) ||Boolean semi-strict conjunction with other ||
    647 ||||infix "or" (other: Boolean): Boolean require other_exists: other /= void ensure de_morgan: Result = not (not Current and not other) commutative: Result = (other or Current) consistent_with_semi_strict: Result implies (Current or else other) ||Boolean disjunction with other ||
    648 ||||infix "or else" (other: Boolean): Boolean require other_exists: other /= void ensure de_morgan: Result = not (not Current and then not other) ||Boolean semi-strict disjunction with `other' ||
    649 ||||infix "xor" (other: Boolean): Boolean require other_exists: other /= void ensure definition: Result = ((Current or other) and not (Current and other)) ||Boolean exclusive or with `other' ||
     609  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
     610
     611||INTERFACE||Boolean||
     612||||infix "and" (other: Boolean): Boolean require other_exists: other /= void ensure de_morgan: Result = not (not Current or not other) commutative: Result = (other and Current)||Logical conjunction||
     613||||infix "and then" (other: Boolean): Boolean require other_exists: other /= void ensure de_morgan: Result = not (not Current or else not other)||Boolean semi-strict conjunction with other||
     614||||infix "or" (other: Boolean): Boolean require other_exists: other /= void ensure de_morgan: Result = not (not Current and not other) commutative: Result = (other or Current) consistent_with_semi_strict: Result implies (Current or else other)||Boolean disjunction with other||
     615||||infix "or else" (other: Boolean): Boolean require other_exists: other /= void ensure de_morgan: Result = not (not Current and then not other)||Boolean semi-strict disjunction with `other'||
     616||||infix "xor" (other: Boolean): Boolean require other_exists: other /= void ensure definition: Result = ((Current or other) and not (Current and other))||Boolean exclusive or with `other'||
    650617
    651618[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 17 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
     
    653620Assumed Types [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    654621
    655 
    656 ||INTERFACE ||Boolean ||
    657 ||||infix "implies" (other: Boolean): Boolean require other_exists: other /= void ensure definition: Result = (not Current or else other) ||Boolean implication of `other' (semi-strict) ||
    658 ||Invariants ||involutive_negation: is_equal (not (not Current)) non_contradiction: not (Current and (not Current)) completeness: Current or else (not Current) ||
    659 
    660 3.2.6 Real Type
    661 
    662 
    663 ||INTERFACE ||Real ||
    664 ||Purpose ||Type used to represent decimal numbers. Typically corresponds to a single-precision floating point value in most languages. ||
    665 ||Function ||Signature ||Meaning ||
    666 ||||floor: Integer ||Return the greatest integer no greater than the value of this object. ||
    667 ||Invariants ||||
    668 
    669 
    670 === 3.3 Assumed Library Types  === #LinkTarget_16425
    671 The types described in this section are also assumed to be fairly standard in implementation technologies by openEHR, but usually come from type libraries rather than being built into the type system of implementation formalisms.
    672 
    673 
    674 ||Type name in openEHR ||Description ||ISO 11404: 2003 Type ||
    675 ||String ||represents unicode-enabled strings ||Character-String/Sequence ||
    676 ||Array<T> ||physical container of items indexed by number ||Array ||
    677 ||List<T> ||container of items, implied order, non-unique membership ||Sequence ||
    678 ||Set<T> ||container of items, no order, unique membership ||Set ||
    679 ||Hash<T,!U:Comparable> ||a table of values of any type T, keyed by values of any basic comparable type U, typically String or Integer, but may be more complex types, e.g. a coded term type. ||Table ||
    680 ||Interval<T> ||Intervals with open or closed upper and lower bounds. ||-||
     622||INTERFACE||Boolean||
     623||||infix "implies" (other: Boolean): Boolean require other_exists: other /= void ensure definition: Result = (not Current or else other)||Boolean implication of `other' (semi-strict)||
     624||Invariants||involutive_negation: is_equal (not (not Current)) non_contradiction: not (Current and (not Current)) completeness: Current or else (not Current)||
     625
     6263.2.6 Real Type
     627
     628||INTERFACE||Real||
     629||Purpose||Type used to represent decimal numbers. Typically corresponds to a single-precision floating point value in most languages.||
     630||Function||Signature||Meaning||
     631||||floor: Integer||Return the greatest integer no greater than the value of this object.||
     632||Invariants||||
     633
     634=== 3.3 Assumed Library Types === #LinkTarget_16425
     635The types described in this section are also assumed to be fairly standard in implementation technologies by openEHR, but usually come from type libraries rather than being built into the type system of implementation formalisms.
     636
     637||Type name in openEHR||Description||ISO 11404: 2003 Type||
     638||String||represents unicode-enabled strings||Character-String/Sequence||
     639||Array<T>||physical container of items indexed by number||Array||
     640||List<T>||container of items, implied order, non-unique membership||Sequence||
     641||Set<T>||container of items, no order, unique membership||Set||
     642||Hash<T,!U:Comparable>||a table of values of any type T, keyed by values of any basic comparable type U, typically String or Integer, but may be more complex types, e.g. a coded term type.||Table||
     643||Interval<T>||Intervals with open or closed upper and lower bounds.||-||
    681644
    682645Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 18 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    683646
    684 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     647[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    685648
    686649[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Assumed Types Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    687650
    688 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16487 FIGURE 3 illustrates the assumed library types. As with the assumed primitive types, inheritance and] abstract classes are used for convenience of the definitions below, but are not formally assumed in openEHR. 
     651[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16487 FIGURE 3 illustrates the assumed library types. As with the assumed primitive types, inheritance and] abstract classes are used for convenience of the definitions below, but are not formally assumed in openEHR.
    689652
    690653''Any ''
    691654
    692 T 
    693 
    694 T->Ordered 
     655T
     656
     657T->Ordered
    695658
    696659''Aggregate''
    697660
    698 
    699 ==== String  ====
    700 Interval
    701 
    702 FIGURE 3  Library Types Assumed by openEHR
    703 
    704 3.3.1 String Type
    705 
    706 
    707 ||INTERFACE ||String ||
    708 ||Description ||Strings of characters, as used to represent textual data in any natural or formal language. ||
    709 ||Functions ||Signature ||Meaning ||
    710 ||||infix ‘+’ (other: String): String ||Concatenation operator - causes ‘other’ to be appended to this string ||
    711 ||||is_empty: Boolean ||True if string is empty, i.e. equal to “”. ||
    712 ||||is_integer: Boolean ||True if string can be parsed as an integer. ||
    713 ||||as_integer: Integer require is_integer ||Return the integer corresponding to the integer value represented in this string. ||
    714 ||Invariants ||||
    715 
    716 
    717 ==== 3.3.1.1 UNICODE  ==== #LinkTarget_16522
    718 It is assumed in the openEHR specifications that Unicode is supported by the type String. Unicode is needed for all Asian, Arabic and other script languages, for both data values (particularly plain text and coded text) and for many predefined string attributes of the classes in the openEHR Reference Model. It encompasses all existing character sets. In openEHR, UTF-8 encoding is assumed.
    719 
    720 
    721 === 3.3.2 Aggregate Type  === #LinkTarget_16525
    722 Abstract parent of of the aggregate types List<T>, Set<T>, Array<T> and Hash<T,K>.
     661==== String ====
     662Interval
     663
     664FIGURE 3  Library Types Assumed by openEHR
     665
     6663.3.1 String Type
     667
     668||INTERFACE||String||
     669||Description||Strings of characters, as used to represent textual data in any natural or formal language.||
     670||Functions||Signature||Meaning||
     671||||infix ‘+’ (other: String): String||Concatenation operator - causes ‘other’ to be appended to this string||
     672||||is_empty: Boolean||True if string is empty, i.e. equal to “”.||
     673||||is_integer: Boolean||True if string can be parsed as an integer.||
     674||||as_integer: Integer require is_integer||Return the integer corresponding to the integer value represented in this string.||
     675||Invariants||||
     676
     677==== 3.3.1.1 UNICODE ==== #LinkTarget_16522
     678It is assumed in the openEHR specifications that Unicode is supported by the type String. Unicode is needed for all Asian, Arabic and other script languages, for both data values (particularly plain text and coded text) and for many predefined string attributes of the classes in the openEHR Reference Model. It encompasses all existing character sets. In openEHR, UTF-8 encoding is assumed.
     679
     680=== 3.3.2 Aggregate Type === #LinkTarget_16525
     681Abstract parent of of the aggregate types List<T>, Set<T>, Array<T> and Hash<T,K>.
    723682
    724683[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 19 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    725684
    726  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     685  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    727686
    728687Assumed Types [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    729688
    730 
    731 ||INTERFACE ||Aggregate <T> (abstract) ||
    732 ||Functions ||Signature ||Meaning ||
    733 ||||has (v: T): Boolean ||Test for membership of a value ||
    734 ||||count: Integer ||Number of items in container ||
    735 ||||is_empty: Boolean ||True if container is empty. ||
    736 ||Invariants ||||
    737 
    738 3.3.3 List Type
    739 
    740 
    741 ||INTERFACE ||List <T> (abstract) ||
    742 ||Description ||Ordered container that may contain duplicates. ||
    743 ||Functions ||Signature ||Meaning ||
    744 ||||first: T ||Return first element. ||
    745 ||||last: T ||Return last element. ||
    746 ||Invariants ||First_validity: not is_empty implies first /= Void Last_validity: not is_empty implies last /= Void ||
    747 
    748 3.3.4 Set Type
    749 
    750 
    751 ||INTERFACE ||Set <T> (abstract) ||
    752 ||Description ||Unordered container that may not contain duplicates. ||
    753 ||Functions ||Signature ||Meaning ||
    754 ||Invariants ||||
    755 
    756 3.3.5 Array Type
    757 
    758 
    759 ||INTERFACE ||Array <T> (abstract) ||
    760 ||Description ||Container whose storage is assumed to be contiguous. ||
    761 ||Functions ||Signature ||Meaning ||
    762 ||Invariants ||||
     689||INTERFACE||Aggregate <T> (abstract)||
     690||Functions||Signature||Meaning||
     691||||has (v: T): Boolean||Test for membership of a value||
     692||||count: Integer||Number of items in container||
     693||||is_empty: Boolean||True if container is empty.||
     694||Invariants||||
     695
     6963.3.3 List Type
     697
     698||INTERFACE||List <T> (abstract)||
     699||Description||Ordered container that may contain duplicates.||
     700||Functions||Signature||Meaning||
     701||||first: T||Return first element.||
     702||||last: T||Return last element.||
     703||Invariants||First_validity: not is_empty implies first /= Void Last_validity: not is_empty implies last /= Void||
     704
     7053.3.4 Set Type
     706
     707||INTERFACE||Set <T> (abstract)||
     708||Description||Unordered container that may not contain duplicates.||
     709||Functions||Signature||Meaning||
     710||Invariants||||
     711
     7123.3.5 Array Type
     713
     714||INTERFACE||Array <T> (abstract)||
     715||Description||Container whose storage is assumed to be contiguous.||
     716||Functions||Signature||Meaning||
     717||Invariants||||
    763718
    764719Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 20 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    765720
    766 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     721[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    767722
    768723[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Assumed Types Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    769724
    770 3.3.6 Hash Type
    771 
    772 
    773 ||INTERFACE ||Hash <T, U: Comparable> ||
    774 ||Description ||Type representing a keyed table of values. T is the value type, and U the type of the keys. ||
    775 ||Functions ||Signature ||Meaning ||
    776 ||||has_key (a_key: U): Boolean ||Test for membership of a key ||
    777 ||||item (a_key: U): T ||Return item for key ‘a_key’. Equivalent to ISO 11404 fetch operation. ||
    778 ||Invariants ||||
    779 
    780 3.3.7 Interval Type
    781 
    782 
    783 ||INTERFACE ||Interval <!T:Ordered> ||
    784 ||Purpose ||Interval of ordered items. ||
    785 ||Attributes ||Signature ||Meaning ||
    786 ||||lower: T ||lower bound ||
    787 ||||upper: T ||upper bound ||
    788 ||||lower_unbounded: Boolean ||lower boundary open (i.e. = -infinity) ||
    789 ||||upper_unbounded: Boolean ||upper boundary open (i.e. = +infinity) ||
    790 ||||lower_included: Boolean ||lower boundary value included in range if not lower_unbounded ||
    791 ||||upper_included: Boolean ||upper boundary value included in range if not upper_unbounded ||
    792 ||Functions ||Signature ||Meaning ||
    793 ||||has(e:T): Boolean ||True if (lower_unbounded or ((lower_included and v >= lower) or v > lower)) and (upper_unbounded or ((upper_included and v <= upper or v < upper))) ||
     7253.3.6 Hash Type
     726
     727||INTERFACE||Hash <T, U: Comparable>||
     728||Description||Type representing a keyed table of values. T is the value type, and U the type of the keys.||
     729||Functions||Signature||Meaning||
     730||||has_key (a_key: U): Boolean||Test for membership of a key||
     731||||item (a_key: U): T||Return item for key ‘a_key’. Equivalent to ISO 11404 fetch operation.||
     732||Invariants||||
     733
     7343.3.7 Interval Type
     735
     736||INTERFACE||Interval <!T:Ordered>||
     737||Purpose||Interval of ordered items.||
     738||Attributes||Signature||Meaning||
     739||||lower: T||lower bound||
     740||||upper: T||upper bound||
     741||||lower_unbounded: Boolean||lower boundary open (i.e. = -infinity)||
     742||||upper_unbounded: Boolean||upper boundary open (i.e. = +infinity)||
     743||||lower_included: Boolean||lower boundary value included in range if not lower_unbounded||
     744||||upper_included: Boolean||upper boundary value included in range if not upper_unbounded||
     745||Functions||Signature||Meaning||
     746||||has(e:T): Boolean||True if (lower_unbounded or ((lower_included and v >= lower) or v > lower)) and (upper_unbounded or ((upper_included and v <= upper or v < upper)))||
    794747
    795748[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 21 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    796749
    797  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     750  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    798751
    799752Assumed Types [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    800753
    801 Lower_included_valid: lower_unbounded implies not lower_included Upper_included_valid: upper_unbounded implies not upper_included Limits_consistent: (not upper_unbounded and not lower_unbounded) implies lower <= upper Limits_comparable: (not upper_unbounded and not lower_unbounded) implies lower.strictly_comparable_to(upper)
    802 
    803 
    804 === 3.4 Date/Time Types  === #LinkTarget_16711
     754Lower_included_valid: lower_unbounded implies not lower_included Upper_included_valid: upper_unbounded implies not upper_included Limits_consistent: (not upper_unbounded and not lower_unbounded) implies lower <= upper Limits_comparable: (not upper_unbounded and not lower_unbounded) implies lower.strictly_comparable_to(upper)
     755
     756=== 3.4 Date/Time Types === #LinkTarget_16711
    805757Although the ISO 11404 (2003) standard defines a date-and-time type generator (section 8.1.6), and a timeinterval type (section 10.1.6), a more widely used specification of date/times is given by ISO !8601:2004, which is used as the normative basis for both string literal representation and properties used within openEHR. The types are shown in [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_16718 FIGURE 4.]
    806758
     
    809761''Ordered ''
    810762
    811 TIME_DEFINITIONS 
    812 
    813 ISO 8601 semantics not used in openEHR include:
    814 
    815 
    816  * “expanded” dates, which have year numbers of greater than 4 digits, and may be negative; in openEHR, only 4-digit year numbers are assumed;
    817  * the YYYY-WW-DD method of expressing dates (since this is imprecise and difficult to compute with due to variable week starting dates, and not required in health);
    818  * partial date/times with fractional minutes or hours, e.g. hh,hhh or mm,mm; in openEHR, only fractional seconds are supported;
    819  * the interval syntax. Intervals of date/times are supported in openEHR, but their syntax form is defined by ADL, and is standardised across all comparable types, not just dates and times.
    820 
    821 
    822 ==== Deviations from the published standard include the following:  ====
    823 
    824  * durations are supposed to take the form of PnnW or PnnYnnMnnDTnnHnnMnnS, but in openEHR, the W (week) designator can be used in combination with the other designators, since it is very common to state durations of pregnancy as some combination of weeks and days.
    825  * partial variants of ISO8601_DATE_TIME can include missing hours, days and months, whereas ISO !8601:2004 (section 4.3.3 c) only allows missing seconds and minutes. The reasons for this deviation are:
     763TIME_DEFINITIONS
     764
     765ISO 8601 semantics not used in openEHR include:
     766
     767 * “expanded” dates, which have year numbers of greater than 4 digits, and may be negative; in openEHR, only 4-digit year numbers are assumed;
     768 * the YYYY-WW-DD method of expressing dates (since this is imprecise and difficult to compute with due to variable week starting dates, and not required in health);
     769 * partial date/times with fractional minutes or hours, e.g. hh,hhh or mm,mm; in openEHR, only fractional seconds are supported;
     770 * the interval syntax. Intervals of date/times are supported in openEHR, but their syntax form is defined by ADL, and is standardised across all comparable types, not just dates and times.
     771
     772==== Deviations from the published standard include the following: ====
     773 * durations are supposed to take the form of PnnW or PnnYnnMnnDTnnHnnMnnS, but in openEHR, the W (week) designator can be used in combination with the other designators, since it is very common to state durations of pregnancy as some combination of weeks and days.
     774 * partial variants of ISO8601_DATE_TIME can include missing hours, days and months, whereas ISO !8601:2004 (section 4.3.3 c) only allows missing seconds and minutes. The reasons for this deviation are:
    826775
    827776Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 22 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    828777
    829 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     778[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    830779
    831780[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Assumed Types Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    832781
    833 -the same deviation is used in HL7v2 and HL7v3 TS (timestamp) type, i.e. there are data in existing clinical systems matching this specification;
    834 
    835 -in a typed object model, this deviation is more sensible anyway; the ISO 8601 rule is most likely a limitation of the purely syntactic means of expression. In real systems where a timestamp/date-time is specified in a screen form, it makes sense to allow it to be as partial as possible, rather than artifically restricted to only missing seconds and minutes.
    836 
    837 •       the time !24:00:00 (or 240000) is not allowed anywhere, whereas in !ISO8601:2004 it appears to be legal at least for times. This deviation is also appears to be used in HL7v2 and HL7v3 (where midnight is defined as the time !00:00:00), and is preferable to the documented standard, since a date/time with time of !24:00:00 is really the next day, i.e. the date part is then incorrect.
    838 
    839 The following class definitions provide an object-oriented expression of the semantics of the subset of ISO !8601:2004 used by openEHR.
    840 
    841 See [http://www.cl.cam.ac.uk/%7Emgk25/iso-time.html http://www.cl.cam.ac.uk/~mgk25/iso-time.html]  and the official ISO standard for ISO 8601 details. Note that in the date, time and date_time formats shown below, ‘Z’ and ‘T’ are literals. In the duration class shown below, ‘P’, ‘Y’, ‘M’, ‘W’, ‘D’, ‘H’, ‘S’ and ‘T’ are literals.
    842 
    843 3.4.1 TIME_DEFINITIONS Class
    844 
    845 
    846  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
    847 
    848 ||INTERFACE ||TIME_DEFINITIONS ||
    849 ||Purpose ||Definitions for date/time classes. Note that the timezone limits are set by where the international dateline is. Thus, time in New Zealand is quoted using !+12:00, not !-12:00. ||
    850 ||Constants ||Signature ||Meaning ||
    851 ||1..1 ||Seconds_in_minute: Integer = 60 ||||
    852 ||1..1 ||Minutes_in_hour: Integer = 60 ||||
    853 ||1..1 ||Hours_in_day: Integer = 24 ||||
    854 ||1..1 ||Nominal_days_in_month: Real = 30.42 ||Used for conversions of durations containing months to days and / or seconds. ||
    855 ||1..1 ||Max_days_in_month: Integer = 31 ||Used for validity checking. ||
    856 ||1..1 ||Days_in_year: Integer = 365 ||||
    857 ||1..1 ||Days_in_leap_year: Integer = 366 ||||
    858 ||1..1 ||Max_days_in_year: Integer = Days_in_leap_year ||Used for validity checking. ||
     782-the same deviation is used in HL7v2 and HL7v3 TS (timestamp) type, i.e. there are data in existing clinical systems matching this specification;
     783
     784-in a typed object model, this deviation is more sensible anyway; the ISO 8601 rule is most likely a limitation of the purely syntactic means of expression. In real systems where a timestamp/date-time is specified in a screen form, it makes sense to allow it to be as partial as possible, rather than artifically restricted to only missing seconds and minutes.
     785
     786•         the time !24:00:00 (or 240000) is not allowed anywhere, whereas in !ISO8601:2004 it appears to be legal at least for times. This deviation is also appears to be used in HL7v2 and HL7v3 (where midnight is defined as the time !00:00:00), and is preferable to the documented standard, since a date/time with time of !24:00:00 is really the next day, i.e. the date part is then incorrect.
     787
     788The following class definitions provide an object-oriented expression of the semantics of the subset of ISO !8601:2004 used by openEHR.
     789
     790See [http://www.cl.cam.ac.uk/%7Emgk25/iso-time.html http://www.cl.cam.ac.uk/~mgk25/iso-time.html]  and the official ISO standard for ISO 8601 details. Note that in the date, time and date_time formats shown below, ‘Z’ and ‘T’ are literals. In the duration class shown below, ‘P’, ‘Y’, ‘M’, ‘W’, ‘D’, ‘H’, ‘S’ and ‘T’ are literals.
     791
     7923.4.1 TIME_DEFINITIONS Class
     793
     794  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
     795
     796||INTERFACE||TIME_DEFINITIONS||
     797||Purpose||Definitions for date/time classes. Note that the timezone limits are set by where the international dateline is. Thus, time in New Zealand is quoted using !+12:00, not !-12:00.||
     798||Constants||Signature||Meaning||
     799||1..1||Seconds_in_minute: Integer = 60||||
     800||1..1||Minutes_in_hour: Integer = 60||||
     801||1..1||Hours_in_day: Integer = 24||||
     802||1..1||Nominal_days_in_month: Real = 30.42||Used for conversions of durations containing months to days and / or seconds.||
     803||1..1||Max_days_in_month: Integer = 31||Used for validity checking.||
     804||1..1||Days_in_year: Integer = 365||||
     805||1..1||Days_in_leap_year: Integer = 366||||
     806||1..1||Max_days_in_year: Integer = Days_in_leap_year||Used for validity checking.||
    859807
    860808[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 23 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
     
    862810Assumed Types [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    863811
    864 
    865 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
    866 
    867 ||INTERFACE ||TIME_DEFINITIONS ||
    868 ||1..1 ||Nominal_days_in_year: Real = 365.24 ||Used for conversions of durations containing years to days and / or seconds. ||
    869 ||1..1 ||Days_in_week: Integer = 7 ||||
    870 ||1..1 ||Months_in_year: Integer = 12 ||||
    871 ||1..1 ||Min_timezone_hour: Integer ensure Result = 12 ||Minimum hour value of a timezone (note that the -ve sign is supplied in the ISO8601_TIMEZONE class). ||
    872 ||1..1 ||Max_timezone_hour: Integer ensure Result = 13 ||Maximum hour value of a timezone. ||
    873 ||Functions ||Signature ||Meaning ||
    874 ||||valid_year (y: Integer): Boolean ensure Result = y >= 0 ||True if y >= 0 ||
    875 ||||valid_month (m: Integer): Boolean ensure Result = m >= 1 and m <= Months_in_year ||True if m >= 1 and m <= Months_in_year ||
    876 ||||valid_day (y, m, d: Integer): Boolean ensure Result = d >= 1 and d <= days_in_month(m, y) ||True if d >= 1 and d <= days_in_month(m, y) ||
    877 ||||valid_hour (h, m, s: Integer): Boolean ensure Result = (h >= 0 and h < Hours_in_day) or (h = Hours_in_day and m = 0 and s = 0) ||True if (h >= 0 and h < Hours_in_day) or (h = Hours_in_day and m = 0 and s = 0) ||
    878 ||||valid_minute (m: Integer): Boolean ensure Result = m >= 0 and m < Minutes_in_hour ||True if m >= 0 and m < Minutes_in_hour ||
     812[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
     813
     814||INTERFACE||TIME_DEFINITIONS||
     815||1..1||Nominal_days_in_year: Real = 365.24||Used for conversions of durations containing years to days and / or seconds.||
     816||1..1||Days_in_week: Integer = 7||||
     817||1..1||Months_in_year: Integer = 12||||
     818||1..1||Min_timezone_hour: Integer ensure Result = 12||Minimum hour value of a timezone (note that the -ve sign is supplied in the ISO8601_TIMEZONE class).||
     819||1..1||Max_timezone_hour: Integer ensure Result = 13||Maximum hour value of a timezone.||
     820||Functions||Signature||Meaning||
     821||||valid_year (y: Integer): Boolean ensure Result = y >= 0||True if y >= 0||
     822||||valid_month (m: Integer): Boolean ensure Result = m >= 1 and m <= Months_in_year||True if m >= 1 and m <= Months_in_year||
     823||||valid_day (y, m, d: Integer): Boolean ensure Result = d >= 1 and d <= days_in_month(m, y)||True if d >= 1 and d <= days_in_month(m, y)||
     824||||valid_hour (h, m, s: Integer): Boolean ensure Result = (h >= 0 and h < Hours_in_day) or (h = Hours_in_day and m = 0 and s = 0)||True if (h >= 0 and h < Hours_in_day) or (h = Hours_in_day and m = 0 and s = 0)||
     825||||valid_minute (m: Integer): Boolean ensure Result = m >= 0 and m < Minutes_in_hour||True if m >= 0 and m < Minutes_in_hour||
    879826
    880827Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 24 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
     
    882829[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Assumed Types Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    883830
    884 
    885 ||INTERFACE ||TIME_DEFINITIONS ||
    886 ||||valid_second (s: Integer): Boolean ensure Result = s >= 0 and s < Seconds_in_minute ||True if s >= 0 and s < Seconds_in_minute ||
    887 ||||valid_fractional_second (fs: Double): Boolean ensure Result = fs >= 0.0 and fs < 1.0 ||True if fs >= 0.0 and fs < 1.0 ||
    888 ||Invariants ||||
    889 
    890 3.4.2 ISO8601_DATE Class
    891 
    892 
    893  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
    894 
    895 ||INTERFACE ||ISO8601_DATE ||
    896 ||Purpose ||Represents an absolute point in time, as measured on the Gregorian calendar, and specified only to the day. ||
    897 ||Inherit ||ORDERED, TIME_DEFINITIONS ||
    898 ||Function ||Signature ||Meaning ||
    899 ||||as_string: String ||ISO8601 string for date, in format YYYYMMDD or YYYY-MM-DD, or a partial invariant. See valid_iso8601_date for validity. ||
    900 ||||year: Integer ||Year. ||
    901 ||||month: Integer require not month_unknown ||Month in year. ||
    902 ||||day: Integerrequire not day_unknown ||Day in month. ||
    903 ||||month_unknown: Boolean ||Indicates whether month in year is unknown. If so, the date is of the form “YYYY”. ||
    904 ||||day_unknown: Boolean ||Indicates whether day in month is unknown. If so, and month is known, the date is of the form “YYYY-MM” or “YYYYMM”. ||
    905 ||||is_partial: Boolean ||True if this date is partial, i.e. if day or more is missing. ||
     831||INTERFACE||TIME_DEFINITIONS||
     832||||valid_second (s: Integer): Boolean ensure Result = s >= 0 and s < Seconds_in_minute||True if s >= 0 and s < Seconds_in_minute||
     833||||valid_fractional_second (fs: Double): Boolean ensure Result = fs >= 0.0 and fs < 1.0||True if fs >= 0.0 and fs < 1.0||
     834||Invariants||||
     835
     8363.4.2 ISO8601_DATE Class
     837
     838  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
     839
     840||INTERFACE||ISO8601_DATE||
     841||Purpose||Represents an absolute point in time, as measured on the Gregorian calendar, and specified only to the day.||
     842||Inherit||ORDERED, TIME_DEFINITIONS||
     843||Function||Signature||Meaning||
     844||||as_string: String||ISO8601 string for date, in format YYYYMMDD or YYYY-MM-DD, or a partial invariant. See valid_iso8601_date for validity.||
     845||||year: Integer||Year.||
     846||||month: Integer require not month_unknown||Month in year.||
     847||||day: Integerrequire not day_unknown||Day in month.||
     848||||month_unknown: Boolean||Indicates whether month in year is unknown. If so, the date is of the form “YYYY”.||
     849||||day_unknown: Boolean||Indicates whether day in month is unknown. If so, and month is known, the date is of the form “YYYY-MM” or “YYYYMM”.||
     850||||is_partial: Boolean||True if this date is partial, i.e. if day or more is missing.||
    906851
    907852[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 25 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
     
    909854Assumed Types [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    910855
    911 
    912 ||INTERFACE ||ISO8601_DATE ||
    913 ||||is_extended: Boolean ||True if this date uses ‘-’ separators. ||
    914 ||||infix ‘<’ (other: like Current): Boolean ||Arithmetic comparison with other date. True if this date is closer to the origin than other. ||
    915 ||||valid_iso8601_date ||String is a valid ISO 8601 date, i.e. takes the ||
    916 ||||(s: String): Boolean ||complete form: • YYYYMMDD or the extended form: • YYYY-MM-DD or one of the partial forms: • YYYYMM • YYYY or the equivalent extended form: • YYYY-MM Where: • YYYY is the string form of any positive number in the range “0000” - “9999” (zero-filled to four digits) • MM is “01” “12” (zero-filled to two digits) • DD is “01” - “31” (zero-filled to two digits) The combinations of YYYY, MM, DD numbers must be correct with respect to the Gregorian calendar. ||
    917 ||Invariants ||Year_valid: valid_year(year) Month_valid: not month_unknown implies valid_month(month) Day_valid: not day_unknown implies valid_day(year, month, day) Partial_validity: month_unknown implies day_unknown ||
    918 
    919 3.4.3 ISO8601_TIME Class
    920 
    921 
    922 ||INTERFACE ||ISO8601_TIME ||
    923 ||Purpose ||Represents an absolute point in time from an origin usually interpreted as meaning the start of the current day, specified to the second. A small deviation to the ISO !8601:2004 standard in this class is that the time !24:00:00 is not allowed, for consistency with ISO8601_DATE_TIME. ||
    924 ||Inherit ||ORDERED, TIME_DEFINITIONS ||
    925 ||Function ||Signature ||Meaning ||
     856||INTERFACE||ISO8601_DATE||
     857||||is_extended: Boolean||True if this date uses ‘-’ separators.||
     858||||infix ‘<’ (other: like Current): Boolean||Arithmetic comparison with other date. True if this date is closer to the origin than other.||
     859||||valid_iso8601_date||String is a valid ISO 8601 date, i.e. takes the||
     860||||(s: String): Boolean||complete form: • YYYYMMDD or the extended form: • YYYY-MM-DD or one of the partial forms: • YYYYMM • YYYY or the equivalent extended form: • YYYY-MM Where: • YYYY is the string form of any positive number in the range “0000” - “9999” (zero-filled to four digits) • MM is “01” “12” (zero-filled to two digits) • DD is “01” - “31” (zero-filled to two digits) The combinations of YYYY, MM, DD numbers must be correct with respect to the Gregorian calendar.||
     861||Invariants||Year_valid: valid_year(year) Month_valid: not month_unknown implies valid_month(month) Day_valid: not day_unknown implies valid_day(year, month, day) Partial_validity: month_unknown implies day_unknown||
     862
     8633.4.3 ISO8601_TIME Class
     864
     865||INTERFACE||ISO8601_TIME||
     866||Purpose||Represents an absolute point in time from an origin usually interpreted as meaning the start of the current day, specified to the second. A small deviation to the ISO !8601:2004 standard in this class is that the time !24:00:00 is not allowed, for consistency with ISO8601_DATE_TIME.||
     867||Inherit||ORDERED, TIME_DEFINITIONS||
     868||Function||Signature||Meaning||
    926869
    927870Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 26 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    928871
    929 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     872[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    930873
    931874[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Assumed Types Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    932875
    933 
    934 ||INTERFACE ||||ISO8601_TIME ||
    935 ||||as_string: String ||||ISO8601 string for time, i.e. in form: hhmmss[,sss][Z|±hh[mm]] or the extended form: hh:mm:ss[,sss][Z|±hh[mm]], or a partial invariant. See valid_iso8601_time for validity. ||
    936 ||||hour: Integer ||||Hour in day, in 24-hour time. ||
    937 ||||minute: Integer require not minute_unknown ||||Minute in hour. ||
    938 ||||second: Integer require not second_unknown ||||Second in minute. ||
    939 ||||fractional_second: Double require not second_unknown ||||Fractional seconds. ||
    940 ||||has_fractional_second: Boolean ||||True if the fractional_second part is signficant (i.e. even if = 0.0). ||
    941 ||||timezone: ISO8601_TIMEZONE minute_unknown: Boolean ||||Time zone; may be Void. Indicates whether minute is unknown. If so, the time is of the form “hh”. ||
     876||INTERFACE||||ISO8601_TIME||
     877||||as_string: String||||ISO8601 string for time, i.e. in form: hhmmss[,sss][Z|±hh[mm]] or the extended form: hh:mm:ss[,sss][Z|±hh[mm]], or a partial invariant. See valid_iso8601_time for validity.||
     878||||hour: Integer||||Hour in day, in 24-hour time.||
     879||||minute: Integer require not minute_unknown||||Minute in hour.||
     880||||second: Integer require not second_unknown||||Second in minute.||
     881||||fractional_second: Double require not second_unknown||||Fractional seconds.||
     882||||has_fractional_second: Boolean||||True if the fractional_second part is signficant (i.e. even if = 0.0).||
     883||||timezone: ISO8601_TIMEZONE minute_unknown: Boolean||||Time zone; may be Void. Indicates whether minute is unknown. If so, the time is of the form “hh”.||
    942884||||
    943 ||||second_unknown: Boolean ||||Indicates whether second is unknown. If so and month is known, the time is of the form “!hh:mm” or “hhmm”. ||
    944 ||||is_partial: Boolean ||||True if this time is partial, i.e. if seconds or more is missing. ||
    945 ||||is_extended: Boolean ||||True if this time uses ‘:’ separators. ||
    946 ||||is_decimal_sign_comma: Boolean ||||True if this time has a decimal part indicated by ‘,’ (comma) rather than ‘.’ (period). ||
    947 ||||infix ‘<’ (other: like Current): Boolean ||||Arithmetic comparison with other time. True if this date is closer to previous midnight than other. ||
     885||||second_unknown: Boolean||||Indicates whether second is unknown. If so and month is known, the time is of the form “!hh:mm” or “hhmm”.||
     886||||is_partial: Boolean||||True if this time is partial, i.e. if seconds or more is missing.||
     887||||is_extended: Boolean||||True if this time uses ‘:’ separators.||
     888||||is_decimal_sign_comma: Boolean||||True if this time has a decimal part indicated by ‘,’ (comma) rather than ‘.’ (period).||
     889||||infix ‘<’ (other: like Current): Boolean||||Arithmetic comparison with other time. True if this date is closer to previous midnight than other.||
    948890
    949891[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 27 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    950892
    951  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     893  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    952894
    953895Assumed Types [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    954896
    955 
    956 ||INTERFACE ||ISO8601_TIME ||
    957 ||||valid_iso8601_time ||String is a valid ISO 8601 date, i.e. takes the ||
    958 ||||(s: String): Boolean ||form: • hhmmss[,sss][Z | ±hh[mm]] or the extended form: • !hh:mm:ss[,sss][Z | ±hh[mm]] or one of the partial forms: • hhmm or hh or the extended form: • !hh:mm with an additional optional timezone indicator of: • Z or ±hh[mm] Where: • hh is “00” - “23” (0-filled to two digits) • mm is “00” - “59” (0-filled to two digits) • ss is “00” - “60” (0-filled to two digits) • sss is any numeric string, representing an optional fractional second • Z is a literal meaning UTC (modern replacement for GMT), i.e. timezone +0000 • ±hh[mm], i.e. +hhmm, +hh, -hhmm, -hh indicating the timezone. ||
    959 ||Invariants ||Hour_valid: valid_hour(hour, minute, second) Minute_valid: not minute_unknown implies valid_minute(minute) Second_valid: not second_unknown implies valid_second(second) Fractional_second_valid: has_fractional_second implies (not second_unknown and valid_fractional_second(fractional_second)) Partial_validity: minute_unknown implies second_unknown ||
    960 
    961 3.4.4 ISO8601_DATE_TIME Class
    962 
    963 
    964 ||INTERFACE ||ISO8601_DATE_TIME ||
    965 ||Purpose ||Represents an absolute point in time, specified to the second. Note that this class includes 2 deviations from ISO !8601:2004: • for partial date/times, any part of the date/time up to the month may be missing, not just seconds and minutes as in the standard; • the time !24:00:00 is not allowed, since it would mean the date was really on the next day. ||
    966 ||Inherit ||ORDERED, TIME_DEFINITIONS ||
    967 ||Function ||Signature ||Meaning ||
     897||INTERFACE||ISO8601_TIME||
     898||||valid_iso8601_time||String is a valid ISO 8601 date, i.e. takes the||
     899||||(s: String): Boolean||form: • hhmmss[,sss][Z | ±hh[mm]] or the extended form: • !hh:mm:ss[,sss][Z | ±hh[mm]] or one of the partial forms: • hhmm or hh or the extended form: • !hh:mm with an additional optional timezone indicator of: • Z or ±hh[mm] Where: • hh is “00” - “23” (0-filled to two digits) • mm is “00” - “59” (0-filled to two digits) • ss is “00” - “60” (0-filled to two digits) • sss is any numeric string, representing an optional fractional second • Z is a literal meaning UTC (modern replacement for GMT), i.e. timezone +0000 • ±hh[mm], i.e. +hhmm, +hh, -hhmm, -hh indicating the timezone.||
     900||Invariants||Hour_valid: valid_hour(hour, minute, second) Minute_valid: not minute_unknown implies valid_minute(minute) Second_valid: not second_unknown implies valid_second(second) Fractional_second_valid: has_fractional_second implies (not second_unknown and valid_fractional_second(fractional_second)) Partial_validity: minute_unknown implies second_unknown||
     901
     9023.4.4 ISO8601_DATE_TIME Class
     903
     904||INTERFACE||ISO8601_DATE_TIME||
     905||Purpose||Represents an absolute point in time, specified to the second. Note that this class includes 2 deviations from ISO !8601:2004: • for partial date/times, any part of the date/time up to the month may be missing, not just seconds and minutes as in the standard; • the time !24:00:00 is not allowed, since it would mean the date was really on the next day.||
     906||Inherit||ORDERED, TIME_DEFINITIONS||
     907||Function||Signature||Meaning||
    968908
    969909Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 28 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    970910
    971 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     911[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    972912
    973913[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Assumed Types Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    974914
    975 
    976  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
    977 
    978 ||INTERFACE ||ISO8601_DATE_TIME ||
    979 ||||as_string: String ensure valid_iso8601_date_time(Result) ||ISO8601 string for date/time, in format YYYYMMDDThhmmss[,sss][Z | ±hh[mm]] or in extended format !YYYY-MM-DDThh:mm:ss[,sss][Z | ±hh[mm]] or a partial variant; see valid_iso8601_date_time() below. ||
    980 ||||year: Integer ||year ||
    981 ||||month: Integerrequire not month_unknown ||month in year ||
    982 ||||day: Integerrequire not day_unknown ||day in month ||
    983 ||||hour: Integerrequire not hour_unknown ||hour in day ||
    984 ||||minute: Integer require not minute_unknown ||minute in hour ||
    985 ||||second: Integerrequire not second_unknown ||second in minute ||
    986 ||||fractional_second: Double require has_fractional_second ||fractional seconds ||
    987 ||||has_fractional_second: Boolean ||True if the fractional_second part is signficant (i.e. even if = 0.0). ||
    988 ||||timezone: ISO8601_TIMEZONE ||Timezone; may be Void. ||
    989 ||||month_unknown: Boolean ||Indicates whether month in year is unknown. ||
    990 ||||day_unknown: Boolean ||Indicates whether day in month is unknown. ||
    991 ||||hour_unknown: Boolean ||Indicates whether hour in day is known. ||
    992 ||||minute_unknown: Boolean ||Indicates whether minute in hour is known. ||
    993 ||||second_unknown: Boolean ||Indicates whether minute in hour is known. ||
    994 ||||is_partial: Boolean ||True if this date is partial, i.e. if seconds or more is missing. ||
     915  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
     916
     917||INTERFACE||ISO8601_DATE_TIME||
     918||||as_string: String ensure valid_iso8601_date_time(Result)||ISO8601 string for date/time, in format YYYYMMDDThhmmss[,sss][Z | ±hh[mm]] or in extended format !YYYY-MM-DDThh:mm:ss[,sss][Z | ±hh[mm]] or a partial variant; see valid_iso8601_date_time() below.||
     919||||year: Integer||year||
     920||||month: Integerrequire not month_unknown||month in year||
     921||||day: Integerrequire not day_unknown||day in month||
     922||||hour: Integerrequire not hour_unknown||hour in day||
     923||||minute: Integer require not minute_unknown||minute in hour||
     924||||second: Integerrequire not second_unknown||second in minute||
     925||||fractional_second: Double require has_fractional_second||fractional seconds||
     926||||has_fractional_second: Boolean||True if the fractional_second part is signficant (i.e. even if = 0.0).||
     927||||timezone: ISO8601_TIMEZONE||Timezone; may be Void.||
     928||||month_unknown: Boolean||Indicates whether month in year is unknown.||
     929||||day_unknown: Boolean||Indicates whether day in month is unknown.||
     930||||hour_unknown: Boolean||Indicates whether hour in day is known.||
     931||||minute_unknown: Boolean||Indicates whether minute in hour is known.||
     932||||second_unknown: Boolean||Indicates whether minute in hour is known.||
     933||||is_partial: Boolean||True if this date is partial, i.e. if seconds or more is missing.||
    995934
    996935[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 29 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
     
    998937Assumed Types [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    999938
    1000 
    1001 ||INTERFACE ||ISO8601_DATE_TIME ||
    1002 ||||is_decimal_sign_comma: Boolean ||True if this time has a decimal part indicated by ‘,’ (comma) rather than ‘.’ (period). ||
    1003 ||||infix ‘<’ (other: like Current): Boolean ||Arithmetic comparison with other date/time. True if this date/time is closer to origin than other. ||
    1004 ||||is_extended: Boolean ||True if this date/time uses ‘-’, ‘:’ separators. ||
    1005 ||||valid_iso8601_date_time ||String is a valid ISO 8601 date-time, i.e. ||
    1006 ||||(s: String): Boolean ||takes the form: • YYYYMMDDThhmmss[,sss] [Z | ±hh[mm]] or the extended form: • !YYYY-MM-DDThh:mm:ss[,sss] [Z | ±hh[mm]] or one of the partial forms: • YYYYMMDDThhmm • YYYYMMDDThh or the equivalent extended forms: • !YYYY-MM-DDThh:mm • YYYY-MM-DDThh (meanings as in DV_DATE, DV_TIME) and the values in each field are valid. ||
    1007 ||Invariants ||Year_valid: valid_year(year) Month_valid: valid_month(month) Day_valid: valid_day(year, month, day) Hour_valid: valid_hour(hour, minute, second) Minute_valid: not minute_unknown implies valid_minute(minute) Second_valid: not second_unknown implies valid_second(second) Fractional_second_valid: has_fractional_second implies (not second_unknown and valid_fractional_second(fractional_second)) Partial_validity_year: not month_unknown Partial_validity_month: not month_unknown Partial_validity_day: not day_unknown Partial_validity_hour: not hour_unknown Partial_validity_minute: minute_unknown implies second_unknown ||
    1008 
    1009 3.4.5 ISO8601_TIMEZONE Class
     939||INTERFACE||ISO8601_DATE_TIME||
     940||||is_decimal_sign_comma: Boolean||True if this time has a decimal part indicated by ‘,’ (comma) rather than ‘.’ (period).||
     941||||infix ‘<’ (other: like Current): Boolean||Arithmetic comparison with other date/time. True if this date/time is closer to origin than other.||
     942||||is_extended: Boolean||True if this date/time uses ‘-’, ‘:’ separators.||
     943||||valid_iso8601_date_time||String is a valid ISO 8601 date-time, i.e.||
     944||||(s: String): Boolean||takes the form: • YYYYMMDDThhmmss[,sss] [Z | ±hh[mm]] or the extended form: • !YYYY-MM-DDThh:mm:ss[,sss] [Z | ±hh[mm]] or one of the partial forms: • YYYYMMDDThhmm • YYYYMMDDThh or the equivalent extended forms: • !YYYY-MM-DDThh:mm • YYYY-MM-DDThh (meanings as in DV_DATE, DV_TIME) and the values in each field are valid.||
     945||Invariants||Year_valid: valid_year(year) Month_valid: valid_month(month) Day_valid: valid_day(year, month, day) Hour_valid: valid_hour(hour, minute, second) Minute_valid: not minute_unknown implies valid_minute(minute) Second_valid: not second_unknown implies valid_second(second) Fractional_second_valid: has_fractional_second implies (not second_unknown and valid_fractional_second(fractional_second)) Partial_validity_year: not month_unknown Partial_validity_month: not month_unknown Partial_validity_day: not day_unknown Partial_validity_hour: not hour_unknown Partial_validity_minute: minute_unknown implies second_unknown||
     946
     9473.4.5 ISO8601_TIMEZONE Class
    1010948
    1011949Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 30 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    1012950
    1013 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     951[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    1014952
    1015953[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Assumed Types Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    1016954
    1017 
    1018 ||INTERFACE ||ISO8601_TIMEZONE ||
    1019 ||Inherit ||TIME_DEFINITIONS ||
    1020 ||Function ||Signature ||Meaning ||
    1021 ||||as_string: String ||ISO8601 timezone string, in format • Z | ±hh[mm] where: • hh is “00” - “23” (0-filled to two digits) • mm is “00” - “59” (0-filled to two digits) • Z is a literal meaning UTC (modern replacement for GMT), i.e. timezone +0000 ||
    1022 ||||hour: Integer ||Hour part of timezone - in the range 00 - 13 ||
    1023 ||||minute: Integer require not minute_unknown ||Minute part of timezone. Generally 00 or 30. ||
    1024 ||||sign: Integer ||Direction of timezone expresssed as +1 or -1. ||
    1025 ||||is_gmt: Boolean ||True if timezone is UTC, i.e. +0000 ||
    1026 ||||minute_unknown: Boolean ||Indicates whether minute part known. ||
    1027 ||Invariants ||Min_hour_valid: sign = -1 implies hour > 0 and hour <= Min_timezone_hour Max_hour_valid: sign = 1 implies hour > 0 and hour <= Max_timezone_hour Minute_valid: not minute_unknown implies valid_minute(minute) Sign_valid: sign = 1 or sign = -1 ||
    1028 
    1029 3.4.6 ISO8601_DURATION Class
    1030 
    1031 
    1032 ||INTERFACE ||ISO8601_DURATION ||
    1033 ||Purpose ||Represents a period of time corresponding to a difference between two time-points. ||
    1034 ||Inherit ||ORDERED, TIME_DEFINITIONS ||
    1035 ||Function ||Signature ||Meaning ||
    1036 ||||as_string: String ||ISO8601 string for duration, in format • P[nnY][nnM][nnW][nnD][T[nnH][nnM][nnS]] ||
    1037 ||||years: Integer ||number of years of nominal 365-day length ||
    1038 ||||months: Integer ||number of months of nominal 30 day length ||
    1039 ||||weeks: Integer ||number of 7 day weeks ||
     955||INTERFACE||ISO8601_TIMEZONE||
     956||Inherit||TIME_DEFINITIONS||
     957||Function||Signature||Meaning||
     958||||as_string: String||ISO8601 timezone string, in format • Z | ±hh[mm] where: • hh is “00” - “23” (0-filled to two digits) • mm is “00” - “59” (0-filled to two digits) • Z is a literal meaning UTC (modern replacement for GMT), i.e. timezone +0000||
     959||||hour: Integer||Hour part of timezone - in the range 00 - 13||
     960||||minute: Integer require not minute_unknown||Minute part of timezone. Generally 00 or 30.||
     961||||sign: Integer||Direction of timezone expresssed as +1 or -1.||
     962||||is_gmt: Boolean||True if timezone is UTC, i.e. +0000||
     963||||minute_unknown: Boolean||Indicates whether minute part known.||
     964||Invariants||Min_hour_valid: sign = -1 implies hour > 0 and hour <= Min_timezone_hour Max_hour_valid: sign = 1 implies hour > 0 and hour <= Max_timezone_hour Minute_valid: not minute_unknown implies valid_minute(minute) Sign_valid: sign = 1 or sign = -1||
     965
     9663.4.6 ISO8601_DURATION Class
     967
     968||INTERFACE||ISO8601_DURATION||
     969||Purpose||Represents a period of time corresponding to a difference between two time-points.||
     970||Inherit||ORDERED, TIME_DEFINITIONS||
     971||Function||Signature||Meaning||
     972||||as_string: String||ISO8601 string for duration, in format • P[nnY][nnM][nnW][nnD][T[nnH][nnM][nnS]]||
     973||||years: Integer||number of years of nominal 365-day length||
     974||||months: Integer||number of months of nominal 30 day length||
     975||||weeks: Integer||number of 7 day weeks||
    1040976
    1041977[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 31 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    1042978
    1043  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     979  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    1044980
    1045981Assumed Types [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    1046982
    1047 
    1048 ||INTERFACE ||ISO8601_DURATION ||
    1049 ||||days: Integer ||number of 24 hour days ||
    1050 ||||hours: Integer ||number of 60 minute hours ||
    1051 ||||minutes: Integer ||number of 60 second minutes ||
    1052 ||||seconds: Integer ||number of seconds ||
    1053 ||||fractional_second: Double ||fractional seconds ||
    1054 ||||infix ‘<’ (other: like Current): Boolean ||Arithmetic comparison with other duration. True if this duration is smaller than other. ||
    1055 ||||valid_iso8601_duration (s: String): Boolean ||String is a valid ISO 8601 duration, i.e. takes the form: • P[nnY][nnM][nnW][nnD][T[nnH][nnM][nnS]] Where each nn represents a number of years, months, etc. nnW represents a number of 7day weeks. Note: allowing the W designator in the same expression as other designators is an exception to the published standard, but necessary in clinical information (typically for representing pregnancy duration). ||
    1056 ||||is_decimal_sign_comma: Boolean ||True if this time has a decimal part indicated by ‘,’ (comma) rather than ‘.’ (period). ||
    1057 ||||to_seconds: Double ||Total number of seconds equivalent (including fractional) of entire duration. ||
    1058 ||Invariants ||years_valid: years >= 0 months_valid: months >= 0 weeks_valid: weeks >= 0 days_valid: days >= 0 hours_valid: hours >= 0 minutes_valid: minutes >= 0 seconds_valid: seconds >= 0 fractional_second_valid: fractional_second >= 0.0 and fractional_second < 1.0 ||
     983||INTERFACE||ISO8601_DURATION||
     984||||days: Integer||number of 24 hour days||
     985||||hours: Integer||number of 60 minute hours||
     986||||minutes: Integer||number of 60 second minutes||
     987||||seconds: Integer||number of seconds||
     988||||fractional_second: Double||fractional seconds||
     989||||infix ‘<’ (other: like Current): Boolean||Arithmetic comparison with other duration. True if this duration is smaller than other.||
     990||||valid_iso8601_duration (s: String): Boolean||String is a valid ISO 8601 duration, i.e. takes the form: • P[nnY][nnM][nnW][nnD][T[nnH][nnM][nnS]] Where each nn represents a number of years, months, etc. nnW represents a number of 7day weeks. Note: allowing the W designator in the same expression as other designators is an exception to the published standard, but necessary in clinical information (typically for representing pregnancy duration).||
     991||||is_decimal_sign_comma: Boolean||True if this time has a decimal part indicated by ‘,’ (comma) rather than ‘.’ (period).||
     992||||to_seconds: Double||Total number of seconds equivalent (including fractional) of entire duration.||
     993||Invariants||years_valid: years >= 0 months_valid: months >= 0 weeks_valid: weeks >= 0 days_valid: days >= 0 hours_valid: hours >= 0 minutes_valid: minutes >= 0 seconds_valid: seconds >= 0 fractional_second_valid: fractional_second >= 0.0 and fractional_second < 1.0||
    1059994
    1060995Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 32 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    1061996
    1062 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     997[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    1063998
    1064999[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Identification Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    10651000
    1066 == Identification Package  == #LinkTarget_17411
    1067 
    1068 === 4.1 Overview  === #LinkTarget_17413
    1069 The rm.support.identification package describes a model of references and identifiers for information entities and is illustrated in [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_17418 FIGURE 5] .
    1070 
    1071 identification
    1072 
    1073 FIGURE 5  rm.support.identification Package
    1074 
    1075 
    1076 === 4.1.1 Requirements  === #LinkTarget_17420
    1077 Identification of entities both in the real world and in information systems is a non-trivial problem. The needs for identification across systems in a health information environment include the following:
    1078 
    1079 
    1080  * real world identifiers such as social security numbers, veterans affairs ids etc can be recorded as required by health care facilities, enterprise policies, or legislation;
    1081  * identifiers for informational entities which represent real world entities or processes should be unique;
    1082  * it should be possible to determine if two identifiers refer to information entities that represent the same real world entity, even if instances of the information entities are maintained in different systems;
    1083  * versions or changes to real-world entity-linked informational entities (which may create new information instances) should be accounted for in two ways:
     1001== Identification Package == #LinkTarget_17411
     1002=== 4.1 Overview === #LinkTarget_17413
     1003The rm.support.identification package describes a model of references and identifiers for information entities and is illustrated in [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_17418 FIGURE 5] .
     1004
     1005identification
     1006
     1007FIGURE 5  rm.support.identification Package
     1008
     1009=== 4.1.1 Requirements === #LinkTarget_17420
     1010Identification of entities both in the real world and in information systems is a non-trivial problem. The needs for identification across systems in a health information environment include the following:
     1011
     1012 * real world identifiers such as social security numbers, veterans affairs ids etc can be recorded as required by health care facilities, enterprise policies, or legislation;
     1013 * identifiers for informational entities which represent real world entities or processes should be unique;
     1014 * it should be possible to determine if two identifiers refer to information entities that represent the same real world entity, even if instances of the information entities are maintained in different systems;
     1015 * versions or changes to real-world entity-linked informational entities (which may create new information instances) should be accounted for in two ways:
    10841016
    10851017[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 33 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    10861018
    1087  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1019  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    10881020
    10891021Identification Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    10901022
    1091 -       it should be possible to tell if two identifiers refer to distinct versions of the same
    1092 
    1093 informational entity in the same version tree;
    1094 
    1095 -       it should not be possible to confuse same-named versions of informational entities
    1096 
    1097 maintained in multiple systems which purport to represent the same real world
    1098 
    1099 entity. E.g. there is no guarantee that two systems’ “latest” version of the Person
    1100 
    1101 “Dr Jones” is the same.
    1102 
    1103 Medico-legal use of information relies on previous states of information being
    1104 
    1105 distinguishable from other previous states and the current state.
    1106 
    1107 •       It should be possible for an entity in one system or service (such as the EHR) to refer to an entity in another system or service in such a way that: -the target of the reference is easily finable within the shared environment, and
    1108 
    1109 -       the reference does is valid regardless of the physical architecture of servers and applications.
    1110 
    1111 The following subsections describe some of the features and challenges of identification.
    1112 
    1113 Identification of Real World Entities (RWEs)
    1114 
    1115 Real world entities such as people, car engines, invoices, and appointments can all be assigned identifiers. Although many of these are designed to be unique within a jurisdiction, they are often not, due to data entry errors, bad design (ids that are too small or incorporate some non-unique characteristic of the identified entities), bad process (e.g. non-synchronised id issuing points); identity theft (e.g. via theft of documents of proof or hacking). In general, while some real world identifiers (RWIs) are “nearly unique”, none can be guaranteed so. It should also be the case that if two RWE identifiers are equal, they refer to the same RWE, but this is often not the case. For practical purposes, RWIs cannot be regarded as computationally safe for making the inferences described here.
    1116 
    1117 Identification of Informational Entities (IEs)
    1118 
    1119 As soon as information systems are used to record facts about RWEs, the situation becomes more complex because of the intangible nature of information. In particular:
    1120 
    1121 
    1122  * the same RWE can be represented simultaneously on more than one system (‘spatial multiplicity’);
    1123  * the same RWE may be represented by more than one “version” of the same IE in a system (‘temporal multiplicity’).
    1124 
    1125 At first sight, it appears that there can also be purely informational entities, i.e. IEs which do not refer to any RWE, such as books, online-only documents and software. However, as soon as one considers an example it becomes clear that there is always a notional ‘definitive’ or ‘authoritative’ (i.e. trusted) version of every such entity. These entities can better be understood as ‘virtual RWEs’. Thus it can still be said that multiple IEs may refer to any given RWE.
    1126 
    1127 The underlying reason for the multiplicity of IEs is that ‘reality’ - time and space - in computer systems is not continuous but discrete, and each ‘entity’ is in fact just a snapshot of certain attribute values of a RWE, at a point in time, in a particular system. If identifiers are assigned to IEs without regard to versions or duplicates, then no assertion can be made about the identified RWE when two IE ids are compared.
    1128 
    1129 Identification of Versions
    1130 
    1131 The notion of ‘versioning’ applies only to informational entities, i.e. distinct instances of content each representing a snapshot of some logical entity. Where such instances are stored and managed in versioned containers within a versioning system of some kind, explicit identification of the versions is
     1023-        it should be possible to tell if two identifiers refer to distinct versions of the same
     1024
     1025informational entity in the same version tree;
     1026
     1027-        it should not be possible to confuse same-named versions of informational entities
     1028
     1029maintained in multiple systems which purport to represent the same real world
     1030
     1031entity. E.g. there is no guarantee that two systems’ “latest” version of the Person
     1032
     1033“Dr Jones” is the same.
     1034
     1035Medico-legal use of information relies on previous states of information being
     1036
     1037distinguishable from other previous states and the current state.
     1038
     1039•         It should be possible for an entity in one system or service (such as the EHR) to refer to an entity in another system or service in such a way that: -the target of the reference is easily finable within the shared environment, and
     1040
     1041-        the reference does is valid regardless of the physical architecture of servers and applications.
     1042
     1043The following subsections describe some of the features and challenges of identification.
     1044
     1045Identification of Real World Entities (RWEs)
     1046
     1047Real world entities such as people, car engines, invoices, and appointments can all be assigned identifiers. Although many of these are designed to be unique within a jurisdiction, they are often not, due to data entry errors, bad design (ids that are too small or incorporate some non-unique characteristic of the identified entities), bad process (e.g. non-synchronised id issuing points); identity theft (e.g. via theft of documents of proof or hacking). In general, while some real world identifiers (RWIs) are “nearly unique”, none can be guaranteed so. It should also be the case that if two RWE identifiers are equal, they refer to the same RWE, but this is often not the case. For practical purposes, RWIs cannot be regarded as computationally safe for making the inferences described here.
     1048
     1049Identification of Informational Entities (IEs)
     1050
     1051As soon as information systems are used to record facts about RWEs, the situation becomes more complex because of the intangible nature of information. In particular:
     1052
     1053 * the same RWE can be represented simultaneously on more than one system (‘spatial multiplicity’);
     1054 * the same RWE may be represented by more than one “version” of the same IE in a system (‘temporal multiplicity’).
     1055
     1056At first sight, it appears that there can also be purely informational entities, i.e. IEs which do not refer to any RWE, such as books, online-only documents and software. However, as soon as one considers an example it becomes clear that there is always a notional ‘definitive’ or ‘authoritative’ (i.e. trusted) version of every such entity. These entities can better be understood as ‘virtual RWEs’. Thus it can still be said that multiple IEs may refer to any given RWE.
     1057
     1058The underlying reason for the multiplicity of IEs is that ‘reality’ - time and space - in computer systems is not continuous but discrete, and each ‘entity’ is in fact just a snapshot of certain attribute values of a RWE, at a point in time, in a particular system. If identifiers are assigned to IEs without regard to versions or duplicates, then no assertion can be made about the identified RWE when two IE ids are compared.
     1059
     1060Identification of Versions
     1061
     1062The notion of ‘versioning’ applies only to informational entities, i.e. distinct instances of content each representing a snapshot of some logical entity. Where such instances are stored and managed in versioned containers within a versioning system of some kind, explicit identification of the versions is
    11321063
    11331064Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 34 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    11341065
    1135 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     1066[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    11361067
    11371068[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Identification Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    11381069
    1139 required. The requirements are discussed in detail in the Common IM, change_control package. They can be summarised as follows:
    1140 
    1141 
    1142  * it must be possible to distinguish two versions of the same logical entity, i.e. know from the identifier if they are the same or different versions of the same thing;
    1143  * it must be possible to distinguish two versions of the same logical entity created in two distinct systems;
    1144  * it must be possible to tell the relationship between the items in a versioned lineage, from the version identifiers.
    1145 
    1146 Referencing of Informational Entities
    1147 
    1148 Within a distributed information environment, there is a need for entities not connected by direct references in the same memory space to be able to refer to each other. There are two competing requirements:
    1149 
    1150 
    1151  * that the separation of objects in a distributed computing environment not compromise the semantics of the model;
    1152  * that different types of information can be managed relatively independently; for example EHR and demographic information can be managed by different groups in an organisation or community, each with at least some freedom to change implementation and model details.
    1153 
    1154 
    1155 === 4.2 Design  === #LinkTarget_17533
    1156 This package models only informational identifiers, i.e. transparent identifiers understood by openEHR or related computational systems. Real World Entity Identifiers such as driver’s license numbers are modelled using the data type DV_IDENTIFIER. This is not to imply that such identifiers are any less systematic or well-managed than the system identifiers defined here, only that from the point of view of openEHR, they have the same status as other informational attributes such as name, address etc of a Person.
    1157 
    1158 A key design decision has been to choose a string representation for all identifiers, with subparts being made available by appropriate functions which perform simple parsing on the string. This ensures that the data representation of identifiers (e.g. in XML) is as small as possible, while not losing object-oriented typing.
    1159 
    1160 
    1161 === 4.2.1 Primitive Identifiers  === #LinkTarget_17538
    1162 Three kinds of types are defined in this package. The abstract UIDtype and its subtypes correspond to permanent, computationally reliable, primitive identifiers. Such identifiers are regarded as ‘primitive’ because they are treated as having no further internal structure, in the sense that part of such an identifier is not in general meaningful. The three subtypes UUID, ISO_OID and INTERNET_ID all have these properties, and are commonly accepted ways of uniquely identifying entities in computer systems. In openEHR (and generally in health informatics) they are usually used as parts of other identifiers.
    1163 
    1164 A consequence of the string representation approach used in these classes is that to set an attribute of type UID from a string value, as would be done when reading from a database, deserialising from XML or another text form, a piece of code that inspects the string structure has to be used in order to decide which of the subtypes of UID it is. This is a safe thing to do, since all three subtypes have mutually exclusive string patterns, and can easily be distinguished.
     1070required. The requirements are discussed in detail in the Common IM, change_control package. They can be summarised as follows:
     1071
     1072 * it must be possible to distinguish two versions of the same logical entity, i.e. know from the identifier if they are the same or different versions of the same thing;
     1073 * it must be possible to distinguish two versions of the same logical entity created in two distinct systems;
     1074 * it must be possible to tell the relationship between the items in a versioned lineage, from the version identifiers.
     1075
     1076Referencing of Informational Entities
     1077
     1078Within a distributed information environment, there is a need for entities not connected by direct references in the same memory space to be able to refer to each other. There are two competing requirements:
     1079
     1080 * that the separation of objects in a distributed computing environment not compromise the semantics of the model;
     1081 * that different types of information can be managed relatively independently; for example EHR and demographic information can be managed by different groups in an organisation or community, each with at least some freedom to change implementation and model details.
     1082
     1083=== 4.2 Design === #LinkTarget_17533
     1084This package models only informational identifiers, i.e. transparent identifiers understood by openEHR or related computational systems. Real World Entity Identifiers such as driver’s license numbers are modelled using the data type DV_IDENTIFIER. This is not to imply that such identifiers are any less systematic or well-managed than the system identifiers defined here, only that from the point of view of openEHR, they have the same status as other informational attributes such as name, address etc of a Person.
     1085
     1086A key design decision has been to choose a string representation for all identifiers, with subparts being made available by appropriate functions which perform simple parsing on the string. This ensures that the data representation of identifiers (e.g. in XML) is as small as possible, while not losing object-oriented typing.
     1087
     1088=== 4.2.1 Primitive Identifiers === #LinkTarget_17538
     1089Three kinds of types are defined in this package. The abstract UIDtype and its subtypes correspond to permanent, computationally reliable, primitive identifiers. Such identifiers are regarded as ‘primitive’ because they are treated as having no further internal structure, in the sense that part of such an identifier is not in general meaningful. The three subtypes UUID, ISO_OID and INTERNET_ID all have these properties, and are commonly accepted ways of uniquely identifying entities in computer systems. In openEHR (and generally in health informatics) they are usually used as parts of other identifiers.
     1090
     1091A consequence of the string representation approach used in these classes is that to set an attribute of type UID from a string value, as would be done when reading from a database, deserialising from XML or another text form, a piece of code that inspects the string structure has to be used in order to decide which of the subtypes of UID it is. This is a safe thing to do, since all three subtypes have mutually exclusive string patterns, and can easily be distinguished.
    11651092
    11661093[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 35 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    11671094
    1168  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1095  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    11691096
    11701097Identification Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    11711098
    1172 
    1173 === 4.2.2 Composite Identifiers  === #LinkTarget_17560
    1174 The OBJECT_ID type and its hierarchy of subtypes correspond to composite identifier types whose structure and semantics are defined by openEHR (rather than external organisations), and are the main means of identifying information items in an openEHR system. The abstract type UID_BASED_IDand its two subtypes HIER_OBJECT_IDand OBJECT_VERSION_IDprovide respectively, UID-based identifiers for non-versioned and versioned items. The design of the latter subtype is explained in the openEHR Common IM, change_control package.
    1175 
    1176 The other subtypes, ARCHETYPE_ID and TERMINOLOGY_ID define different kinds of identifier, the former being a multi-axial identifier for archetypes, and the latter being a globally unique single string identifier for terminologies. The ARCHETYPE_ID class explicitly includes archetype version as part of the identifier, while terminology identifier values are assumed to include this, either as part of the name (e.g. as is done in the US National Library of Medicine UMLS identifiers - see http://www.nlm.nih.gov/research/umls/metaa1.html ), or according to the syntax defined in [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_18094 section 4.3.12]  below.
    1177 
    1178 Identifying Versions
    1179 
    1180 The OBJECT_VERSION_ID defines the semantics of the scheme used in openEHR for identifying versions, and uses a three-part identifier, consisting of:
    1181 
    1182 •       object_id: the identifier of the version container, in the form of an UID;
    1183 
    1184 
    1185  * version_tree_id: the location in the version tree, as a 1- or 3-part numeric identifier, where the latter variant expresses branching; this is modelled using the VERSION_TREE_ID type;
    1186  * creating_system_id: the identifier of the system in which this version was created, or type UID.
    1187 
    1188 Under this scheme, multiple versions in the same container all have the same value for object_id, while their location in the version tree is given by the combination of the version tree identifier and the identifier of the creating system.
    1189 
    1190 The requirements on the third part of the identifier are that it be unique per system, and that it be easy to obtain or generate. It is also helpful if it is a meaningful identifier. The two most practical candidates appear to be GUIDs (which are not meaningful, but are easy to generate) and reverse internet  domain identifiers, as recommended in ![3] (these are easy to determine if the system has an internet  address, and are meaningful and directly processible, however unconnected systems pose a problem). ISO Oids might also be used. All of these identifier types are accommodated via the use of UID.
    1191 
    1192 A full explanation of the version identification scheme and its capabilities is given in the change_control section of the Common IM.
    1193 
    1194 
    1195 === 4.2.3 References  === #LinkTarget_17585
    1196 All OBJECT_IDs are used as identifier attributes within the thing they identify, in the same way as a database primary key. To refer to an identified object from another object, an instance of the class OBJECT_REF should generally be used, in the same way as a database foreign key. The class OBJECT_REF is provided as a means of distributed referencing, and includes the object namespace (typically !1:1 with some service, such as “terminology”) and type. The general principle of object references is to be able to refer to an object available in a particular namespace or service. Usually they are used to refer to objects in other services, such as a demographic entity from within an EHR, but they may be used to refer to local objects as well. The type may be the concrete type of the referred-to object (e.g. “GP”) or any proper ancestor (e.g. “PARTY”).
     1099=== 4.2.2 Composite Identifiers === #LinkTarget_17560
     1100The OBJECT_ID type and its hierarchy of subtypes correspond to composite identifier types whose structure and semantics are defined by openEHR (rather than external organisations), and are the main means of identifying information items in an openEHR system. The abstract type UID_BASED_IDand its two subtypes HIER_OBJECT_IDand OBJECT_VERSION_IDprovide respectively, UID-based identifiers for non-versioned and versioned items. The design of the latter subtype is explained in the openEHR Common IM, change_control package.
     1101
     1102The other subtypes, ARCHETYPE_ID and TERMINOLOGY_ID define different kinds of identifier, the former being a multi-axial identifier for archetypes, and the latter being a globally unique single string identifier for terminologies. The ARCHETYPE_ID class explicitly includes archetype version as part of the identifier, while terminology identifier values are assumed to include this, either as part of the name (e.g. as is done in the US National Library of Medicine UMLS identifiers - see http://www.nlm.nih.gov/research/umls/metaa1.html ), or according to the syntax defined in [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_18094 section 4.3.12]  below.
     1103
     1104Identifying Versions
     1105
     1106The OBJECT_VERSION_ID defines the semantics of the scheme used in openEHR for identifying versions, and uses a three-part identifier, consisting of:
     1107
     1108•         object_id: the identifier of the version container, in the form of an UID;
     1109
     1110 * version_tree_id: the location in the version tree, as a 1- or 3-part numeric identifier, where the latter variant expresses branching; this is modelled using the VERSION_TREE_ID type;
     1111 * creating_system_id: the identifier of the system in which this version was created, or type UID.
     1112
     1113Under this scheme, multiple versions in the same container all have the same value for object_id, while their location in the version tree is given by the combination of the version tree identifier and the identifier of the creating system.
     1114
     1115The requirements on the third part of the identifier are that it be unique per system, and that it be easy to obtain or generate. It is also helpful if it is a meaningful identifier. The two most practical candidates appear to be GUIDs (which are not meaningful, but are easy to generate) and reverse internet  domain identifiers, as recommended in ![3] (these are easy to determine if the system has an internet  address, and are meaningful and directly processible, however unconnected systems pose a problem). ISO Oids might also be used. All of these identifier types are accommodated via the use of UID.
     1116
     1117A full explanation of the version identification scheme and its capabilities is given in the change_control section of the Common IM.
     1118
     1119=== 4.2.3 References === #LinkTarget_17585
     1120All OBJECT_IDs are used as identifier attributes within the thing they identify, in the same way as a database primary key. To refer to an identified object from another object, an instance of the class OBJECT_REF should generally be used, in the same way as a database foreign key. The class OBJECT_REF is provided as a means of distributed referencing, and includes the object namespace (typically !1:1 with some service, such as “terminology”) and type. The general principle of object references is to be able to refer to an object available in a particular namespace or service. Usually they are used to refer to objects in other services, such as a demographic entity from within an EHR, but they may be used to refer to local objects as well. The type may be the concrete type of the referred-to object (e.g. “GP”) or any proper ancestor (e.g. “PARTY”).
    11971121
    11981122Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 36 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    11991123
    1200 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     1124[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    12011125
    12021126[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Identification Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    12031127
    1204 4.3 Class Descriptions
    1205 
    1206 4.3.1 UID Class
    1207 
    1208 
    1209 ||CLASS ||UID (abstract) ||
    1210 ||Purpose ||Abstract parent of classes representing unique identifiers which identify information entities in a durable way. UIDs only ever identify one IE in time or space and are never re-used. ||
    1211 ||HL7 ||The HL7v3 UID Data type. ||
    1212 ||Attributes ||Signature ||Meaning ||
    1213 ||||value: String ||The value of the id. ||
    1214 ||Invariant ||Value_exists: value /= Void and then not value.empty ||
    1215 
    1216 4.3.2 ISO_OID Class
    1217 
    1218 
    1219 ||CLASS ||ISO_OID ||
    1220 ||Purpose ||Model of ISO’s Object Identifier (oid) as defined by the standard ISO/IEC 8824 . Oids are formed from integers separated by dots. Each non-leaf node in an Oid starting from the left corresponds to an assigning authority, and identifies that authority’s namespace, inside which the remaining part of the identifier is locally unique. ||
    1221 ||HL7 ||The HL7v3 OID Data type. ||
    1222 ||Inherit ||UID ||
    1223 ||Functions ||Signature ||Meaning ||
    1224 ||Invariant ||||
    1225 
    1226 4.3.3 UUID Class
    1227 
    1228 
    1229 ||CLASS ||UUID ||
    1230 ||Purpose ||Model of the DCE Universal Unique Identifier or UUID which takes the form of hexadecimal integers separated by hyphens, following the pattern 8-4-4-4-12 as defined by the Open Group, CDE 1.1 Remote Procedure Call specification, Appendix A. Also known as a GUID. ||
    1231 ||HL7 ||The HL7v3 UUID Data type. ||
    1232 ||Inherit ||UID ||
     11284.3 Class Descriptions
     1129
     11304.3.1 UID Class
     1131
     1132||CLASS||UID (abstract)||
     1133||Purpose||Abstract parent of classes representing unique identifiers which identify information entities in a durable way. UIDs only ever identify one IE in time or space and are never re-used.||
     1134||HL7||The HL7v3 UID Data type.||
     1135||Attributes||Signature||Meaning||
     1136||||value: String||The value of the id.||
     1137||Invariant||Value_exists: value /= Void and then not value.empty||
     1138
     11394.3.2 ISO_OID Class
     1140
     1141||CLASS||ISO_OID||
     1142||Purpose||Model of ISO’s Object Identifier (oid) as defined by the standard ISO/IEC 8824 . Oids are formed from integers separated by dots. Each non-leaf node in an Oid starting from the left corresponds to an assigning authority, and identifies that authority’s namespace, inside which the remaining part of the identifier is locally unique.||
     1143||HL7||The HL7v3 OID Data type.||
     1144||Inherit||UID||
     1145||Functions||Signature||Meaning||
     1146||Invariant||||
     1147
     11484.3.3 UUID Class
     1149
     1150||CLASS||UUID||
     1151||Purpose||Model of the DCE Universal Unique Identifier or UUID which takes the form of hexadecimal integers separated by hyphens, following the pattern 8-4-4-4-12 as defined by the Open Group, CDE 1.1 Remote Procedure Call specification, Appendix A. Also known as a GUID.||
     1152||HL7||The HL7v3 UUID Data type.||
     1153||Inherit||UID||
    12331154
    12341155[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 37 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    12351156
    1236  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1157  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    12371158
    12381159Identification Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    12391160
    1240 
    1241 ||CLASS ||||UUID ||||
    1242 ||Functions ||Signature ||||Meaning ||
    1243 ||Invariant ||||||||
    1244 
    1245 4.3.4 INTERNET_ID Class
    1246 
    1247 
    1248 ||CLASS ||INTERNET_ID ||
    1249 ||Purpose ||[http://www.ietf.org/rfc/rfc1034.txt Model[[BR]]of a reverse internet domain, as used to uniquely identify an internet[[BR]]domain. In the form of a dot-separated string in the reverse order of a[[BR]]domain name, specified by IETF RFC 1034 (http://www.ietf.org/rfc/rfc1034.txt).]||
    1250 ||Inherit ||UID ||
    1251 ||Functions ||Signature ||Meaning ||
    1252 ||Invariant ||||
    1253 
    1254 4.3.4.1 Syntax
    1255 
    1256 According to IETF RFC1034, the syntax of a domain name follows the BNF grammar:
    1257 
    1258 domain: subdomain | ‘ ’ subdomain: label | subdomain ‘.’ label  label: letter [ [ ldh-str ] let-dig ] ldh-str: let-dig-hyp | let-dig-hyp ldh-str let-dig-hyp: let-dig | ‘-’ let-dig: letter | digit 
    1259 
    1260 letter: any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case 
     1161||CLASS||||UUID||||
     1162||Functions||Signature||||Meaning||
     1163||Invariant||||||||
     1164
     11654.3.4 INTERNET_ID Class
     1166
     1167||CLASS||INTERNET_ID||
     1168||Purpose||[http://www.ietf.org/rfc/rfc1034.txt Model[[BR]]of a reverse internet domain, as used to uniquely identify an internet[[BR]]domain. In the form of a dot-separated string in the reverse order of a[[BR]]domain name, specified by IETF RFC 1034 (http://www.ietf.org/rfc/rfc1034.txt).]||
     1169||Inherit||UID||
     1170||Functions||Signature||Meaning||
     1171||Invariant||||
     1172
     11734.3.4.1 Syntax
     1174
     1175According to IETF RFC1034, the syntax of a domain name follows the BNF grammar:
     1176
     1177domain: subdomain | ‘ ’ subdomain: label | subdomain ‘.’ label  label: letter [ [ ldh-str ] let-dig ] ldh-str: let-dig-hyp | let-dig-hyp ldh-str let-dig-hyp: let-dig | ‘-’ let-dig: letter | digit
     1178
     1179letter: any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case
    12611180
    12621181digit: any one of the ten digits 0 through 9
    12631182
    1264 It can also be expressed using the regular expression:
    1265 
    1266 [a-zA-Z]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z]([a-zA-Z0-9-]*[a-zA-Z0-9]))*
    1267 
    1268 4.3.5 OBJECT_ID Class
    1269 
    1270 
    1271 ||CLASS ||OBJECT_ID (abstract) ||
    1272 ||Purpose ||Ancestor class of identifiers of informational objects. Ids may be completely meaningless, in which case their only job is to refer to something, or may carry some information to do with the identified object. ||
    1273 ||Use ||Object ids are used inside an object to identify that object. To identify another object in another service, use an OBJECT_REF, or else use a UID for local objects identified by UID. If none of the subtypes is suitable, direct instances of this class may be used. ||
     1183It can also be expressed using the regular expression:
     1184
     1185[a-zA-Z]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z]([a-zA-Z0-9-]*[a-zA-Z0-9]))*
     1186
     11874.3.5 OBJECT_ID Class
     1188
     1189||CLASS||OBJECT_ID (abstract)||
     1190||Purpose||Ancestor class of identifiers of informational objects. Ids may be completely meaningless, in which case their only job is to refer to something, or may carry some information to do with the identified object.||
     1191||Use||Object ids are used inside an object to identify that object. To identify another object in another service, use an OBJECT_REF, or else use a UID for local objects identified by UID. If none of the subtypes is suitable, direct instances of this class may be used.||
    12741192
    12751193Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 38 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    12761194
    1277 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     1195[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    12781196
    12791197[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Identification Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    12801198
    1281 
    1282 ||CLASS ||OBJECT_ID (abstract) ||
    1283 ||Attributes ||Signature ||Meaning ||
    1284 ||||value: String ||The value of the id in the form defined below. ||
    1285 ||Invariant ||Value_exists: value /= Void and then not value.empty ||
    1286 
    1287 4.3.6 UID_BASED_ID Class
    1288 
    1289 
    1290 ||CLASS ||UID_BASED_ID (abstract) ||
    1291 ||Purpose ||Abstract model of UID-based identifiers consisting of a root part and an optional extension; lexical form: root ‘::’ extension ||
    1292 ||Inherit ||''OBJECT_ID ''||
    1293 ||Functions ||Signature ||Meaning ||
    1294 ||1..1 ||root: UID ||The identifier of the conceptual namespace in which the object exists, within the identification scheme. Returns the part to the left of the first ‘::’ separator, if any, or else the whole string. ||
    1295 ||1..1 ||extension: String ||Optional local identifier of the object within the context of the root identifier. Returns the part to the right of the first ‘::’ separator if any, or else any empty String. ||
    1296 ||||has_extension: Boolean ||True if extension /= Void ||
    1297 ||Invariant ||Root_valid: root /= Void Extension_validity: extension /= Void Has_extension_validity: extension.is_empty xor has_extension ||
    1298 
    1299 
    1300 ==== 4.3.6.1 Identifier Syntax  ==== #LinkTarget_17794
    1301 The syntax of the value attribute by default follows the following production rules (EBNF):
    1302 
    1303 value: root [ ‘::’ extension ] root: uid -- see UID above extension: string
    1304 
    1305 4.3.7 HIER_OBJECT_ID Class
    1306 
    1307 Concrete type corresponding to hierarchical identifiers of the form defined by UID_BASED_ID.
     1199||CLASS||OBJECT_ID (abstract)||
     1200||Attributes||Signature||Meaning||
     1201||||value: String||The value of the id in the form defined below.||
     1202||Invariant||Value_exists: value /= Void and then not value.empty||
     1203
     12044.3.6 UID_BASED_ID Class
     1205
     1206||CLASS||UID_BASED_ID (abstract)||
     1207||Purpose||Abstract model of UID-based identifiers consisting of a root part and an optional extension; lexical form: root ‘::’ extension||
     1208||Inherit||''OBJECT_ID ''||
     1209||Functions||Signature||Meaning||
     1210||1..1||root: UID||The identifier of the conceptual namespace in which the object exists, within the identification scheme. Returns the part to the left of the first ‘::’ separator, if any, or else the whole string.||
     1211||1..1||extension: String||Optional local identifier of the object within the context of the root identifier. Returns the part to the right of the first ‘::’ separator if any, or else any empty String.||
     1212||||has_extension: Boolean||True if extension /= Void||
     1213||Invariant||Root_valid: root /= Void Extension_validity: extension /= Void Has_extension_validity: extension.is_empty xor has_extension||
     1214
     1215==== 4.3.6.1 Identifier Syntax ==== #LinkTarget_17794
     1216The syntax of the value attribute by default follows the following production rules (EBNF):
     1217
     1218value: root [ ‘::’ extension ] root: uid -- see UID above extension: string
     1219
     12204.3.7 HIER_OBJECT_ID Class
     1221
     1222Concrete type corresponding to hierarchical identifiers of the form defined by UID_BASED_ID.
    13081223
    13091224[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 39 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    13101225
    1311  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1226  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    13121227
    13131228Identification Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    13141229
    1315 
    1316 ||CLASS ||HIER_OBJECT_ID ||
    1317 ||HL7 ||The HL7v3 II Data type. ||
    1318 ||Inherit ||''UID_BASED_ID ''||
    1319 ||Functions ||Signature ||Meaning ||
    1320 ||Invariant ||||
    1321 
    1322 4.3.8 OBJECT_VERSION_ID Class
    1323 
    1324 
    1325 ||CLASS ||OBJECT_VERSION_ID ||
    1326 ||Purpose ||Globally unique identifier for one version of a versioned object; lexical form: object_id ‘::’ creating_system_id ‘::’ version_tree_id ||
    1327 ||Inherit ||''UID_BASED_ID ''||
    1328 ||Functions ||Signature ||Meaning ||
    1329 ||1..1 ||object_id: UID ||Unique identifier for logical object of which this identifier identifies one version; normally the object_id will be the unique identifier of the version container containing the version referred to by this OBJECT_VERSION_ID instance. ||
    1330 ||1..1 ||version_tree_id: VERSION_TREE_ID ||Tree identifier of this version with respect to other versions in the same version tree, as either 1 or 3 part dot-separated numbers, e.g. “1”, “2.1.4”. ||
    1331 ||1..1 ||creating_system_id: UID ||Identifier of the system that created the Version corresponding to this Object version id. ||
    1332 ||||is_branch: Boolean ||True if this version identifier represents a branch. ||
    1333 ||Invariants ||Object_valid: object_id /= Void Version_tree_id_valid: version_tree_id /= Void creating_system_id_valid: creating_system_id /= Void ||
    1334 
    1335 4.3.8.1 Identifier Syntax
    1336 
    1337 The string form of an OBJECT_VERSION_ID stored in its value attribute consists of three segments separated by double colons (“::”), i.e. (EBNF):
    1338 
    1339 value: object_id ‘::’ creating_system_id ‘::’ version_tree_id object_id: uid -- see UID below creating_system_id:
     1230||CLASS||HIER_OBJECT_ID||
     1231||HL7||The HL7v3 II Data type.||
     1232||Inherit||''UID_BASED_ID ''||
     1233||Functions||Signature||Meaning||
     1234||Invariant||||
     1235
     12364.3.8 OBJECT_VERSION_ID Class
     1237
     1238||CLASS||OBJECT_VERSION_ID||
     1239||Purpose||Globally unique identifier for one version of a versioned object; lexical form: object_id ‘::’ creating_system_id ‘::’ version_tree_id||
     1240||Inherit||''UID_BASED_ID ''||
     1241||Functions||Signature||Meaning||
     1242||1..1||object_id: UID||Unique identifier for logical object of which this identifier identifies one version; normally the object_id will be the unique identifier of the version container containing the version referred to by this OBJECT_VERSION_ID instance.||
     1243||1..1||version_tree_id: VERSION_TREE_ID||Tree identifier of this version with respect to other versions in the same version tree, as either 1 or 3 part dot-separated numbers, e.g. “1”, “2.1.4”.||
     1244||1..1||creating_system_id: UID||Identifier of the system that created the Version corresponding to this Object version id.||
     1245||||is_branch: Boolean||True if this version identifier represents a branch.||
     1246||Invariants||Object_valid: object_id /= Void Version_tree_id_valid: version_tree_id /= Void creating_system_id_valid: creating_system_id /= Void||
     1247
     12484.3.8.1 Identifier Syntax
     1249
     1250The string form of an OBJECT_VERSION_ID stored in its value attribute consists of three segments separated by double colons (“::”), i.e. (EBNF):
     1251
     1252value: object_id ‘::’ creating_system_id ‘::’ version_tree_id object_id: uid -- see UID below creating_system_id:
    13401253
    13411254Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 40 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    13421255
    1343 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     1256[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    13441257
    13451258[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Identification Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    13461259
    1347 An example is as follows:
    1348 
    1349 F7C5C7B7-75DB-4b39-9A1E-C0BA9BFDBDEC::87284370-2D4B4e3d-A3F3-F303D2F4F34B::2 
    1350 
    1351 4.3.9 VERSION_TREE_ID Class
    1352 
    1353 
    1354 ||CLASS ||VERSION_TREE_ID ||
    1355 ||Purpose ||Version tree identifier for one version. Lexical form: trunk_version [ ‘.’ branch_number ‘.’ branch_version ] ||
    1356 ||Attributes ||Signature ||Meaning ||
    1357 ||1..1 ||value: String ||String form of this identifier. ||
    1358 ||Functions ||Signature ||Meaning ||
    1359 ||1..1 ||trunk_version: String ||Trunk version number; numbering starts at 1. ||
    1360 ||0..1 ||branch_number: String ||Number of branch from the trunk point; numbering starts at 1. ||
    1361 ||0..1 ||branch_version: String ||Version of the branch; numbering starts at 1. ||
    1362 ||1..1 ||is_branch: Boolean ||True if this version identifier represents a branch, i.e. has branch_number and branch_version parts. ||
    1363 ||1..1 ||is_first: Boolean ||True if this version identifier corresponds to the first version, i.e. trunk_version = “1” ||
    1364 ||Invariants ||Value_valid: value /= Void and then not value.is_empty Trunk_version_valid: trunk_version /= Void and then trunk_version.is_integer and then trunk_version.as_integer >= 1 Branch_number_valid: branch_number /= Void implies branch_number.is_integer and then branch_number.as_integer >= 1 Branch_version_valid: branch_version /= Void implies branch_version.is_integer and then branch_version.as_integer >= 1 Branch_validity: (branch_number = Void and branch_version = Void ) xor (branch_number /= Void and branch_version /= Void ) Is_branch_validity: is_branch xor branch_number = Void Is_first_validity: not is_first xor trunk_version.is_equal(“1”) ||
    1365 
    1366 4.3.9.1 Syntax
    1367 
    1368 The format of the value attribute is (EBNF):
    1369 
    1370 value: trunk_version [ ‘.’ branch_number ‘.’ branch_version ] trunk_version: { digit }+  branch_number: { digit }+  branch_version: { digit }+ 
     1260An example is as follows:
     1261
     1262F7C5C7B7-75DB-4b39-9A1E-C0BA9BFDBDEC::87284370-2D4B4e3d-A3F3-F303D2F4F34B::2
     1263
     12644.3.9 VERSION_TREE_ID Class
     1265
     1266||CLASS||VERSION_TREE_ID||
     1267||Purpose||Version tree identifier for one version. Lexical form: trunk_version [ ‘.’ branch_number ‘.’ branch_version ]||
     1268||Attributes||Signature||Meaning||
     1269||1..1||value: String||String form of this identifier.||
     1270||Functions||Signature||Meaning||
     1271||1..1||trunk_version: String||Trunk version number; numbering starts at 1.||
     1272||0..1||branch_number: String||Number of branch from the trunk point; numbering starts at 1.||
     1273||0..1||branch_version: String||Version of the branch; numbering starts at 1.||
     1274||1..1||is_branch: Boolean||True if this version identifier represents a branch, i.e. has branch_number and branch_version parts.||
     1275||1..1||is_first: Boolean||True if this version identifier corresponds to the first version, i.e. trunk_version = “1”||
     1276||Invariants||Value_valid: value /= Void and then not value.is_empty Trunk_version_valid: trunk_version /= Void and then trunk_version.is_integer and then trunk_version.as_integer >= 1 Branch_number_valid: branch_number /= Void implies branch_number.is_integer and then branch_number.as_integer >= 1 Branch_version_valid: branch_version /= Void implies branch_version.is_integer and then branch_version.as_integer >= 1 Branch_validity: (branch_number = Void and branch_version = Void ) xor (branch_number /= Void and branch_version /= Void ) Is_branch_validity: is_branch xor branch_number = Void Is_first_validity: not is_first xor trunk_version.is_equal(“1”)||
     1277
     12784.3.9.1 Syntax
     1279
     1280The format of the value attribute is (EBNF):
     1281
     1282value: trunk_version [ ‘.’ branch_number ‘.’ branch_version ] trunk_version: { digit }+  branch_number: { digit }+  branch_version: { digit }+
    13711283
    13721284[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 41 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    13731285
    1374  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1286  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    13751287
    13761288Identification Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    13771289
    1378 4.3.10 ARCHETYPE_ID Class
    1379 
    1380 
    1381 ||CLASS ||ARCHETYPE_ID ||
    1382 ||Purpose ||Identifier for archetypes. Lexical form: rm_originator ‘-’ rm_name ‘-’ rm_entity ‘.’ concept_name { ‘-’ specialisation }* ‘.v’ number ||
    1383 ||Inherit ||''OBJECT_ID ''||
    1384 ||Functions ||Signature ||Meaning ||
    1385 ||1..1 ||qualified_rm_entity: String ||Globally qualified reference model entity, e.g. “openehr-composition-OBSERVATION”. ||
    1386 ||1..1 ||domain_concept: String ||Name of the concept represented by this archetype, including specialisation, e.g. “biochemistry_result-cholesterol”. ||
    1387 ||1..1 ||rm_originator: String ||Organisation originating the reference model on which this archetype is based, e.g. “openehr”, “cen”, “hl7”. ||
    1388 ||1..1 ||rm_name: String ||Name of the reference model, e.g. “rim”, “ehr_rm”, “en13606”. ||
    1389 ||1..1 ||rm_entity: String ||Name of the ontological level within the reference model to which this archetype is targeted, e.g. for openEHR, “folder”, “composition”, “section”, “entry”. ||
    1390 ||1..1 ||specialisation: String ||Name of specialisation of concept, if this archetype is a specialisation of another archetype, e.g. “cholesterol”. ||
    1391 ||1..1 ||version_id: String ||Version of this archetype. ||
    1392 ||Invariant ||Qualified_rm_entity_valid: qualified_rm_entity /= Void and then not qualified_rm_entity.is_empty Domain_concept_valid: domain_concept /= Void and then not domain_concept.is_empty Rm_originator_valid: rm_originator /= Void and then not rm_originator.is_empty Rm_name_valid: rm_name /= Void and then not rm_name.is_empty Rm_entity_valid: rm_entity /= Void and then not rm_entity.is_empty Specialisation_valid: specialisation /= Void implies not specialisation.is_empty Version_id_valid: version_id /= Void and then not version_id.is_empty ||
     12904.3.10 ARCHETYPE_ID Class
     1291
     1292||CLASS||ARCHETYPE_ID||
     1293||Purpose||Identifier for archetypes. Lexical form: rm_originator ‘-’ rm_name ‘-’ rm_entity ‘.’ concept_name { ‘-’ specialisation }* ‘.v’ number||
     1294||Inherit||''OBJECT_ID ''||
     1295||Functions||Signature||Meaning||
     1296||1..1||qualified_rm_entity: String||Globally qualified reference model entity, e.g. “openehr-composition-OBSERVATION”.||
     1297||1..1||domain_concept: String||Name of the concept represented by this archetype, including specialisation, e.g. “biochemistry_result-cholesterol”.||
     1298||1..1||rm_originator: String||Organisation originating the reference model on which this archetype is based, e.g. “openehr”, “cen”, “hl7”.||
     1299||1..1||rm_name: String||Name of the reference model, e.g. “rim”, “ehr_rm”, “en13606”.||
     1300||1..1||rm_entity: String||Name of the ontological level within the reference model to which this archetype is targeted, e.g. for openEHR, “folder”, “composition”, “section”, “entry”.||
     1301||1..1||specialisation: String||Name of specialisation of concept, if this archetype is a specialisation of another archetype, e.g. “cholesterol”.||
     1302||1..1||version_id: String||Version of this archetype.||
     1303||Invariant||Qualified_rm_entity_valid: qualified_rm_entity /= Void and then not qualified_rm_entity.is_empty Domain_concept_valid: domain_concept /= Void and then not domain_concept.is_empty Rm_originator_valid: rm_originator /= Void and then not rm_originator.is_empty Rm_name_valid: rm_name /= Void and then not rm_name.is_empty Rm_entity_valid: rm_entity /= Void and then not rm_entity.is_empty Specialisation_valid: specialisation /= Void implies not specialisation.is_empty Version_id_valid: version_id /= Void and then not version_id.is_empty||
    13931304
    13941305Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 42 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    13951306
    1396 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     1307[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    13971308
    13981309[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Identification Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    13991310
    1400 4.3.10.1 Archetype ID Syntax
    1401 
    1402 Archetype identifiers are “multi-axial”, meaning that each identifier instance denotes a single archetype within a multi-dimensional space. In this case, the space is essentially a versioned 3-dimensional space, with the dimensions being:
    1403 
    1404 
    1405  * reference model entity, i.e. target of archetype
    1406  * domain concept
    1407  * version
    1408 
    1409 As with any multi-axial identifier, the underlying principle of an archetype id is that all parts of the id must be able to be considered immutable. This means that no variable characteristic of an archetype
    1410 
    1411 (e.g. accrediting authority, which might change due to later accreditation by another authority, or may be multiple) can be included in its identifier. The syntax of an ARCHETYPE_ID is as follows (EBNF):
    1412 
    1413 archetype_id: qualified_rm_entity ‘.’ domain_concept ‘.’ version_id
    1414 
    1415 qualified_rm_entity: rm_originator ‘-’ rm_name ‘-’ rm_entity  rm_originator: V_NAME  rm_name: V_NAME  rm_entity: V_NAME 
    1416 
    1417 domain_concept: concept_name { ‘-’ specialisation }*  concept_name: V_NAME  specialisation: V_NAME 
    1418 
    1419 version_id: ‘v’ V_NUMBER
    1420 
    1421 NUMBER: ![0-9]*  NAME: [a-z][a-z0-9()/%$#&]*
    1422 
    1423 The field meanings are as follows:
    1424 
    1425 rm_originator: id of organisation originating the reference model on which this archetype is based;
    1426 
    1427 rm_name: id of the reference model on which the archetype is based;
    1428 
    1429 rm_entity: ontological level in the reference model;
    1430 
    1431 domain_concept: the domain concept name, including any specialisations;
    1432 
    1433 version_id: numeric version identifier;
    1434 
    1435 Examples of archetype identifiers include:
    1436 
    1437 • openehr-composition-SECTION.physical_examination.v2 • openehr-composition-SECTION.physical_examination-prenatal.v1
    1438 
    1439 • hl7-rim-act.progress_note.v1 • openehr-composition-OBSERVATION.progress_note-naturopathy.v2
    1440 
    1441 Archetypes can also be identified by other means, such as ISO oids.
    1442 
    1443 4.3.11 TEMPLATE_ID Class
    1444 
    1445 Identifier for templates. Lexical form to be determined.
     13114.3.10.1 Archetype ID Syntax
     1312
     1313Archetype identifiers are “multi-axial”, meaning that each identifier instance denotes a single archetype within a multi-dimensional space. In this case, the space is essentially a versioned 3-dimensional space, with the dimensions being:
     1314
     1315 * reference model entity, i.e. target of archetype
     1316 * domain concept
     1317 * version
     1318
     1319As with any multi-axial identifier, the underlying principle of an archetype id is that all parts of the id must be able to be considered immutable. This means that no variable characteristic of an archetype
     1320
     1321(e.g. accrediting authority, which might change due to later accreditation by another authority, or may be multiple) can be included in its identifier. The syntax of an ARCHETYPE_ID is as follows (EBNF):
     1322
     1323archetype_id: qualified_rm_entity ‘.’ domain_concept ‘.’ version_id
     1324
     1325qualified_rm_entity: rm_originator ‘-’ rm_name ‘-’ rm_entity  rm_originator: V_NAME  rm_name: V_NAME  rm_entity: V_NAME
     1326
     1327domain_concept: concept_name { ‘-’ specialisation }*  concept_name: V_NAME  specialisation: V_NAME
     1328
     1329version_id: ‘v’ V_NUMBER
     1330
     1331NUMBER: ![0-9]*  NAME: [a-z][a-z0-9()/%$#&]*
     1332
     1333The field meanings are as follows:
     1334
     1335rm_originator: id of organisation originating the reference model on which this archetype is based;
     1336
     1337rm_name: id of the reference model on which the archetype is based;
     1338
     1339rm_entity: ontological level in the reference model;
     1340
     1341domain_concept: the domain concept name, including any specialisations;
     1342
     1343version_id: numeric version identifier;
     1344
     1345Examples of archetype identifiers include:
     1346
     1347• openehr-composition-SECTION.physical_examination.v2 • openehr-composition-SECTION.physical_examination-prenatal.v1
     1348
     1349• hl7-rim-act.progress_note.v1 • openehr-composition-OBSERVATION.progress_note-naturopathy.v2
     1350
     1351Archetypes can also be identified by other means, such as ISO oids.
     1352
     13534.3.11 TEMPLATE_ID Class
     1354
     1355Identifier for templates. Lexical form to be determined.
    14461356
    14471357[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 43 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    14481358
    1449  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1359  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    14501360
    14511361Identification Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    14521362
    1453 
    1454 ||CLASS ||||TEMPLATE_ID ||||
    1455 ||Inherit ||''OBJECT_ID ''||||||
    1456 ||Functions ||Signature ||||||Meaning ||
    1457 ||Invariant ||||||||
    1458 
    1459 4.3.12 TERMINOLOGY_ID Class
    1460 
    1461 
    1462 ||CLASS ||TERMINOLOGY_ID ||
    1463 ||Purpose ||Identifier for terminologies such accessed via a terminology query service. In this class, the value attribute identifies the Terminology in the terminology service, e.g. “SNOMED-CT”. A terminology is assumed to be in a particular language, which must be explicitly specified. The value if the id attribute is the precise terminology id identifier, including actual release (i.e. actual “version”), local modifications etc; e.g. “ICPC2”. Lexical form: name [ ‘(’ version ‘)’ ] ||
    1464 ||Inherit ||''OBJECT_ID ''||
    1465 ||Functions ||Signature ||Meaning ||
    1466 ||1..1 ||name: String ||Return the terminology id (which includes the “version” in some cases). Distinct names correspond to distinct (i.e. non-compatible) terminologies. Thus the names “ICD10AM” and “ICD10” refer to distinct terminologies. ||
    1467 ||1..1 ||version_id: String ||Version of this terminology, if versioning supported, else the empty string. ||
    1468 ||Invariants ||Name_valid: name /= Void and then not name.is_empty Version_id_valid: version_id /= Void ||
    1469 
    1470 4.3.12.1 Identifier Syntax
    1471 
    1472 The syntax of the value attribute is as follows:
     1363||CLASS||||TEMPLATE_ID||||
     1364||Inherit||''OBJECT_ID ''||||||
     1365||Functions||Signature||||||Meaning||
     1366||Invariant||||||||
     1367
     13684.3.12 TERMINOLOGY_ID Class
     1369
     1370||CLASS||TERMINOLOGY_ID||
     1371||Purpose||Identifier for terminologies such accessed via a terminology query service. In this class, the value attribute identifies the Terminology in the terminology service, e.g. “SNOMED-CT”. A terminology is assumed to be in a particular language, which must be explicitly specified. The value if the id attribute is the precise terminology id identifier, including actual release (i.e. actual “version”), local modifications etc; e.g. “ICPC2”. Lexical form: name [ ‘(’ version ‘)’ ]||
     1372||Inherit||''OBJECT_ID ''||
     1373||Functions||Signature||Meaning||
     1374||1..1||name: String||Return the terminology id (which includes the “version” in some cases). Distinct names correspond to distinct (i.e. non-compatible) terminologies. Thus the names “ICD10AM” and “ICD10” refer to distinct terminologies.||
     1375||1..1||version_id: String||Version of this terminology, if versioning supported, else the empty string.||
     1376||Invariants||Name_valid: name /= Void and then not name.is_empty Version_id_valid: version_id /= Void||
     1377
     13784.3.12.1 Identifier Syntax
     1379
     1380The syntax of the value attribute is as follows:
    14731381
    14741382name [ ‘(’ version ‘)’ ]
    14751383
    1476 Examples of terminology identifiers include:
    1477 
    1478 
    1479  * “snomed-ct”
    1480  * “ICD9(1999)”
     1384Examples of terminology identifiers include:
     1385
     1386 * “snomed-ct”
     1387 * “ICD9(1999)”
    14811388
    14821389Versions should only be needed for those terminologies which break the rule that the thing being identified with a code loses or changes its meaning over versions of the terminology. This should not be the case for well known modern terminologies and ontologies, particularly those designed since the publication of Cimino’s ‘desiderata’ [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19407 "[1]"]  of which the principle of “concept permanance” is appli-
     
    14841391Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 44 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    14851392
    1486 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     1393[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    14871394
    14881395[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Identification Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    14891396
    1490 cable here - “A concept's meaning cannot change and it cannot be deleted from the vocabulary”. However, there maybe older terminologies, or specialised terminologies which may not have obeyed these rules, but which are still used; version ids should always be used for these.
    1491 
    1492 4.3.13 GENERIC_ID Class
    1493 
    1494 
    1495 ||CLASS ||GENERIC_ID ||
    1496 ||Purpose ||Generic identifier type for identifiers whose format is othterwise unknown to openEHR. Includes an attribute for naming the identification scheme (which may well be local). ||
    1497 ||Inherit ||''OBJECT_ID ''||
    1498 ||attributes ||Signature ||Meaning ||
    1499 ||1..1 ||scheme: String ||Name of the scheme to which this identifier conforms. Ideally this name will be recognisable globally but realistically it may be a local ad hoc scheme whose name is not controlled or standardised in any way. ||
    1500 ||Invariants ||Scheme_valid: scheme /= Void and then not scheme.is_empty ||
    1501 
    1502 4.3.14 OBJECT_REF Class
    1503 
    1504 
    1505 ||CLASS ||OBJECT_REF ||
    1506 ||Purpose ||Class describing a reference to another object, which may exist locally or be maintained outside the current namespace, e.g. in another service. Services are usually external, e.g. available in a LAN (including on the same host) or the internet via Corba, SOAP, or some other distributed protocol. However, in small systems they may be part of the same executable as the data containing the Id. ||
    1507 ||Attributes ||Signature ||Meaning ||
    1508 ||1..1 ||id: ''OBJECT_ID ''||Globally unique id of an object, regardless of where it is stored. ||
    1509 ||1..1 ||namespace: String ||Namespace to which this identifier belongs in the local system context (and possibly in any other openEHR compliant environment) e.g. “terminology”, “demographic”. These names are not yet standardised. Legal values for the namespace are “local” | “unknown” | “[a-zAZ]![a-zA-Z0-9_-:/&+?]*” ||
     1397cable here - “A concept's meaning cannot change and it cannot be deleted from the vocabulary”. However, there maybe older terminologies, or specialised terminologies which may not have obeyed these rules, but which are still used; version ids should always be used for these.
     1398
     13994.3.13 GENERIC_ID Class
     1400
     1401||CLASS||GENERIC_ID||
     1402||Purpose||Generic identifier type for identifiers whose format is othterwise unknown to openEHR. Includes an attribute for naming the identification scheme (which may well be local).||
     1403||Inherit||''OBJECT_ID ''||
     1404||attributes||Signature||Meaning||
     1405||1..1||scheme: String||Name of the scheme to which this identifier conforms. Ideally this name will be recognisable globally but realistically it may be a local ad hoc scheme whose name is not controlled or standardised in any way.||
     1406||Invariants||Scheme_valid: scheme /= Void and then not scheme.is_empty||
     1407
     14084.3.14 OBJECT_REF Class
     1409
     1410||CLASS||OBJECT_REF||
     1411||Purpose||Class describing a reference to another object, which may exist locally or be maintained outside the current namespace, e.g. in another service. Services are usually external, e.g. available in a LAN (including on the same host) or the internet via Corba, SOAP, or some other distributed protocol. However, in small systems they may be part of the same executable as the data containing the Id.||
     1412||Attributes||Signature||Meaning||
     1413||1..1||id: ''OBJECT_ID ''||Globally unique id of an object, regardless of where it is stored.||
     1414||1..1||namespace: String||Namespace to which this identifier belongs in the local system context (and possibly in any other openEHR compliant environment) e.g. “terminology”, “demographic”. These names are not yet standardised. Legal values for the namespace are “local” | “unknown” | “[a-zAZ]![a-zA-Z0-9_-:/&+?]*”||
    15101415
    15111416[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 45 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    15121417
    1513  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1418  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    15141419
    15151420Identification Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    15161421
    1517 
    1518 ||CLASS ||OBJECT_REF ||
    1519 ||1..1 ||type: String ||Name of the class (concrete or abstract) of object to which this identifier type refers, e.g. “PARTY”, “PERSON”, “GUIDELINE” etc. These class names are from the relevant reference model. The type name “ANY” can be used to indicate that any type is accepted (e.g. if the type is unknown). ||
    1520 ||Invariant ||Id_exists: id /= Void Namespace_exists: namespace /= Void and then not namespace.is_empty Type_exists: type /= Void and then not type.is_empty ||
    1521 
    1522 4.3.15 ACCESS_GROUP_REF Class
    1523 
    1524 
    1525 ||CLASS ||ACCESS_GROUP_REF ||
    1526 ||Purpose ||Reference to access group in an access control service. ||
    1527 ||Inherit ||OBJECT_REF ||
    1528 ||Functions ||Signature ||Meaning ||
    1529 ||Invariant ||Type_validity: type.is_equal(“ACCESS_GROUP”) ||
    1530 
    1531 4.3.16 PARTY_REF Class
    1532 
    1533 
    1534 ||CLASS ||PARTY_REF ||
    1535 ||Purpose ||Identifier for parties in a demographic or identity service. There are typically a number of subtypes of the PARTY class, including PERSON, ORGANISATION, etc. Abstract supertypes are allowed if the referenced object is of a type not known by the current implementation of this class (in other words, if the demographic model is changed by the addition of a new PARTY or ACTOR subtypes, valid PARTY_REFs can still be constructed to them). ||
    1536 ||Inherit ||OBJECT_REF ||
    1537 ||Functions ||Signature Meaning Type_validity: type.is_equal(“PERSON”) or type.is_equal(“ORGANISATION”) or type.is_equal(“GROUP”) or type.is_equal(“AGENT”)or type.is_equal(“ROLE”) or type.is_equal(“PARTY”) or type.is_equal(“ACTOR”) ||
    1538 ||Invariant ||
     1422||CLASS||OBJECT_REF||
     1423||1..1||type: String||Name of the class (concrete or abstract) of object to which this identifier type refers, e.g. “PARTY”, “PERSON”, “GUIDELINE” etc. These class names are from the relevant reference model. The type name “ANY” can be used to indicate that any type is accepted (e.g. if the type is unknown).||
     1424||Invariant||Id_exists: id /= Void Namespace_exists: namespace /= Void and then not namespace.is_empty Type_exists: type /= Void and then not type.is_empty||
     1425
     14264.3.15 ACCESS_GROUP_REF Class
     1427
     1428||CLASS||ACCESS_GROUP_REF||
     1429||Purpose||Reference to access group in an access control service.||
     1430||Inherit||OBJECT_REF||
     1431||Functions||Signature||Meaning||
     1432||Invariant||Type_validity: type.is_equal(“ACCESS_GROUP”)||
     1433
     14344.3.16 PARTY_REF Class
     1435
     1436||CLASS||PARTY_REF||
     1437||Purpose||Identifier for parties in a demographic or identity service. There are typically a number of subtypes of the PARTY class, including PERSON, ORGANISATION, etc. Abstract supertypes are allowed if the referenced object is of a type not known by the current implementation of this class (in other words, if the demographic model is changed by the addition of a new PARTY or ACTOR subtypes, valid PARTY_REFs can still be constructed to them).||
     1438||Inherit||OBJECT_REF||
     1439||Functions||Signature Meaning Type_validity: type.is_equal(“PERSON”) or type.is_equal(“ORGANISATION”) or type.is_equal(“GROUP”) or type.is_equal(“AGENT”)or type.is_equal(“ROLE”) or type.is_equal(“PARTY”) or type.is_equal(“ACTOR”)||
     1440||Invariant||
    15391441
    15401442Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 46 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    15411443
    1542 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     1444[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    15431445
    15441446[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Identification Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    15451447
    1546 4.3.17 LOCATABLE_REF Class
    1547 
    1548 
    1549 ||CLASS ||LOCATABLE_REF ||
    1550 ||Purpose ||Reference to a LOCATABLE instance inside the top-level content structure inside a VERSION<T>; the path attribute is applied to the object that VERSION.data points to. ||
    1551 ||Inherit ||OBJECT_REF ||
    1552 ||Attributes ||Signature ||Meaning ||
    1553 ||1..1 (redefined) ||id: OBJECT_VERSION_ID ||The identifier of the Version. ||
    1554 ||0..1 ||path: String ||The path to an instance in question, as an absolute path with respect to the object found at VERSION.data. An empty path means that the object referred to by id being specified. ||
    1555 ||Functions ||Signature ||Meaning ||
    1556 ||1..1 ||as_uri: String ||A URI form of the reference, created by concatenating the following: “!ehr://” + id.value + “/” + path ||
    1557 ||Invariant ||Path_valid: path /= Void implies not path.is_empty ||
     14484.3.17 LOCATABLE_REF Class
     1449
     1450||CLASS||LOCATABLE_REF||
     1451||Purpose||Reference to a LOCATABLE instance inside the top-level content structure inside a VERSION<T>; the path attribute is applied to the object that VERSION.data points to.||
     1452||Inherit||OBJECT_REF||
     1453||Attributes||Signature||Meaning||
     1454||1..1 (redefined)||id: OBJECT_VERSION_ID||The identifier of the Version.||
     1455||0..1||path: String||The path to an instance in question, as an absolute path with respect to the object found at VERSION.data. An empty path means that the object referred to by id being specified.||
     1456||Functions||Signature||Meaning||
     1457||1..1||as_uri: String||A URI form of the reference, created by concatenating the following: “!ehr://” + id.value + “/” + path||
     1458||Invariant||Path_valid: path /= Void implies not path.is_empty||
    15581459
    15591460[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 47 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    15601461
    1561  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1462  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    15621463
    15631464Identification Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
     
    15651466Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 48 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    15661467
    1567 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     1468[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    15681469
    15691470[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Terminology Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    15701471
    1571 Terminology Package 
    1572 
    1573 5.1 Overview 
    1574 
    1575 This section describes the terminology package, which contains classes for accessing terminologies and code sets, including the openEHR Support Terminology, from within instances of classes defined in the reference model. The classes shown here would normally be inherited via the classes EXTERNAL_ENVIRONMENT_ACCESS and OPENEHR_DEFINITIONS, although the exact details of how this is done may vary depending on implementation language. 
    1576 
    1577 5.2 Service Interface 
    1578 
    1579 5.2.1 Code Sets 
    1580 
    1581  A simple terminology service interface is defined according to FIGURE 6, enabling  openEHR code sets and terminology to be referenced formally from within the Reference Model. Two types of coded entities are distinguished in openEHR, and are accessible via the service interface. The first is codes from ‘code sets’, which are the kind of terminology where the code stands for itself, such as the ISO 639-1 language codes. The identifiers themselves of these code sets do not appear to be standardised, but names such as “ISO_639-1” are expected to be used (see below).
    1582 
    1583 In any case, code sets needed within the openEHR models themselves (e.g. for attributes whose value is a language code) are not referred to directly by an external name such as “ISO_639-1”, but via an internal constant, in this case, the constant Code_set_id_languages, whose value is defined to be “languages”. These constants are defined in the class OPENEHR_CODE_SET_IDENTIFIERS  in FIGURE 
    1584 
    1585  6.  The mapping between the internal identifiers and external names should be done in configuration files. The service function TERMINOLOGY_SERVICE.code_set_for_id() is used to retrieve code sets on the basis of a constant. The current mapping and external identifiers assumed in openEHR is defined in the openEHR Support Terminology document. This use of indirection is employed to ensure that the obsoleting and superseding of code-sets does not directly affect openEHR software.
    1586 
    1587 For code sets not mapped to internally used constants, i.e. code sets not required in the openEHR model itself, but otherwise known in the terminology service, the function TERMINOLOGY_SERVICE.code_set() can be used to retrieve these code sets by their external identifier. 
    1588 
    1589 5.2.2 Terminologies 
    1590 
    1591 Terminologies, including the openEHR Support Terminology are accessed via the TERMINOLOGY_SERVICEfunctions terminology() and terminology_identifiers(), where the argument includes “openehr”, “centc251” (for CEN TC/251codes) and names from the US NLM terminologies list (see below). The openEHR Terminology supports groups, and the set of groups required by the reference model is defined in the class OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS. These groups correspond to coded attributes found in the openEHR Reference Model. 
    1592 
    1593 5.2.3 Terms and Codes in the openEHR Reference Model 
    1594 
    1595 True coded attributes in the Reference Model (i.e. attributes of type DV_CODED_TEXT), such as FEEDER_AUDIT.change_type are defined by an invariant in the enclosing class, such as the following: 
     1472Terminology Package
     1473
     14745.1 Overview
     1475
     1476This section describes the terminology package, which contains classes for accessing terminologies and code sets, including the openEHR Support Terminology, from within instances of classes defined in the reference model. The classes shown here would normally be inherited via the classes EXTERNAL_ENVIRONMENT_ACCESS and OPENEHR_DEFINITIONS, although the exact details of how this is done may vary depending on implementation language.
     1477
     14785.2 Service Interface
     1479
     14805.2.1 Code Sets
     1481
     1482  A simple terminology service interface is defined according to FIGURE 6, enabling  openEHR code sets and terminology to be referenced formally from within the Reference Model. Two types of coded entities are distinguished in openEHR, and are accessible via the service interface. The first is codes from ‘code sets’, which are the kind of terminology where the code stands for itself, such as the ISO 639-1 language codes. The identifiers themselves of these code sets do not appear to be standardised, but names such as “ISO_639-1” are expected to be used (see below).
     1483
     1484In any case, code sets needed within the openEHR models themselves (e.g. for attributes whose value is a language code) are not referred to directly by an external name such as “ISO_639-1”, but via an internal constant, in this case, the constant Code_set_id_languages, whose value is defined to be “languages”. These constants are defined in the class OPENEHR_CODE_SET_IDENTIFIERS  in FIGURE
     1485
     1486 6. The mapping between the internal identifiers and external names should be done in configuration files. The service function TERMINOLOGY_SERVICE.code_set_for_id() is used to retrieve code sets on the basis of a constant. The current mapping and external identifiers assumed in openEHR is defined in the openEHR Support Terminology document. This use of indirection is employed to ensure that the obsoleting and superseding of code-sets does not directly affect openEHR software.
     1487
     1488For code sets not mapped to internally used constants, i.e. code sets not required in the openEHR model itself, but otherwise known in the terminology service, the function TERMINOLOGY_SERVICE.code_set() can be used to retrieve these code sets by their external identifier.
     1489
     14905.2.2 Terminologies
     1491
     1492Terminologies, including the openEHR Support Terminology are accessed via the TERMINOLOGY_SERVICEfunctions terminology() and terminology_identifiers(), where the argument includes “openehr”, “centc251” (for CEN TC/251codes) and names from the US NLM terminologies list (see below). The openEHR Terminology supports groups, and the set of groups required by the reference model is defined in the class OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS. These groups correspond to coded attributes found in the openEHR Reference Model.
     1493
     14945.2.3 Terms and Codes in the openEHR Reference Model
     1495
     1496True coded attributes in the Reference Model (i.e. attributes of type DV_CODED_TEXT), such as FEEDER_AUDIT.change_type are defined by an invariant in the enclosing class, such as the following:
    15961497
    15971498[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 49 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    15981499
    1599  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
    1600 
    1601 terminology
    1602 
    1603 OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS
    1604 
    1605 const Terminology_id_openehr: String is “openehr” const Group_id_audit_change_type: String is “audit change type” const Group_id_attestation_reason: String is “attestation reason” const Group_id_composition_category: String is “composition category” const Group_id_event_math_function: String is “event math function” const Group_id_instruction_states: String is “instruction states” const Group_id_instruction_transitions: String is “instruction transitions” const Group_id_null_flavours: String is “null flavours” const Group_id_property: String is “property” const Group_id_participation_function: String is “participation function” const Group_id_participation_mode: String is “participation mode” const Group_id_setting: String is “setting” const Group_id_term_mapping_purpose: String is “term mapping purpose” const Group_id_subject_relationship: String is “subject relationship” const Group_id_version_lifecycle_state: String is “version lifecycle state”
    1606 
    1607 valid_group_id(an_id: String): Boolean
    1608 
    1609 TERMINOLOGY_SERVICE
    1610 
    1611 OPENEHR_CODE_SET_IDENTIFIERS
    1612 
    1613 const Code_set_id_character_sets: String is “character sets” const Code_set_id_compression_algorithms: String is “compression algorithms” const Code_set_id_countries: String is “countries” const Code_set_id_integrity_check_algorithms: String is “integrity check algorithms” const Code_set_id_languages: String is “languages” const Code_set_id_media_types: String is “media types” const Code_set_id_normal_statuses: String is “normal statuses”
    1614 
    1615 valid_code_set_id(an_id: String): Boolean
    1616 
    1617 CODE_SET_ACCESS <<interface>>
    1618 
    1619 id: Stringall_codes: Set<CODE_PHRASE> has_lang (...): Boolean has_code (...): Boolean terminology (name: String): TERMINOLOGY_ACCESS code_set (name: String): CODE_SET_ACCESS code_set_for_id (id: String): CODE_SET_ACCESS has_terminology (name: String): Boolean has_code_set (name: String): Boolean terminology_identifiers: List<String>openehr_code_sets: Hash<String, String> code_set_identifiers: List<String>
    1620 
    1621 
    1622 ||TERMINOLOGY_ACCESS <<interface>> ||
     1500  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
     1501
     1502terminology
     1503
     1504OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS
     1505
     1506const Terminology_id_openehr: String is “openehr” const Group_id_audit_change_type: String is “audit change type” const Group_id_attestation_reason: String is “attestation reason” const Group_id_composition_category: String is “composition category” const Group_id_event_math_function: String is “event math function” const Group_id_instruction_states: String is “instruction states” const Group_id_instruction_transitions: String is “instruction transitions” const Group_id_null_flavours: String is “null flavours” const Group_id_property: String is “property” const Group_id_participation_function: String is “participation function” const Group_id_participation_mode: String is “participation mode” const Group_id_setting: String is “setting” const Group_id_term_mapping_purpose: String is “term mapping purpose” const Group_id_subject_relationship: String is “subject relationship” const Group_id_version_lifecycle_state: String is “version lifecycle state”
     1507
     1508valid_group_id(an_id: String): Boolean
     1509
     1510TERMINOLOGY_SERVICE
     1511
     1512OPENEHR_CODE_SET_IDENTIFIERS
     1513
     1514const Code_set_id_character_sets: String is “character sets” const Code_set_id_compression_algorithms: String is “compression algorithms” const Code_set_id_countries: String is “countries” const Code_set_id_integrity_check_algorithms: String is “integrity check algorithms” const Code_set_id_languages: String is “languages” const Code_set_id_media_types: String is “media types” const Code_set_id_normal_statuses: String is “normal statuses”
     1515
     1516valid_code_set_id(an_id: String): Boolean
     1517
     1518CODE_SET_ACCESS <<interface>>
     1519
     1520id: Stringall_codes: Set<CODE_PHRASE> has_lang (...): Boolean has_code (...): Boolean terminology (name: String): TERMINOLOGY_ACCESS code_set (name: String): CODE_SET_ACCESS code_set_for_id (id: String): CODE_SET_ACCESS has_terminology (name: String): Boolean has_code_set (name: String): Boolean terminology_identifiers: List<String>openehr_code_sets: Hash<String, String> code_set_identifiers: List<String>
     1521
     1522||TERMINOLOGY_ACCESS <<interface>>||
    16231523||||
    1624 ||id: Stringall_codes: Set<CODE_PHRASE> codes_for_group_id (...): Set<CODE_PHRASE> codes_for_group_name (...): Set<CODE_PHRASE> has_code_for_group_id (...): Boolean rubric_for_code (...): String ||
    1625 
    1626 FIGURE 6 rm.support.terminology Package 
     1524||id: Stringall_codes: Set<CODE_PHRASE> codes_for_group_id (...): Set<CODE_PHRASE> codes_for_group_name (...): Set<CODE_PHRASE> has_code_for_group_id (...): Boolean rubric_for_code (...): String||
     1525
     1526FIGURE 6 rm.support.terminology Package
    16271527
    16281528[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Terminology Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    16291529
    1630 Change_type_valid:terminology(Terminology_id_openehr).has_code_for_group_id  (Group_id_audit_change_type, change_type.defining_code) 
    1631 
    1632 This is a formal way of saying that the attribute change_type must have a value such that its defining_code (its CODE_PHRASE) is in the set of CODE_PHRASEs in the openEHR Terminology which are in the group whose indentifier is Group_id_audit_change_type.
    1633 
    1634 A similar invariant is used for attributes of type CODE_PHRASE, which come from a code_set. The following invariant appears in the class ENTRY (rm.composition.content.entry package):
    1635 
    1636 Language_valid: media_type /= Void and then  code_set(Code_set_languages).has_code(language) 
    1637 
    1638 5.3 Identifiers
    1639 
    1640 In openEHR, the identifier of a terminology or code set is found in the terminology_id attribute of the class CODE_PHRASE (Data Types Information Model, text package).
    1641 
    1642 5.3.1 Code Set Identifiers
    1643 
    1644 Internal code set identifiers (such as “languages”) used in openEHR are defined in the class OPENEHR_CODE_SET_IDENTIFIERS; assumed external identifiers (such as “ISO_639-1”) for code sets used by the openEHR Reference Model are defined in the openEHR Support Terminology document.
    1645 
    1646 5.3.2 Terminology Identifiers
    1647 
    1648 Valid identifiers that can be used for this attribute for terminologies include but are not limited to the following:
    1649 
    1650 
    1651  * “openehr”
    1652  * “centc251”
    1653  * an identifier value from the first column of the US National Library or Medicine (NLM) UMLS terminology identifiers table below, in either of two forms:
    1654 
    1655 -as is, e.g. “ICD10AM_2000”, “ICPC93”;  -with any trailing section starting with an underscore removed, e.g. “ICD10AM”. 
    1656 
    1657 Other identification schemes are used in some standards, such as ISO Oids. These are not specified for direct use in openEHR for various reasons:
    1658 
    1659 
    1660  * they are not currently used by the NLM, and no definitive published list of terminology identifiers is available;
    1661  * ISO Oids are long identifiers and may significantly increase the size of persisted information due to the ubiquity of coded terms;
    1662  * determing the identity of the terminology in data always requires a request to a service containing the Oid / name mapping;
    1663  * there is a safety factor in having human readable terminology identifiers in the data.
    1664 
    1665 The use of Oid-based or other terminology identification schemes is not however incompatible with openEHR; all that is required is a terminology identifier / name mapping service or table.
     1530Change_type_valid:terminology(Terminology_id_openehr).has_code_for_group_id  (Group_id_audit_change_type, change_type.defining_code)
     1531
     1532This is a formal way of saying that the attribute change_type must have a value such that its defining_code (its CODE_PHRASE) is in the set of CODE_PHRASEs in the openEHR Terminology which are in the group whose indentifier is Group_id_audit_change_type.
     1533
     1534A similar invariant is used for attributes of type CODE_PHRASE, which come from a code_set. The following invariant appears in the class ENTRY (rm.composition.content.entry package):
     1535
     1536Language_valid: media_type /= Void and then  code_set(Code_set_languages).has_code(language)
     1537
     15385.3 Identifiers
     1539
     1540In openEHR, the identifier of a terminology or code set is found in the terminology_id attribute of the class CODE_PHRASE (Data Types Information Model, text package).
     1541
     15425.3.1 Code Set Identifiers
     1543
     1544Internal code set identifiers (such as “languages”) used in openEHR are defined in the class OPENEHR_CODE_SET_IDENTIFIERS; assumed external identifiers (such as “ISO_639-1”) for code sets used by the openEHR Reference Model are defined in the openEHR Support Terminology document.
     1545
     15465.3.2 Terminology Identifiers
     1547
     1548Valid identifiers that can be used for this attribute for terminologies include but are not limited to the following:
     1549
     1550 * “openehr”
     1551 * “centc251”
     1552 * an identifier value from the first column of the US National Library or Medicine (NLM) UMLS terminology identifiers table below, in either of two forms:
     1553
     1554-as is, e.g. “ICD10AM_2000”, “ICPC93”;  -with any trailing section starting with an underscore removed, e.g. “ICD10AM”.
     1555
     1556Other identification schemes are used in some standards, such as ISO Oids. These are not specified for direct use in openEHR for various reasons:
     1557
     1558 * they are not currently used by the NLM, and no definitive published list of terminology identifiers is available;
     1559 * ISO Oids are long identifiers and may significantly increase the size of persisted information due to the ubiquity of coded terms;
     1560 * determing the identity of the terminology in data always requires a request to a service containing the Oid / name mapping;
     1561 * there is a safety factor in having human readable terminology identifiers in the data.
     1562
     1563The use of Oid-based or other terminology identification schemes is not however incompatible with openEHR; all that is required is a terminology identifier / name mapping service or table.
    16661564
    16671565[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 51 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    16681566
    1669  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1567  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    16701568
    16711569Terminology Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    16721570
    1673 The following table is a snapshot of the US National Library of Medicine UMLS terminology identifiers list. A definitive up-to-date list may be found on the NLM website at http://www.nlm.nih.gov/research/umls/metaa1.html .
    1674 
    1675 
    1676 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
    1677 
    1678 ||||UMLS 2003 Terminology Identifiers ||
    1679 ||Identifier ||Description ||
    1680 ||AIR93 ||AI/RHEUM,1993 ||
    1681 ||ALT2000 ||Alternative Billing Concepts, 2000 ||
    1682 ||AOD2000 ||Alcohol and Other Drug Thesaurus, 2000 ||
    1683 ||BI98 ||Beth Israel Vocabulary, 1.0 ||
    1684 ||BRMP2002 ||Portuguese translation of the Medical Subject Headings, 2002 ||
    1685 ||BRMS2002 ||Spanish translation of the Medical Subject Headings, 2002 ||
    1686 ||CCPSS99 ||Canonical Clinical Problem Statement System, 1999 ||
    1687 ||CCS99 ||Clinical Classifications Software, 1999 ||
    1688 ||CDT4 ||Current Dental Terminology(CDT), 4 ||
    1689 ||COSTAR_89-95 ||COSTAR, 1989-1995 ||
    1690 ||CPM93 ||Medical Entities Dictionary, 1993 ||
    1691 ||CPT01SP ||Physicians' Current Procedural Terminology, Spanish Translation, 2001 ||
    1692 ||CPT2003 ||Physicians' Current Procedural Terminology, 2003 ||
    1693 ||CSP2002 ||CRISP Thesaurus, 2002 ||
    1694 ||CST95 ||COSTART, 1995 ||
    1695 ||DDB00 ||Diseases Database, 2000 ||
    1696 ||DMD2003 ||German translation of the Medical Subject Headings, 2003 ||
    1697 ||DMDICD10_1995 ||German translation of ICD10, 1995 ||
    1698 ||DMDUMD_1996 ||German translation of UMDNS, 1996 ||
    1699 ||DSM3R_1987 ||DSM-III-R, 1987 ||
    1700 ||DSM4_1994 ||DSM-IV, 1994 ||
    1701 ||DUT2001 ||Dutch Translation of the Medical Subject Headings, 2001 ||
    1702 ||DXP94 ||DXplain, 1994 ||
    1703 ||FIN2003 ||Finnish translations of the Medical Subject Headings, 2003 ||
    1704 ||HCDT4 ||HCPCS Version of Current Dental Terminology(CDT), 4 ||
    1705 ||HCPCS03 ||Healthcare Common Procedure Coding System, 2003 ||
    1706 ||HCPT03 ||HCPCS Version of Current Procedural Terminology(CPT), 2003 ||
    1707 ||HHC96 ||Home Health Care Classification, 1996 ||
    1708 ||HL7_1998-2002 ||Health Level Seven Vocabulary, 1998-2002 ||
    1709 ||HLREL_1998 ||ICPC2E-ICD10 relationships from Dr. Henk Lamberts, 1998 ||
    1710 ||HPC99 ||Health Product Comparison System, 1999 ||
    1711 ||ICD10AE_1998 ||ICD10, American English Equivalents, 1998 ||
    1712 ||ICD10AMAE_2000 ||International Statistical Classification of Diseases and Related Health Problems, Australian Modification, Americanized English Equivalents, 2000 ||
    1713 ||ICD10AM_2000 ||International Statistical Classification of Diseases and Related Health Problems, 10th Revision, Australian Modification, January 2000 Release ||
    1714 ||ICD10_1998 ||ICD10, 1998 ||
     1571The following table is a snapshot of the US National Library of Medicine UMLS terminology identifiers list. A definitive up-to-date list may be found on the NLM website at http://www.nlm.nih.gov/research/umls/metaa1.html .
     1572
     1573[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
     1574
     1575||||UMLS 2003 Terminology Identifiers||
     1576||Identifier||Description||
     1577||AIR93||AI/RHEUM,1993||
     1578||ALT2000||Alternative Billing Concepts, 2000||
     1579||AOD2000||Alcohol and Other Drug Thesaurus, 2000||
     1580||BI98||Beth Israel Vocabulary, 1.0||
     1581||BRMP2002||Portuguese translation of the Medical Subject Headings, 2002||
     1582||BRMS2002||Spanish translation of the Medical Subject Headings, 2002||
     1583||CCPSS99||Canonical Clinical Problem Statement System, 1999||
     1584||CCS99||Clinical Classifications Software, 1999||
     1585||CDT4||Current Dental Terminology(CDT), 4||
     1586||COSTAR_89-95||COSTAR, 1989-1995||
     1587||CPM93||Medical Entities Dictionary, 1993||
     1588||CPT01SP||Physicians' Current Procedural Terminology, Spanish Translation, 2001||
     1589||CPT2003||Physicians' Current Procedural Terminology, 2003||
     1590||CSP2002||CRISP Thesaurus, 2002||
     1591||CST95||COSTART, 1995||
     1592||DDB00||Diseases Database, 2000||
     1593||DMD2003||German translation of the Medical Subject Headings, 2003||
     1594||DMDICD10_1995||German translation of ICD10, 1995||
     1595||DMDUMD_1996||German translation of UMDNS, 1996||
     1596||DSM3R_1987||DSM-III-R, 1987||
     1597||DSM4_1994||DSM-IV, 1994||
     1598||DUT2001||Dutch Translation of the Medical Subject Headings, 2001||
     1599||DXP94||DXplain, 1994||
     1600||FIN2003||Finnish translations of the Medical Subject Headings, 2003||
     1601||HCDT4||HCPCS Version of Current Dental Terminology(CDT), 4||
     1602||HCPCS03||Healthcare Common Procedure Coding System, 2003||
     1603||HCPT03||HCPCS Version of Current Procedural Terminology(CPT), 2003||
     1604||HHC96||Home Health Care Classification, 1996||
     1605||HL7_1998-2002||Health Level Seven Vocabulary, 1998-2002||
     1606||HLREL_1998||ICPC2E-ICD10 relationships from Dr. Henk Lamberts, 1998||
     1607||HPC99||Health Product Comparison System, 1999||
     1608||ICD10AE_1998||ICD10, American English Equivalents, 1998||
     1609||ICD10AMAE_2000||International Statistical Classification of Diseases and Related Health Problems, Australian Modification, Americanized English Equivalents, 2000||
     1610||ICD10AM_2000||International Statistical Classification of Diseases and Related Health Problems, 10th Revision, Australian Modification, January 2000 Release||
     1611||ICD10_1998||ICD10, 1998||
    17151612
    17161613Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 52 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
     
    17181615[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Terminology Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    17191616
    1720 
    1721  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
    1722 
    1723 ||||UMLS 2003 Terminology Identifiers ||
    1724 ||Identifier ||Description ||
    1725 ||ICD9CM_2003 ||ICD-9-CM, 2003 ||
    1726 ||ICPC2AE_1998 ||International Classification of Primary Care, Americanized English Equivalents, 2E, 1998 ||
    1727 ||ICPC2E_1998 ||International Classification of Primary Care 2nd Edition, Electronic, 2E, 1998 ||
    1728 ||ICPC2P_2000 ||International Classification of Primary Care, Version2-Plus, 2000 ||
    1729 ||ICPC93 ||International Classification of Primary Care, 1993 ||
    1730 ||ICPCBAQ_1993 ||ICPC, Basque Translation, 1993 ||
    1731 ||ICPCDAN_1993 ||ICPC, Danish Translation, 1993 ||
    1732 ||ICPCDUT_1993 ||ICPC, Dutch Translation, 1993 ||
    1733 ||ICPCFIN_1993 ||ICPC, Finnish Translation, 1993 ||
    1734 ||ICPCFRE_1993 ||ICPC, French Translation, 1993 ||
    1735 ||ICPCGER_1993 ||ICPC, German Translation, 1993 ||
    1736 ||ICPCHEB_1993 ||ICPC, Hebrew Translation, 1993 ||
    1737 ||ICPCHUN_1993 ||ICPC, Hungarian Translation, 1993 ||
    1738 ||ICPCITA_1993 ||ICPC, Italian Translation, 1993 ||
    1739 ||ICPCNOR_1993 ||ICPC, Norwegian Translation, 1993 ||
    1740 ||ICPCPAE_2000 ||International Classification of Primary Care ,Version2-Plus, Americanized English Equivalents, 2000 ||
    1741 ||ICPCPOR_1993 ||ICPC, Portuguese Translation, 1993 ||
    1742 ||ICPCSPA_1993 ||ICPC, Spanish Translation, 1993 ||
    1743 ||ICPCSWE_1993 ||ICPC, Swedish Translation, 1993 ||
    1744 ||INS2002 ||French translation of the Medical Subject Headings, 2002 ||
    1745 ||ITA2003 ||Italian translation of Medical Subject Headings, 2003 ||
    1746 ||JABL99 ||Online Congenital Multiple Anomaly/ Mental Retardation Syndromes, 1999 ||
    1747 ||LCH90 ||Library of Congress Subject Headings, 1990 ||
    1748 ||LNC205 ||LOINC, 2.05 ||
    1749 ||LOINC ||LOINC ||
    1750 ||MCM92 ||!McMaster University Epidemiology Terms, 1992 ||
    1751 ||MDDB99 ||!MasterDrug !DataBase, 1999 ||
    1752 ||MDR51 ||Medical Dictionary for Regulatory Activities Terminology (MedDRA), 5.1 ||
    1753 ||MDRAE51 ||Medical Dictionary for Regulatory Activities Terminology (MedDRA), American English Equivalents, 5.1 ||
    1754 ||MDREA51 ||Medical Dictionary for Regulatory Activities Terminology (MedDRA), American English, with expanded abbreviations, 5.1 ||
    1755 ||MDREX51 ||Medical Dictionary for Regulatory Activities Terminology (MedDRA), with expanded abbreviations, 5.1 ||
    1756 ||MDRPOR51 ||Medical Dictionary for Regulatory Activities Terminology (MedDRA), 5.1, Portuguese Edition ||
     1617  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
     1618
     1619||||UMLS 2003 Terminology Identifiers||
     1620||Identifier||Description||
     1621||ICD9CM_2003||ICD-9-CM, 2003||
     1622||ICPC2AE_1998||International Classification of Primary Care, Americanized English Equivalents, 2E, 1998||
     1623||ICPC2E_1998||International Classification of Primary Care 2nd Edition, Electronic, 2E, 1998||
     1624||ICPC2P_2000||International Classification of Primary Care, Version2-Plus, 2000||
     1625||ICPC93||International Classification of Primary Care, 1993||
     1626||ICPCBAQ_1993||ICPC, Basque Translation, 1993||
     1627||ICPCDAN_1993||ICPC, Danish Translation, 1993||
     1628||ICPCDUT_1993||ICPC, Dutch Translation, 1993||
     1629||ICPCFIN_1993||ICPC, Finnish Translation, 1993||
     1630||ICPCFRE_1993||ICPC, French Translation, 1993||
     1631||ICPCGER_1993||ICPC, German Translation, 1993||
     1632||ICPCHEB_1993||ICPC, Hebrew Translation, 1993||
     1633||ICPCHUN_1993||ICPC, Hungarian Translation, 1993||
     1634||ICPCITA_1993||ICPC, Italian Translation, 1993||
     1635||ICPCNOR_1993||ICPC, Norwegian Translation, 1993||
     1636||ICPCPAE_2000||International Classification of Primary Care ,Version2-Plus, Americanized English Equivalents, 2000||
     1637||ICPCPOR_1993||ICPC, Portuguese Translation, 1993||
     1638||ICPCSPA_1993||ICPC, Spanish Translation, 1993||
     1639||ICPCSWE_1993||ICPC, Swedish Translation, 1993||
     1640||INS2002||French translation of the Medical Subject Headings, 2002||
     1641||ITA2003||Italian translation of Medical Subject Headings, 2003||
     1642||JABL99||Online Congenital Multiple Anomaly/ Mental Retardation Syndromes, 1999||
     1643||LCH90||Library of Congress Subject Headings, 1990||
     1644||LNC205||LOINC, 2.05||
     1645||LOINC||LOINC||
     1646||MCM92||!McMaster University Epidemiology Terms, 1992||
     1647||MDDB99||!MasterDrug !DataBase, 1999||
     1648||MDR51||Medical Dictionary for Regulatory Activities Terminology (MedDRA), 5.1||
     1649||MDRAE51||Medical Dictionary for Regulatory Activities Terminology (MedDRA), American English Equivalents, 5.1||
     1650||MDREA51||Medical Dictionary for Regulatory Activities Terminology (MedDRA), American English, with expanded abbreviations, 5.1||
     1651||MDREX51||Medical Dictionary for Regulatory Activities Terminology (MedDRA), with expanded abbreviations, 5.1||
     1652||MDRPOR51||Medical Dictionary for Regulatory Activities Terminology (MedDRA), 5.1, Portuguese Edition||
    17571653
    17581654[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 53 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
     
    17601656Terminology Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    17611657
    1762 
    1763 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
    1764 
    1765 ||||UMLS 2003 Terminology Identifiers ||
    1766 ||Identifier ||Description ||
    1767 ||MDRSPA51 ||Medical Dictionary for Regulatory Activities Terminology (MedDRA), 5.1, Spanish Edition ||
    1768 ||MIM93 ||Online Mendelian Inheritance in Man, 1993 ||
    1769 ||MMSL01 ||Multum !MediSource Lexicon, 2001 ||
    1770 ||MMX01 ||Micromedex DRUGDEX, 2001-08 ||
    1771 ||MSH2003_2002_10_24 ||Medical Subject Headings, 2002_10_24 ||
    1772 ||MTH ||UMLS Metathesaurus ||
    1773 ||MTHCH03 ||Metathesaurus CPT Hierarchical Terms, 2003 ||
    1774 ||MTHHH03 ||Metathesaurus HCPCS Hierarchical Terms, 2003 ||
    1775 ||MTHICD9_2003 ||Metathesaurus additional entry terms for ICD-9-CM, 2003 ||
    1776 ||MTHMST2001 ||Metathesaurus Version of Minimal Standard Terminology Digestive Endoscopy, 2001 ||
    1777 ||MTHMSTFRE_2001 ||Metathesaurus Version of Minimal Standard Terminology Digestive Endoscopy, French Translation, 2001 ||
    1778 ||MTHMSTITA_2001 ||Metathesaurus Version of Minimal Standard Terminology Digestive Endoscopy, Italian Translation, 2001 ||
    1779 ||NAN99 ||Classification of Nursing Diagnoses, 1999 ||
    1780 ||NCBI2001 ||NCBI Taxonomy, 2001 ||
    1781 ||NCI2001a ||NCI Thesaurus, 2001a ||
    1782 ||NCISEER_1999 ||NCISEER ICD Neoplasm Code Mappings, 1999 ||
    1783 ||NDDF01 ||!FirstDataBank National Drug !DataFile, 2001-07 ||
    1784 ||NEU99 ||Neuronames Brain Hierarchy, 1999 ||
    1785 ||NIC99 ||Nursing Interventions Classification, 1999 ||
    1786 ||NOC97 ||Nursing Outcomes Classification, 1997 ||
    1787 ||OMIM97 ||OMIM, Online Mendelian Inheritance in Man, 1997 ||
    1788 ||OMS94 ||Omaha System, 1994 ||
    1789 ||PCDS97 ||Patient Care Data Set, 1997 ||
    1790 ||PDQ2002 ||Physician Data Query, 2002 ||
    1791 ||PPAC98 ||Pharmacy Practice Activity Classification , 1998 ||
    1792 ||PSY2001 ||Thesaurus of Psychological Index Terms, 2001 ||
    1793 ||QMR96 ||Quick Medical Reference (QMR), 1996 ||
    1794 ||RAM99 ||QMR clinically related terms from Randolph A. Miller, 1999 ||
    1795 ||RCD99 ||Clinical Terms Version 3 (CTV3) (Read Codes), 1999 ||
    1796 ||RCDAE_1999 ||Read thesaurus, American English Equivalents, 1999 ||
    1797 ||RCDSA_1999 ||Read thesaurus Americanized Synthesized Terms, 1999 ||
    1798 ||RCDSY_1999 ||Read thesaurus, Synthesized Terms, 1999 ||
    1799 ||RUS2003 ||Russian Translation of MeSH, 2003 ||
    1800 ||RXNORM_03AA ||RXNORM Project, META2003AA ||
    1801 ||SNM2 ||SNOMED-2, 2 ||
    1802 ||SNMI98 ||SNOMED International, 1998 ||
     1658[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
     1659
     1660||||UMLS 2003 Terminology Identifiers||
     1661||Identifier||Description||
     1662||MDRSPA51||Medical Dictionary for Regulatory Activities Terminology (MedDRA), 5.1, Spanish Edition||
     1663||MIM93||Online Mendelian Inheritance in Man, 1993||
     1664||MMSL01||Multum !MediSource Lexicon, 2001||
     1665||MMX01||Micromedex DRUGDEX, 2001-08||
     1666||MSH2003_2002_10_24||Medical Subject Headings, 2002_10_24||
     1667||MTH||UMLS Metathesaurus||
     1668||MTHCH03||Metathesaurus CPT Hierarchical Terms, 2003||
     1669||MTHHH03||Metathesaurus HCPCS Hierarchical Terms, 2003||
     1670||MTHICD9_2003||Metathesaurus additional entry terms for ICD-9-CM, 2003||
     1671||MTHMST2001||Metathesaurus Version of Minimal Standard Terminology Digestive Endoscopy, 2001||
     1672||MTHMSTFRE_2001||Metathesaurus Version of Minimal Standard Terminology Digestive Endoscopy, French Translation, 2001||
     1673||MTHMSTITA_2001||Metathesaurus Version of Minimal Standard Terminology Digestive Endoscopy, Italian Translation, 2001||
     1674||NAN99||Classification of Nursing Diagnoses, 1999||
     1675||NCBI2001||NCBI Taxonomy, 2001||
     1676||NCI2001a||NCI Thesaurus, 2001a||
     1677||NCISEER_1999||NCISEER ICD Neoplasm Code Mappings, 1999||
     1678||NDDF01||!FirstDataBank National Drug !DataFile, 2001-07||
     1679||NEU99||Neuronames Brain Hierarchy, 1999||
     1680||NIC99||Nursing Interventions Classification, 1999||
     1681||NOC97||Nursing Outcomes Classification, 1997||
     1682||OMIM97||OMIM, Online Mendelian Inheritance in Man, 1997||
     1683||OMS94||Omaha System, 1994||
     1684||PCDS97||Patient Care Data Set, 1997||
     1685||PDQ2002||Physician Data Query, 2002||
     1686||PPAC98||Pharmacy Practice Activity Classification , 1998||
     1687||PSY2001||Thesaurus of Psychological Index Terms, 2001||
     1688||QMR96||Quick Medical Reference (QMR), 1996||
     1689||RAM99||QMR clinically related terms from Randolph A. Miller, 1999||
     1690||RCD99||Clinical Terms Version 3 (CTV3) (Read Codes), 1999||
     1691||RCDAE_1999||Read thesaurus, American English Equivalents, 1999||
     1692||RCDSA_1999||Read thesaurus Americanized Synthesized Terms, 1999||
     1693||RCDSY_1999||Read thesaurus, Synthesized Terms, 1999||
     1694||RUS2003||Russian Translation of MeSH, 2003||
     1695||RXNORM_03AA||RXNORM Project, META2003AA||
     1696||SNM2||SNOMED-2, 2||
     1697||SNMI98||SNOMED International, 1998||
    18031698
    18041699Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 54 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
     
    18061701[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Terminology Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    18071702
    1808 
    1809 ||||UMLS 2003 Terminology Identifiers ||
    1810 ||Identifier ||Description ||
    1811 ||SNOMED-CT ||SNOMED International Clinical Terms, 2002 ||
    1812 ||SPN02 ||Standard Product Nomenclature, 2002 ||
    1813 ||SRC ||Metathesaurus Source Terminology Names ||
    1814 ||ULT93 ||UltraSTAR, 1993 ||
    1815 ||UMD2003 ||UMDNS: product category thesaurus, 2003 ||
    1816 ||UMLS ||UMLS: National Library of Medicine, USA ||
    1817 ||UWDA155 ||University of Washington Digital Anatomist, 1.5.5 ||
    1818 ||VANDF01 ||Veterans Health Administration National Drug File, 2001 ||
    1819 ||WHO97 ||WHO Adverse Reaction Terminology, 1997 ||
    1820 ||WHOFRE_1997 ||WHOART, French Translation, 1997 ||
    1821 ||WHOGER_1997 ||WHOART, German Translation, 1997 ||
    1822 ||WHOPOR_1997 ||WHOART, Portuguese Translation, 1997 ||
    1823 ||WHOSPA_1997 ||WHOART, Spanish Translation, 1997 ||
     1703||||UMLS 2003 Terminology Identifiers||
     1704||Identifier||Description||
     1705||SNOMED-CT||SNOMED International Clinical Terms, 2002||
     1706||SPN02||Standard Product Nomenclature, 2002||
     1707||SRC||Metathesaurus Source Terminology Names||
     1708||ULT93||UltraSTAR, 1993||
     1709||UMD2003||UMDNS: product category thesaurus, 2003||
     1710||UMLS||UMLS: National Library of Medicine, USA||
     1711||UWDA155||University of Washington Digital Anatomist, 1.5.5||
     1712||VANDF01||Veterans Health Administration National Drug File, 2001||
     1713||WHO97||WHO Adverse Reaction Terminology, 1997||
     1714||WHOFRE_1997||WHOART, French Translation, 1997||
     1715||WHOGER_1997||WHOART, German Translation, 1997||
     1716||WHOPOR_1997||WHOART, Portuguese Translation, 1997||
     1717||WHOSPA_1997||WHOART, Spanish Translation, 1997||
    18241718
    18251719[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 55 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    18261720
    1827  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1721  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    18281722
    18291723Terminology Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    18301724
    1831 5.4 Class Definitions
    1832 
    1833 5.4.1 TERMINOLOGY_SERVICE Class
    1834 
    1835 
    1836 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
    1837 
    1838 ||CLASS ||TERMINOLOGY_SERVICE ||
    1839 ||Purpose ||Defines an object providing proxy access to a terminology service. ||
    1840 ||Inherit ||OPENEHR_CODE_SET_IDENTIFIERS, OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS ||
    1841 ||Functions ||Signature ||Meaning ||
    1842 ||||terminology (name: String): ||Return an interface to the terminology ||
    1843 ||||TERMINOLOGY_ACCESS ||named name. Allowable names include ||
    1844 ||||require ||• “openehr”||
    1845 ||||name /= Void and then has_terminology (name) ensure Result /= Void ||[http://www.nlm.nih.gov/research/umls/metaa1.html • “centc251” • any name from are taken from the US NLM UMLS meta-data list at http://www.nlm.nih.gov/research/umls/metaa1.html]||
    1846 ||||code_set (name: String): CODE_SET_ACCESS require name /= Void and then has_code_set (name) ensure Result /= Void ||Return an interface to the code_set identified by the external identifier name (e.g. “ISO_639-1”). ||
    1847 ||||code_set_for_id(id: String): CODE_SET_ACCESS require id /= Void and then valid_code_set_id (id) ensure Result /= Void has_terminology (name: String): Boolean require name /= Void and then not name.is_empty ||[http://www.nlm.nih.gov/research/umls/metaa1.html Return an interface to the code_set identified internally in openEHR by id. True if terminology named name known by this service. Allowable names include • “openehr” • “centc251” • any name from are taken from the US NLM UMLS meta-data list at http://www.nlm.nih.gov/research/umls/metaa1.html]||
     17255.4 Class Definitions
     1726
     17275.4.1 TERMINOLOGY_SERVICE Class
     1728
     1729[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
     1730
     1731||CLASS||TERMINOLOGY_SERVICE||
     1732||Purpose||Defines an object providing proxy access to a terminology service.||
     1733||Inherit||OPENEHR_CODE_SET_IDENTIFIERS, OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS||
     1734||Functions||Signature||Meaning||
     1735||||terminology (name: String):||Return an interface to the terminology||
     1736||||TERMINOLOGY_ACCESS||named name. Allowable names include||
     1737||||require||• “openehr”||
     1738||||name /= Void and then has_terminology (name) ensure Result /= Void||[http://www.nlm.nih.gov/research/umls/metaa1.html • “centc251” • any name from are taken from the US NLM UMLS meta-data list at http://www.nlm.nih.gov/research/umls/metaa1.html]||
     1739||||code_set (name: String): CODE_SET_ACCESS require name /= Void and then has_code_set (name) ensure Result /= Void||Return an interface to the code_set identified by the external identifier name (e.g. “ISO_639-1”).||
     1740||||code_set_for_id(id: String): CODE_SET_ACCESS require id /= Void and then valid_code_set_id (id) ensure Result /= Void has_terminology (name: String): Boolean require name /= Void and then not name.is_empty||[http://www.nlm.nih.gov/research/umls/metaa1.html Return an interface to the code_set identified internally in openEHR by id. True if terminology named name known by this service. Allowable names include • “openehr” • “centc251” • any name from are taken from the US NLM UMLS meta-data list at http://www.nlm.nih.gov/research/umls/metaa1.html]||
    18481741||||
    18491742
     
    18521745[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Terminology Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    18531746
    1854 
    1855 ||CLASS ||TERMINOLOGY_SERVICE ||
    1856 ||||has_code_set (name: String): Boolean require name /= Void and then not name.is_empty ||True if code_set linked to internal name (e.g. “languages”) is available. ||
    1857 ||||terminology_identifiers: List<String> ||[http://www.nlm.nih.gov/research/umls/metaa1.html Set of all terminology identifiers known in the terminology service. Values from the US NLM UMLS meta-data list at http://www.nlm.nih.gov/research/umls/metaa1.html]||
    1858 ||||code_set_identifiers: List<String> ||Set of all code set identifiers known in the terminology service. ||
    1859 ||||openehr_code_sets: Hash<String, String> ||Set of all code sets identifiers for which there is an internal openEHR name; returned as a Hash of ids keyed by internal name. ||
    1860 ||Invariants ||||
    1861 
    1862 5.4.2 TERMINOLOGY_ACCESS Class
    1863 
    1864 
    1865 ||CLASS ||TERMINOLOGY_ACCESS ||
    1866 ||Purpose ||Defines an object providing proxy access to a terminology. ||
    1867 ||Functions ||Signature ||Meaning ||
    1868 ||||id: String ||Identification of this Terminology ||
    1869 ||||all_codes: Set<CODE_PHRASE> ||Return all codes known in this terminology ||
    1870 ||||codes_for_group_id (group_id: String): Set<CODE_PHRASE> ||Return all codes under grouper ‘group_id’ from this terminology ||
    1871 ||||has_code_for_group_id (group_id: String; a_code: CODE_PHRASE): Boolean codes_for_group_name (name, lang: String): Set<CODE_PHRASE> ||True if ‘a_code’ is known in group ‘group_id’ in the openEHR terminology. Return all codes under grouper whose name in ‘lang’ is ‘name’ from this terminology ||
     1747||CLASS||TERMINOLOGY_SERVICE||
     1748||||has_code_set (name: String): Boolean require name /= Void and then not name.is_empty||True if code_set linked to internal name (e.g. “languages”) is available.||
     1749||||terminology_identifiers: List<String>||[http://www.nlm.nih.gov/research/umls/metaa1.html Set of all terminology identifiers known in the terminology service. Values from the US NLM UMLS meta-data list at http://www.nlm.nih.gov/research/umls/metaa1.html]||
     1750||||code_set_identifiers: List<String>||Set of all code set identifiers known in the terminology service.||
     1751||||openehr_code_sets: Hash<String, String>||Set of all code sets identifiers for which there is an internal openEHR name; returned as a Hash of ids keyed by internal name.||
     1752||Invariants||||
     1753
     17545.4.2 TERMINOLOGY_ACCESS Class
     1755
     1756||CLASS||TERMINOLOGY_ACCESS||
     1757||Purpose||Defines an object providing proxy access to a terminology.||
     1758||Functions||Signature||Meaning||
     1759||||id: String||Identification of this Terminology||
     1760||||all_codes: Set<CODE_PHRASE>||Return all codes known in this terminology||
     1761||||codes_for_group_id (group_id: String): Set<CODE_PHRASE>||Return all codes under grouper ‘group_id’ from this terminology||
     1762||||has_code_for_group_id (group_id: String; a_code: CODE_PHRASE): Boolean codes_for_group_name (name, lang: String): Set<CODE_PHRASE>||True if ‘a_code’ is known in group ‘group_id’ in the openEHR terminology. Return all codes under grouper whose name in ‘lang’ is ‘name’ from this terminology||
    18721763||||
    1873 ||||rubric_for_code (code, lang: String): String ||Return all rubric of code ‘code’ in language ‘lang’. ||
    1874 ||Invariants ||id_exists: id /= Void and then not id.is_empty ||
     1764||||rubric_for_code (code, lang: String): String||Return all rubric of code ‘code’ in language ‘lang’.||
     1765||Invariants||id_exists: id /= Void and then not id.is_empty||
    18751766
    18761767[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 57 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    18771768
    1878  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1769  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    18791770
    18801771Terminology Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    18811772
    1882 5.4.3 CODE_SET_ACCESS Class
    1883 
    1884 
    1885 ||CLASS ||CODE_SET_ACCESS ||
    1886 ||Purpose ||Defines an object providing proxy access to a code_set. ||
    1887 ||Functions ||Signature ||Meaning ||
    1888 ||||id: String ||External identifier of this code set ||
    1889 ||||all_codes: Set<CODE_PHRASE> ||Return all codes known in this code set ||
    1890 ||||has_lang (a_lang: CODE_PHRASE): Boolean ||True if code set knows about ‘a_lang’ ||
    1891 ||||has_code (a_code: CODE_PHRASE): Boolean ||True if code set knows about ‘a_code’ ||
    1892 ||Invariants ||Id_valid: id /= Void and then not id.is_empty ||
    1893 
    1894 5.4.4 OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS Class
    1895 
    1896 
    1897 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
    1898 
    1899 ||CLASS ||OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS ||
    1900 ||Purpose ||List of identifiers for groups in the openEHR terminology. ||
    1901 ||Constants ||Signature ||Meaning ||
    1902 ||||Terminology_id: Stringis “openehr” ||Name of openEHR’s own terminology ||
    1903 ||||Group_id_audit_change_type: String is “audit change type” ||||
    1904 ||||Group_id_attestation_reason: String is “attestation reason” ||||
    1905 ||||Group_id_composition_category: Stringis “composition category” ||||
    1906 ||||Group_id_event_math_function: String is “event math function” ||||
    1907 ||||Group_id_instruction_states: Stringis “instruction states” ||||
    1908 ||||Group_id_instruction_transitions: String is “instruction transitions” ||||
    1909 ||||Group_id_null_flavours: String is “null flavours” ||||
     17735.4.3 CODE_SET_ACCESS Class
     1774
     1775||CLASS||CODE_SET_ACCESS||
     1776||Purpose||Defines an object providing proxy access to a code_set.||
     1777||Functions||Signature||Meaning||
     1778||||id: String||External identifier of this code set||
     1779||||all_codes: Set<CODE_PHRASE>||Return all codes known in this code set||
     1780||||has_lang (a_lang: CODE_PHRASE): Boolean||True if code set knows about ‘a_lang’||
     1781||||has_code (a_code: CODE_PHRASE): Boolean||True if code set knows about ‘a_code’||
     1782||Invariants||Id_valid: id /= Void and then not id.is_empty||
     1783
     17845.4.4 OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS Class
     1785
     1786[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
     1787
     1788||CLASS||OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS||
     1789||Purpose||List of identifiers for groups in the openEHR terminology.||
     1790||Constants||Signature||Meaning||
     1791||||Terminology_id: Stringis “openehr”||Name of openEHR’s own terminology||
     1792||||Group_id_audit_change_type: String is “audit change type”||||
     1793||||Group_id_attestation_reason: String is “attestation reason”||||
     1794||||Group_id_composition_category: Stringis “composition category”||||
     1795||||Group_id_event_math_function: String is “event math function”||||
     1796||||Group_id_instruction_states: Stringis “instruction states”||||
     1797||||Group_id_instruction_transitions: String is “instruction transitions”||||
     1798||||Group_id_null_flavours: String is “null flavours”||||
    19101799
    19111800Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 58 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
     
    19131802[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Terminology Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    19141803
    1915 
    1916 ||CLASS ||OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS ||
    1917 ||||Group_id_property: Stringis “property” ||||
    1918 ||||Group_id_participation_function: Stringis “participation function” ||||
    1919 ||||Group_id_participation_mode: String is “participation mode” ||||
    1920 ||||Group_id_subject_relationship: String is “subject relationship” ||||
    1921 ||||Group_id_setting: String is “setting” ||||
    1922 ||||Group_id_term_mapping_purpose: String is “term mapping purpose” ||||
    1923 ||||Group_id_version_lifecycle_state: Stringis “version lifecycle state” ||||
    1924 ||Functions ||Signature ||Meaning ||
    1925 ||||valid_terminology_group_id (an_id: String): Boolean ||Validity function to test if an identifier is in the set defined by this class. ||
    1926 ||Invariants ||||
    1927 
    1928 5.4.5 OPENEHR_CODE_SET_IDENTIFIERS Class
    1929 
    1930 
    1931 ||CLASS ||OPENEHR_CODE_SET_IDENTIFIERS ||
    1932 ||Purpose ||List of identifiers for code sets in the openEHR terminology. ||
    1933 ||Constants ||Signature ||Meaning ||
    1934 ||||Code_set_id_character_sets: String is “character sets” ||||
    1935 ||||Code_set_id_compression_algorithms: Stringis “compression algorithms” ||||
    1936 ||||Code_set_id_countries: String is “countries” ||||
    1937 ||||Code_set_id_integrity_check_algorithms: Stringis “integrity check algorithms” ||||
    1938 ||||Code_set_id_languages: String is “languages” ||||
     1804||CLASS||OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS||
     1805||||Group_id_property: Stringis “property”||||
     1806||||Group_id_participation_function: Stringis “participation function”||||
     1807||||Group_id_participation_mode: String is “participation mode”||||
     1808||||Group_id_subject_relationship: String is “subject relationship”||||
     1809||||Group_id_setting: String is “setting”||||
     1810||||Group_id_term_mapping_purpose: String is “term mapping purpose”||||
     1811||||Group_id_version_lifecycle_state: Stringis “version lifecycle state”||||
     1812||Functions||Signature||Meaning||
     1813||||valid_terminology_group_id (an_id: String): Boolean||Validity function to test if an identifier is in the set defined by this class.||
     1814||Invariants||||
     1815
     18165.4.5 OPENEHR_CODE_SET_IDENTIFIERS Class
     1817
     1818||CLASS||OPENEHR_CODE_SET_IDENTIFIERS||
     1819||Purpose||List of identifiers for code sets in the openEHR terminology.||
     1820||Constants||Signature||Meaning||
     1821||||Code_set_id_character_sets: String is “character sets”||||
     1822||||Code_set_id_compression_algorithms: Stringis “compression algorithms”||||
     1823||||Code_set_id_countries: String is “countries”||||
     1824||||Code_set_id_integrity_check_algorithms: Stringis “integrity check algorithms”||||
     1825||||Code_set_id_languages: String is “languages”||||
    19391826
    19401827[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 59 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    19411828
    1942  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1829  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    19431830
    19441831Terminology Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    19451832
    1946 
    1947 ||CLASS ||OPENEHR_CODE_SET_IDENTIFIERS ||
    1948 ||||Code_set_id_media_types: String is “media types” ||||
    1949 ||||Code_set_id_normal_statuses: String is “normal statuses” ||||
    1950 ||Functions ||Signature ||Meaning ||
    1951 ||||valid_code_set_id (an_id: String): Boolean ||Validity function to test if an identifier is in the set defined by this class. ||
    1952 ||Invariants ||||
     1833||CLASS||OPENEHR_CODE_SET_IDENTIFIERS||
     1834||||Code_set_id_media_types: String is “media types”||||
     1835||||Code_set_id_normal_statuses: String is “normal statuses”||||
     1836||Functions||Signature||Meaning||
     1837||||valid_code_set_id (an_id: String): Boolean||Validity function to test if an identifier is in the set defined by this class.||
     1838||Invariants||||
    19531839
    19541840Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 60 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    19551841
    1956 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     1842[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    19571843
    19581844[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Measurement Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    19591845
    1960 Measurement Package
    1961 
    1962 6.1 Overview
    1963 
    1964 The Measurement package defines a minimum of semantics relating to quantitative measurement, units, and conversion, enabling the Quantity package of the openEHR Data Types Information Model to be correctly expressed. As for the Terminology package, a simple service interface is assumed, which provides useful functions to other parts of the reference model. The definitions underlying measurement and units come from a variety of sources, including:
    1965 
    1966 
    1967  * CEN ENV 12435, Medical Informatics - Expression of results of measurements in health sciences (see [http://www.centc251.org/ http://www.centc251.org] );
     1846Measurement Package
     1847
     18486.1 Overview
     1849
     1850The Measurement package defines a minimum of semantics relating to quantitative measurement, units, and conversion, enabling the Quantity package of the openEHR Data Types Information Model to be correctly expressed. As for the Terminology package, a simple service interface is assumed, which provides useful functions to other parts of the reference model. The definitions underlying measurement and units come from a variety of sources, including:
     1851
     1852 * CEN ENV 12435, Medical Informatics - Expression of results of measurements in health sciences (see [http://www.centc251.org/ http://www.centc251.org] );
    19681853 * the Unified Code for Units of Measure (UCUM), developed by Gunther Schadow and Clement J. !McDonald of The Regenstrief Institute (available in HL7v3 ballot materials; [http://www.hl7.org/ http://www.hl7.org).]
    19691854
    1970 These of course rest in turn upon a vast amount of literature and standards, mainly from ISO on the subject of scientific measurement.
    1971 
    1972 6.2 Service Interface
    1973 
    1974 A simple measurement data service interface is defined according to [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19264 FIGURE 7] , enabling quantitative semantics to be used formally from within the Reference Model. Note that this service as currently defined in no way seeks to properly model the semantics of units, conversions etc - it provides only the minimum functions required by the openEHR Reference Model.
    1975 
    1976 measurement
    1977 
    1978 
    1979 ||MEASUREMENT_SERVICE ||
     1855These of course rest in turn upon a vast amount of literature and standards, mainly from ISO on the subject of scientific measurement.
     1856
     18576.2 Service Interface
     1858
     1859A simple measurement data service interface is defined according to [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19264 FIGURE 7] , enabling quantitative semantics to be used formally from within the Reference Model. Note that this service as currently defined in no way seeks to properly model the semantics of units, conversions etc - it provides only the minimum functions required by the openEHR Reference Model.
     1860
     1861measurement
     1862
     1863||MEASUREMENT_SERVICE||
    19801864||||
    1981 ||is_valid_units_string (units: String): Boolean units_equivalent (units1, units2: String): Boolean ||
    1982 
    1983 
    1984 ||FIGURE 7 rm.support.measurement Package ||
    1985 ||6.2.1 ||Class Definitions ||
    1986 ||6.2.1.1 ||MEASUREMENT_SERVICE Class ||
    1987 
    1988 
    1989 ||CLASS ||MEASUREMENT_SERVICE ||
    1990 ||Purpose Functions ||Defines an object providing proxy access to a measurement information service. Signature Meaning ||
    1991 ||||is_valid_units_string (units: String): Boolean require units /= Void True if the units string ‘units’ is a valid string according to the HL7 UCUM specification. ||
     1865||is_valid_units_string (units: String): Boolean units_equivalent (units1, units2: String): Boolean||
     1866
     1867||FIGURE 7 rm.support.measurement Package||
     1868||6.2.1||Class Definitions||
     1869||6.2.1.1||MEASUREMENT_SERVICE Class||
     1870
     1871||CLASS||MEASUREMENT_SERVICE||
     1872||Purpose Functions||Defines an object providing proxy access to a measurement information service. Signature Meaning||
     1873||||is_valid_units_string (units: String): Boolean require units /= Void True if the units string ‘units’ is a valid string according to the HL7 UCUM specification.||
    19921874
    19931875[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 61 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    19941876
    1995  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1877  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    19961878
    19971879Measurement Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    19981880
    1999 
    2000 ||CLASS ||MEASUREMENT_SERVICE ||
    2001 ||||units_equivalent (units1, units2: String): Boolean require units1 /= Void and then is_valid_units_string(units1) units2 /= Void and then is_valid_units_string(units2) ||True if two units strings correspond to the same measured property. ||
    2002 ||Invariants ||||
     1881||CLASS||MEASUREMENT_SERVICE||
     1882||||units_equivalent (units1, units2: String): Boolean require units1 /= Void and then is_valid_units_string(units1) units2 /= Void and then is_valid_units_string(units2)||True if two units strings correspond to the same measured property.||
     1883||Invariants||||
    20031884
    20041885Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 62 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    20051886
    2006 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     1887[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    20071888
    20081889[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Definition Package Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    20091890
    2010 Definition Package
    2011 
    2012 7.1 Overview
    2013 
    2014 The definition[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19330 package, illustrated in FIGURE 8, defines symbolic definitions used by the] openEHR models. Only a small number are currently defined.
    2015 
    2016 definition
    2017 
    2018 BASIC_DEFINITIONS
    2019 
    2020 CR: Character is ‘\015’  LF: Character is ‘\012’ 
    2021 
    2022 OPENEHR_DEFINITIONS
    2023 
    2024 
    2025 ||FIGURE 8 rm.support.definition Package ||
    2026 ||7.2 ||Class Definitions ||
    2027 ||7.2.1 ||OPENEHR_DEFINITIONS Class ||
    2028 
    2029 
    2030 ||CLASS ||OPENEHR_DEFINITIONS ||
    2031 ||Purpose ||Inheritance class to provide access to constants defined in other packages. ||
    2032 ||Inherit ||BASIC_DEFINITIONS ||
    2033 ||Attributes ||Signature ||Meaning ||
    2034 ||Invariants ||||
    2035 
    2036 7.2.2 BASIC_DEFINITIONS Class
    2037 
    2038 
    2039 ||CLASS ||BASIC_DEFINITIONS ||
    2040 ||Purpose ||Defines globally used constant values. ||
    2041 ||Attributes ||Signature ||Meaning ||
    2042 ||||CR: Character is ‘\015’ ||Carriage return character ||
    2043 ||||LF: Character is ‘\012’ ||Linefeed character ||
    2044 ||Invariants ||||
     1891Definition Package
     1892
     18937.1 Overview
     1894
     1895The definition[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19330 package, illustrated in FIGURE 8, defines symbolic definitions used by the] openEHR models. Only a small number are currently defined.
     1896
     1897definition
     1898
     1899BASIC_DEFINITIONS
     1900
     1901CR: Character is ‘\015’  LF: Character is ‘\012’
     1902
     1903OPENEHR_DEFINITIONS
     1904
     1905||FIGURE 8 rm.support.definition Package||
     1906||7.2||Class Definitions||
     1907||7.2.1||OPENEHR_DEFINITIONS Class||
     1908
     1909||CLASS||OPENEHR_DEFINITIONS||
     1910||Purpose||Inheritance class to provide access to constants defined in other packages.||
     1911||Inherit||BASIC_DEFINITIONS||
     1912||Attributes||Signature||Meaning||
     1913||Invariants||||
     1914
     19157.2.2 BASIC_DEFINITIONS Class
     1916
     1917||CLASS||BASIC_DEFINITIONS||
     1918||Purpose||Defines globally used constant values.||
     1919||Attributes||Signature||Meaning||
     1920||||CR: Character is ‘\015’||Carriage return character||
     1921||||LF: Character is ‘\012’||Linefeed character||
     1922||Invariants||||
    20451923
    20461924[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 63 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    20471925
    2048  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1926  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    20491927
    20501928Definition Package [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
     
    20521930Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 64 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    20531931
    2054 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     1932[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    20551933
    20561934[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] References Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    20571935
    2058 A References
    2059 
    2060 
    2061 ||A.1 ||General ||
    2062 ||1 ||Cimino J J. Desiderata for Controlled Medical vocabularies in the Twenty-First Century. IMIA ||
    2063 ||||WG6 Conference, Jacksonville, Florida, Jan 19-22, 1997. ||
     1936A References
     1937
     1938||A.1||General||
     1939||1||Cimino J J. Desiderata for Controlled Medical vocabularies in the Twenty-First Century. IMIA||
     1940||||WG6 Conference, Jacksonville, Florida, Jan 19-22, 1997.||
    20641941
    20651942[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 65 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    20661943
    2067  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org 
     1944  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
    20681945
    20691946References [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model] Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
     
    20711948Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19440 Page 66 of 67] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}]
    20721949
    2073 [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org 
     1950[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15429 © 2003-2006 The openEHR Foundation]  email: info@openEHR.org web: !http://www.openEHR.org
    20741951
    20751952[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15311 Support Information Model]
     
    20771954Rev [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 1.6.0]
    20781955
    2079 END OF DOCUMENT 
     1956END OF DOCUMENT
    20801957
    20811958[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15315 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}] [file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_19439 Page 67 of 67] Date of Issue:[file:///home/skoba/src/openehr-jp/adl/trunk/pdf2html/rm/support_im/support_im.htm#LinkTarget_15448 08 Apr 2007]
    20821959
    2083  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org
     1960  © 2003-2006 The openEHR Foundation    email: info@openEHR.org web: !http://www.openEHR.org