Hello to everybody.

We have detected an issue in the ADL grammar related to the node_id (atXXXX
value) of Internal References. An Internal Reference node, as any other
C_OBJECT, inherits the node_id attribute. But its ADL grammar does not allow
to define this value in a textual representation.

archetype_internal_ref:
  SYM_USE_NODE type_identifier c_occurrences object_path
| SYM_USE_NODE type_identifier error


We think it is necessary to allow the introduction of this information in
some cases. When we re-use an internal data structure, we are maybe also
changing its meaning. For example, looking at the example provided in the
ADL 1.4 document, page 59.

CONTACT [at0004] ? { -- home contact
    purpose ? {-- etc --}
    addresses cardinality ? {0..*} ? {
        ADDRESS [at0005] ? { -- phone
            type ? {-- etc --}
            details ? {-- etc --}
        }
        ADDRESS [at0006] ? { -- fax
            type ? {-- etc --}
            details ? {-- etc --}
        }
        ADDRESS [at0007] ? { -- email
            type ? {-- etc --}
            details ? {-- etc --}
        }
    }
}

CONTACT [at0008] ? { -- work contact
    purpose ? {-- etc --}
        addresses cardinality ? {0..*} ? {
            use_node ADDRESS /contacts[at0004]/addresses[at0005] -- phone
            use_node ADDRESS /contacts[at0004]/addresses[at0006] -- fax
            use_node ADDRESS /contacts[at0004]/addresses[at0007] -- email
        }
    }
}

We re-use nodes at0005, at0006 and at0007 but we do not assign a new atXXXX
code to them. Structurally, this is correct, but not semantically (i.e. we
reuse structure but not meaning). It is not the same a "home" phone number
than a "work" phone number. In fact, SNOMED uses diferent codes for each
case: a "Patient home telephone number" (code 429697006) and a
<javascript:action(27)>"Patient work telephone number" (code 428843000).

To sum up, it would be necessary to change the ADL grammar to support the
use of new definitions of term_codes in the archetype internal references,
something like:

    use_node ADDRESS*[at1234]* /contacts[at0004]/addresses[at0005] -- phone


Finally, it is necessary to remember that the archetype slot (which is a
very similar use case) allows this kind of definition.

c_archetype_slot_id:
  SYM_ALLOW_ARCHETYPE type_identifier
| SYM_ALLOW_ARCHETYPE type_identifier *V_LOCAL_TERM_CODE_REF*
| SYM_ALLOW_ARCHETYPE error



-- 
David Moner Cano
Grupo de Inform?tica Biom?dica - IBIME
Instituto ITACA
http://www.ibime.upv.es

Universidad Polit?cnica de Valencia (UPV)
Camino de Vera, s/n, Edificio G-8, Acceso B, 3? planta
Valencia ? 46022 (Espa?a)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20090209/d47e07fc/attachment.html>

Reply via email to