Spanish MOH 13606 case study

This page provides some insight into ADL 1.5 by looking at recently published MoH Spain 13606 ADL 1.4 archetypes, and shows how they look in ADL 1.5. Some errors are correctable, and the archetypes are more efficiently expressed.

The Spanish Ministry of Health, Social Services, and Equality has published an official set of ISO13606 archetypes and derived artifacts for the communication of EHR among the regions of Spain. These archetypes have been developed by the UPV based on the official "Clinical Report Minimum Data Set" (CMDIC - Conjunto Mínimo de Datos de Informes Clínicos). [reported by Diega Bosca, on the openEHR clinical list 24 Mar 2014]

The ADL 1.4 archetypes are available here in the openEHR adl-archetypes Github repo for convenience.

The ADL 1.5 converted archetypes are here in the same repo.

Simple Example

ADL 1.4ADL 1.5
archetype (adl_version=1.4)
    CEN-EN13606-ENTRY.Farmacia.v1

concept
    [at0000]

language
    original_language = <[ISO_639-1::es]>

description
    original_author = <
        ["email"] = <"jamaldo@upv.es">
        ["name"] = <"Grupo de Informática Médica (IBIME)">
        ["organisation"] = <"Universitat Politècnica de Valencia">
        ["date"] = <"20131108">
    >
    lifecycle_state = <"Draft">
    other_contributors = <"Arturo Romero, Ministerio de Sanidad, Servicios Sociales e Igualdad","Pablo Serrano, Hospital de Fuenlabrada">
    details = <
        ["es"] = <
            language = <[ISO_639-1::es]>
            keywords = <"CMDIC">
        >
    >

definition
    ENTRY[at0000] occurrences matches {1..1} matches {  -- Farmacia
        items existence matches {0..1} cardinality matches {0..*; unordered} matches {
            ELEMENT[at0001] occurrences matches {0..1} matches {  -- NIF/CIF
                value existence matches {0..1} matches {
                    SIMPLE_TEXT[at0002] occurrences matches {0..1} matches {  -- SIMPLE_TEXT
                        originalText existence matches {0..1} matches {/.*/}
                    }
                }
            }
            ELEMENT[at0003] occurrences matches {0..1} matches {  -- Nombre
                value existence matches {0..1} matches {
                    SIMPLE_TEXT[at0004] occurrences matches {0..1} matches {  -- SIMPLE_TEXT
                        originalText existence matches {0..1} matches {/.*/}
                    }
                }
            }
        }
    }

ontology
    term_definitions = <
        ["es"] = <
            items = <
                ["at0000"] = <
                    text = <"Farmacia">
                    description = <"Farmacia">
                >
                ["at0001"] = <
                    text = <"NIF/CIF">
                    description = <"">
                >
                ["at0002"] = <
                    text = <"SIMPLE_TEXT">
                    description = <"">
                >
                ["at0003"] = <
                    text = <"Nombre">
                    description = <"">
                >
                ["at0004"] = <
                    text = <"SIMPLE_TEXT">
                    description = <"">
                >
            >
        >
    >
    constraint_definitions = <
    >
    term_binding = <
    >
    constraint_binding = <
    >
archetype (adl_version=1.5.1; generated)
	CEN-EN13606-ENTRY.Farmacia.v1.0.0

language
	original_language = <[ISO_639-1::es]>

description
	original_author = <
		["email"] = <"jamaldo@upv.es">
		["name"] = <"Grupo de Informática Médica (IBIME)">
		["organisation"] = <"Universitat Politècnica de Valencia">
		["date"] = <"20131108">
	>
	details = <
		["es"] = <
			language = <[ISO_639-1::es]>
			purpose = <"???">
			keywords = <"CMDIC", ...>
		>
	>
	lifecycle_state = <"unstable">
	other_contributors = <"Arturo Romero, Ministerio de Sanidad, Servicios Sociales e Igualdad", "Pablo Serrano, Hospital de Fuenlabrada">

definition
	ENTRY[id1] occurrences matches {1} matches {	-- Farmacia
		items matches {
			ELEMENT[id2] occurrences matches {0..1} matches {	-- NIF/CIF
				value matches {
					SIMPLE_TEXT[id3] occurrences matches {0..1} matches {	-- SIMPLE_TEXT
						originalText matches {/.*/}
					}
				}
			}
			ELEMENT[id4] occurrences matches {0..1} matches {	-- Nombre
				value matches {
					SIMPLE_TEXT[id5] occurrences matches {0..1} matches {	-- SIMPLE_TEXT
						originalText matches {/.*/}
					}
				}
			}
		}
	}

terminology
	term_definitions = <
		["es"] = <
			["id1"] = <
				text = <"Farmacia">
				description = <"Farmacia">
			>
			["id2"] = <
				text = <"NIF/CIF">
				description = <"">
			>
			["id3"] = <
				text = <"SIMPLE_TEXT">
				description = <"">
			>
			["id4"] = <
				text = <"Nombre">
				description = <"">
			>
			["id5"] = <
				text = <"SIMPLE_TEXT">
				description = <"">
			>
		>
	>

Improvements

In the above we can see the following changes:

  • The ADL 1.5 archetype is slightly shorter
  • id-coding replaces at-codes for node identifiers
  • the redundant ADL 1.4 'concept' section near the top is removed
  • the lifecycle state has change from 'Draft' to the proposed standard 'unstable' (on the default assumption that this is an 'uncontrolled' archetype, which is not of course literally true)
  • the id has change to CEN-EN13606-ENTRY.Farmacia.v1.0.0, i.e. an ADL 1.5 id
  • existence and cardinality constraints that don't actually represent any constraint with respect to the underlying RM are stripped out

Further changes could be made in the ADL 1.5 form:

  • remove the terminology definitions id3 and id5, which provide no information and are not needed under the new id rules
  • constraints of the form "originalText matches {/.*/}" should be removed - they don't add anything further than the reference model String type