This code may help - see the function build_slot_id_index from here 
<http://www.openehr.org/svn/ref_impl_eiffel/BRANCHES/adl1.5/libraries/openehr/src/am/archetype/archetype_phase_1_validator.e>.
 
It's eiffel, so easy to read ;-)

- thomas

On 12/04/2012 11:50, Athanasios Anastasiou wrote:
> Hello everyone
>
> Coming back to the "archetype slots" issue, the adl 1.5 document 
> specifies three types of slots but i can only see how to define two of 
> them, based solely on the data that become available by the archetypes 
> definition.
>
> I can define the "formal" and "recommendation" ones, but not the 
> "substantive" because (i think) that it is identical to a 
> "recommendation". (Should i be looking at the way the regexp is 
> written as well?)
>
> At the moment:
>
> if (includes is present) xor (excludes is present)
>     //This is a recommendation, any "allow archetype TYPE" can match 
> but it is recommended to use the includes / excludes matches.
> else
>     //At this point the xor has failed but effectively we know that 
> both includes and excludes are present in an assertion
>     if (includes == "/.*/) xor (excludes == "/.*/")
>         //This is a formal binding
>
> Is the above snippet along the right track?
>
> All the best
> Athanasios Anastasiou
>
>
>
>
>
>
>
>
>
>
>
> On 10/04/2012 19:50, Thomas Beale wrote:
>>
>>
>> Hi Athanasios,
>>
>> see the ADL 1.5 spec
>> <http://www.openehr.org/svn/specification/TRUNK/publishing/architecture/am/adl1.5.pdf>
>>  
>>
>> section 5.3.9.3 for the rules.
>>
>> - thomas
>>
>> On 10/04/2012 17:11, Athanasios Anastasiou wrote:
>>> Hello everyone
>>>
>>> How do the "includes / excludes" fields of an Archetype Slot get
>>> interperted to conclude with one set of rules about which archetypes
>>> are allowed to be attached to a slot?
>>>
>>> Browsing through various archetypes i am noticing that some slots will
>>> only have one or more "includes" while others have one or more
>>> "includes" and ".*" at the "excludes" field.
>>>
>>> Are these two fields to be cascaded? (i.e. Include everything that
>>> satisfies the include condition and then FROM THE INCLUDED LIST
>>> exclude everything that satisfies the exclude condition)
>>>
>>> Or would they operate in parallel? (i.e. Get everything that satisfies
>>> the include condition, Get everything that satisfies the exclude
>>> condition, merge the two sets. The merged set governs what is allowed
>>> to be included to a particular slot).
>>>
>>>
>>> And, are the following equivalent?
>>>
>>> "include
>>> archetype_id/value matches {/openEHR-EHR-CLUSTER\.address\.v1/}
>>> exclude
>>> archetype_id/value matches {/.*/}"
>>>
>>> This means "Include ONLY an address" (?)
>>> In this case it makes sense to evaluate the include/exclude fields in
>>> parallel.
>>>
>>> "include
>>> archetype_id/value matches 
>>> {/openEHR-EHR-CLUSTER\.telecom_details\.v1/}"
>>>
>>> (In this case there was no exclude)
>>> This must mean "Include ONLY telecom_details" (?)
>>>
>>>
>>> A secondary question, is there any case where it might be required to
>>> "Include" or "Exclude" an archetype with a condition other than its
>>> name / class? I am asking this because the "includes" / "excludes" are
>>> Assertions but all archetypes i have seen so far "match" the
>>> archetype_id/value only.
>>>
>>> Looking forward to hearing from you
>>> Athanasios Anastasiou
>>>
>>> _______________________________________________
>>> openEHR-technical mailing list
>>> openEHR-technical at lists.openehr.org
>>> http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org
>>>  
>>>
>>>
>>>
>>
>>
>> -- 
>> Ocean Informatics     *Thomas Beale
>> Chief Technology Officer, Ocean Informatics
>> <http://www.oceaninformatics.com/>*
>>
>> Chair Architectural Review Board, /open/EHR Foundation
>> <http://www.openehr.org/>
>> Honorary Research Fellow, University College London
>> <http://www.chime.ucl.ac.uk/>
>> Chartered IT Professional Fellow, BCS, British Computer Society
>> <http://www.bcs.org.uk/>
>> Health IT blog <http://www.wolandscat.net/>
>>
>>
>> *
>> *
>


-- 
Ocean Informatics       *Thomas Beale
Chief Technology Officer, Ocean Informatics 
<http://www.oceaninformatics.com/>*

Chair Architectural Review Board, /open/EHR Foundation 
<http://www.openehr.org/>
Honorary Research Fellow, University College London 
<http://www.chime.ucl.ac.uk/>
Chartered IT Professional Fellow, BCS, British Computer Society 
<http://www.bcs.org.uk/>
Health IT blog <http://www.wolandscat.net/>


*
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20120412/1ea27738/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ocean_full_small.jpg
Type: image/jpeg
Size: 5828 bytes
Desc: not available
URL: 
<http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20120412/1ea27738/attachment-0001.jpg>

Reply via email to