Hi Heath!
Just for the record, I think as Diego: I don't have a problem to have the
pass_through attr on templates right now, but we have to comment possible
issues with this and other attributes to improve templates in the future. The
pass_through view constraint is not a GUI directive, it is a data view
directive which is consistent with archetypes/templates being definitions of
data structures. Just as form generators may use this data definition to lay
out a form and bind to a data instance, it may use this pass_through view
constraint to collapse a redundant grouping on a screen. Similarly an XML
schema or class generator may use this same constraint to collapse a redundant
element grouping. This ensures that screen layout and binding are consistent
with the XML schema or class it will bind to. If I understand correctly, the
pass_through attribute is only for data displaying on a screen (as you mention
the use for data grouping or collapsing). If that's right, I don't think that
should be part of the generic template structure, because templates are meant
to represent other elements than data views/GUI, like messages, reports, etc.
As you mention " screen layout and binding are consistent with the XML schema
or class it will bind to" I feel maybe this is a little attached to Oceans
implementation, e.g. in our implementaition we don't have binding with XML
Schemas .
I historically was of the opinion that GUI only directives such as control type
or position should be provided separately as these a really implementation
specific and have minimal use in shared artefacts such as archetypes and
templates. Having said that the view constraint could easily be used for this
purpose if desired. I totally agree with you. Having an operative template with
all the data structure in it, the last step should be define the GUI Template
with controls, position, style, etc., and that should be the artefact consumed
by EHR software for clinical data recording and displaying.
The XSD for the view constraint is as follows: <xs:complexType
name="T_VIEW"> <xs:sequence> <xs:element name="constraints"
minOccurs="0" maxOccurs="unbounded"> <xs:complexType>
<xs:sequence> <xs:element name="items" maxOccurs="unbounded" >
<xs:complexType> <xs:sequence>
<xs:element name="value" type="xs:anySimpleType"/>
</xs:sequence> <xs:attribute name="id" type="xs:string"
use="required"/> </xs:complexType> </xs:element>
</xs:sequence> <xs:attribute name="path" type="xs:string"
use="required"/> </xs:complexType> </xs:element>
</xs:sequence> </xs:complexType> An example use of this is as follows:
<template xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.openehr.org/v1"> ? <view> <constraints
path="/content[openEHR-EHR-OBSERVATION.lab_test.v1]/data[at0001]/events[at0002]/data[at0003]/items[openEHR-EHR-CLUSTER.specimen.v1]/items[at0046]">
<items id="pass_through"> <value>true</value> </items>
</constraints> </view></template> Heath
Kind regards,Pablo.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20120125/cb0b6b65/attachment.html>