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>

