| Literature DB >> 23995217 |
Tony Austin1, Shanghua Sun, Taher Hassan, Dipak Kalra.
Abstract
The five parts of the ISO EN 13606 standard define a means by which health-care records can be exchanged between computer systems. Starting within the European standardisation process, it has now become internationally ratified in ISO. However, ISO standards do not require that a reference implementation be provided, and in order for ISO EN 13606 to deliver the expected benefits, it must be provided not as a document, but as an operational system that is not vendor specific. This article describes the evolution of an Extensible Markup Language (XML) Schema through three iterations, each of which emphasised one particular approach to delivering an executable equivalent to the printed standard. Developing these operational versions and incorporating feedback from users of these demonstrated where implementation compromises were needed and exposed defects in the standard. These are discussed herein. They may require a future technical revision to ISO EN 13606 to resolve the issues identified.Entities:
Keywords: Electronic healthcare record; ISO EN 13606; recommendations; standards
Mesh:
Year: 2013 PMID: 23995217 PMCID: PMC4107818 DOI: 10.1177/1460458212473993
Source DB: PubMed Journal: Health Informatics J ISSN: 1460-4582 Impact factor: 2.681
Figure 1.Nesting in the EHR.
EHR: Electronic Health-Care Record.
tags to delineate paragraphs.
Correctable oversights in the ISO EN 13606 Standard.
| Class structure | Although the EN 13606 primitive package includes many types native to all engineering environments, no such native type will include the full range of possible null_flavours [1:6.4.2]. Indeed, some environments will not even permit primitive types to be NULL. Such examples will require an otherwise redundant redefinition to subclass DATA_VALUE [1:6.4.2] before data can actually be transmitted. The issue could be resolved by adding the null_flavour to the ELEMENT [1:6.2.12] class instead of the DATA_VALUE |
| The CS_reason [5:6.4] term list is defined but only one item from the given list is useful because the rest are not related to the clinical exchange. Rather, they describe technical reasons why a request cannot be fulfilled | |
| Attributes | The type of id (identifier) on IDENTIFIED_ENTITY [1:6.3.2] is not given in the printed class description but is included in the class diagram on page 47 of the standard |
| At several points in the standard, a graphical nomenclature is adopted where an ‘id’ in a white box is attached to a class definition. The intent of the standard is that this establishes an association based on the identifier of the associated object (i.e. the II [1:6.4.9]). The textual class descriptions usually make it seem that the actual object type should be used | |
| Set<T> [1:6.5] appears twice in the list of primitives expected to be available in all engineering environments | |
| Variable naming conventions are very mixed with both underlined_naming and camelCase naming used throughout. Sometimes, this even occurs within a single class | |
| In general, the obs_time interval [1:6.2.10] should give the beginning and ending of a clinical event or activity. However, the location of this within the ITEM class [1:6.2.10] instead of the ENTRY [1:6.2.9] unnecessarily reduces its utility to time series data only when many clinical events or activities describable in an ENTRY have a start and end | |
| In part 1, archetype_id is a String in RECORD_COMPONENT [1:6.2.4], but the set of all archetype_ids is SET<II> in EXTRACT_CRITERIA [1:6.2.3] | |
| Sensitivities can be represented using the CS_SENSITIVITY enumeration of part 4 throughout [4:5.1] (and not Integer) | |
| The standard mandates the media_type.coding_scheme_name of a multimedia container [1:6.4.6] as ‘in ISO/TR 21090:2005, Annex D’ and the charset.coding_scheme_name as ‘in ISO 21090 Annex C’ including the initial ‘in’ in both cases | |
| No default values are provided for the category of an ITEM [1:6.2.10], the status of an ACT [3:5.6] or the ROLE or NATURE of a LINK in part 3 [3:5.7, 3:5.8] |
Errors in the ISO EN 13606 Standard.
| Class structure | An ELEMENT [1:6.2.12] can have zero-or-one DATA_VALUE [1:6.4.2] instances. However, the DATA_VALUE is also the container for null_flavour, which makes it structurally possible for an ELEMENT to exist with no value and no null_flavour given. The ELEMENT class does not describe a countervailing invariant |
| ‘null_flavour’ [1:6.4.2] is defined as a CS class [1:6.4.3] which means that it can itself be a null_flavour | |
| The REQUEST in part 4 [4:6.4] defines the properties of a requestor of a policy. Coded Simple FUNCtional ROLE (CS_FUNC_ROLE) [4:6.4] therein refers to the FUNCTIONAL_ROLE [1:6.2.15] class, despite it not being named as such and not described as a CS [1:6.4.3]. CS_SETTING [4:6.4] is not given at all | |
| Attributes | There are disclosure implications of including all policy_ids [1:6.2.4] when providing an EHR_EXTRACT [1:6.2.2]. The recipient then knows the policies governing all other recipients |
| In many places in the standard, an invariant is specified on the ‘coding_scheme_name’ of the CS [1:6.4.3] or Coded Value (CV) [1:6.4.4] data type. This is intended to ensure that the coding scheme used to provide the information is a particular one. However, the actual variable name used in the CS and CV classes is ‘codingSchemeName’ and so as printed, the restriction cannot be enforced | |
| On several occasions in the standard, a code is described as having a CS [1:6.4.3] type but only two of the four necessary parts of the CS are provided by the documentation (usually a value and a human-readable portion). The XML third form jettisons the CS type entirely and uses XML enumerations for the standard’s term lists |
XML: Extensible Markup Language.
Features and limitations of XML Schema.
| Parameterised types | Concrete subclasses of DATA_VALUE [1:6.4.2] used in the high and the low properties of an InterVaL (IVL) [1:6.4.11] should be the same but this cannot be specified in XML Schema and requires additional support |
| A InterVaL of TimeStamps (IVL<TS>) [1:6.4.11] in particular should be a restriction on the data types of low and high in IVL to make them TS [1:6.4.7]. This impacts the representation of time_period [1:6.2.3], session_time [1:6.2.6], obs_time [1:6.2.10] and validTime [1:6.3.9] | |
| Possible simplifications | XML Schema obviously copes well with list-type definitions
based on primitive or extended types but requires restriction on the definition
(rather than an explicit type) to establish further semantics. For example, as a way
of establishing Set semantics without an explicit Set type, see |
| The only use of Array in the 13606-1 standard is multimedia-related [1:6.4.6], and it can therefore be replaced with a binary expression | |
| Coded Simple (CS) value [1:6.4.3] types fully specified in the standard could be represented as simple XML enumerations (with whitespace removed as necessary) | |
| A general replacement to a consistent <xsd:string> type can be made of miscellaneous strings and TEXT [1:6.4.5] values in the standard, and Encapsulated Data (ED) [1:6.4.6] where the intent is to encode a string | |
| Mandatory TS [1:6.4.7] timestamps can be an <xsd:dateTime> | |
| Mandatory BooLean (BL) [1:6.5] markers can be an <xsd:boolean> | |
| Amendments | In the second XML form, a Schematron rule[ |
XML: Extensible Markup Language.
Software Or Device information.
| deviceManufacturerModelName | Apple 1.67 GHz PowerBook5, 8 |
| deviceSerialNumber | WXXXXMXSXX |
| owningOrganisation | UCL |
| description | Fred Blogg’s Laptop |
| softwareManufacturerModelName | Apple Pages ‘08 3.0.3 |
UCL: University College London.