Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changes for SPECRM-124 - Remove PARTY._reverse_relationships_ attri… #23

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified computable/UML/openEHR_UML-RM.mdzip
Binary file not shown.
4 changes: 0 additions & 4 deletions docs/UML/classes/org.openehr.rm.demographic.party.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,6 @@ h|*0..1*
|*details*: `link:/releases/RM/{rm_release}/data_structures.html#_item_structure_class[ITEM_STRUCTURE^]`
a|All other details for this Party.

h|*0..1*
|*reverse_relationships*: `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<link:/releases/BASE/{base_release}/base_types.html#_locatable_ref_class[LOCATABLE_REF^]>`
a|References to relationships in which this Party takes part as target.

h|*0..1*
|*relationships*: `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<<<_party_relationship_class,PARTY_RELATIONSHIP>>>`
a|Relationships in which this Party takes part as source.
Expand Down
6 changes: 0 additions & 6 deletions docs/UML/diagrams/RM-demographic.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 16 additions & 15 deletions docs/demographic.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<meta name="keywords" content="EHR, demographics, reference model, openehr">
<title>Demographic Information Model</title>
<link rel="stylesheet" href="https://specifications.openehr.org/styles/openehr.css">
<link rel="stylesheet" href="https://specifications.openehr.org/styles/asciidoctor-tabs.css">
</head>
<body class="book toc2 toc-left">
<div id="header">
Expand Down Expand Up @@ -139,7 +140,7 @@ <h1 id="_demographic_information_model" class="sect0"><a class="anchor" href="#_
</colgroup>
<thead>
<tr>
<th class="tableblock halign-center valign-top" colspan="2">&#169; 2003 - 2023 The openEHR Foundation</th>
<th class="tableblock halign-center valign-top" colspan="2">&#169; 2003 - 2024 The openEHR Foundation</th>
</tr>
</thead>
<tbody>
Expand Down Expand Up @@ -179,13 +180,19 @@ <h2 id="_amendment_record"><a class="anchor" href="#_amendment_record"></a>Amend
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="latest_issue"></a>2.0.6</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://specifications.openehr.org/tickets/SPECRM-124" target="_blank" rel="noopener">SPECRM-124</a>: Remove <code>PARTY.<em>reverse_relationships</em></code> attribute.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">S Iancu</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="latest_issue_date"></a>01 Nov 2024</p></td>
</tr>
<tr>
<th class="tableblock halign-center valign-top" colspan="4"><p class="tableblock"><strong>RM Release 1.1.0</strong></p></th>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="latest_issue"></a>2.0.5</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.5</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://specifications.openehr.org/tickets/SPECPUB-7" target="_blank" rel="noopener">SPECPUB-7</a>: Convert citations to bibtex form.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">T Beale</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="latest_issue_date"></a>15 Dec 2019</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">15 Dec 2019</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
Expand Down Expand Up @@ -597,13 +604,13 @@ <h4 id="_party_relationships"><a class="anchor" href="#_party_relationships"></a
<div class="title">Figure 2. General Relationship Model</div>
</div>
<div class="paragraph">
<p>Relationships are considered directional, hence the use of the attribute names source and target, however, these names are otherwise neutral, and give no indication as to the meaning of the relationships, such as which party is responsible and which accountable (for comparison, see the demographic models of Fowler (<a href="#Fowler1997">Fowler&#44; 1997</a>)). Accordingly, each Party involved in a relationship includes it in its relationships list, if it is at the source end, or in the <code><em>reverse_relationships</em></code> list, if at the target end.</p>
<p>Relationships are considered directional, hence the use of the attribute names source and target, however, these names are otherwise neutral, and give no indication as to the meaning of the relationships, such as which party is responsible and which accountable (for comparison, see the demographic models of Fowler (<a href="#Fowler1997">Fowler&#44; 1997</a>)). Accordingly, each Party involved in a relationship includes it in its relationships list, if it is at the source end.</p>
</div>
<div class="paragraph">
<p>The usual way to determine the directionality of a relationship between two Parties is usually by which Party’s actions caused the relationship to come into being. For example, a relationship representing the concept "patient", between a health consumer and a health care organisation would have the consumer as source and the organisation as target.</p>
</div>
<div class="paragraph">
<p><code>PARTY_RELATIONSHIPs</code> are stored as part of the data of the <code>PARTY</code> designated as the source. This means that the relationships attribute is by value, while reverse_relationships is by references, as are <code>PARTY_RELATIONSHIP.<em>source</em></code> and target. The actual kind of reference is via the use of <code>OBJECT_REFs</code> containing <code>HIER_OBJECT_IDs</code> to denote the Version container of a Party, rather than <code>OBJECT_VERSION_IDs</code>, which would denote particular versions. Logically this implements the semantic that such relationships in the real world are between <em>continuants</em>, i.e. the real Parties, not just one of their version instances in a demographic system.</p>
<p><code>PARTY_RELATIONSHIPs</code> are stored as part of the data of the <code>PARTY</code> designated as the source. This means that the relationships attribute is by value, while the <code>PARTY_RELATIONSHIP.<em>source</em></code> and <code><em>target</em></code> are represented by references. The actual kind of reference is via the use of <code>OBJECT_REFs</code> containing <code>HIER_OBJECT_IDs</code> to denote the Version container of a Party, rather than <code>OBJECT_VERSION_IDs</code>, which would denote particular versions. Logically this implements the semantic that such relationships in the real world are between <em>continuants</em>, i.e. the real Parties, not just one of their version instances in a demographic system.</p>
</div>
</div>
<div class="sect3">
Expand Down Expand Up @@ -679,13 +686,6 @@ <h4 id="_party_class"><a class="anchor" href="#_party_class"></a>2.2.1. PARTY Cl
</tr>
<tr>
<th class="tableblock halign-center valign-top"><p class="tableblock"><strong>0..1</strong></p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>reverse_relationships</strong>: <code><a href="/releases/BASE/latest/foundation_types.html#_list_class">List<sup></a>&lt;<a href="/releases/BASE/latest/base_types.html#_locatable_ref_class">LOCATABLE_REF</sup></a>&gt;</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>References to relationships in which this Party takes part as target.</p>
</div></div></td>
</tr>
<tr>
<th class="tableblock halign-center valign-top"><p class="tableblock"><strong>0..1</strong></p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>relationships</strong>: <code><a href="/releases/BASE/latest/foundation_types.html#_list_class" target="_blank" rel="noopener">List</a>&lt;<a href="#_party_relationship_class">PARTY_RELATIONSHIP</a>&gt;</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Relationships in which this Party takes part as source.</p>
Expand Down Expand Up @@ -1288,14 +1288,14 @@ <h4 id="_agent_class"><a class="anchor" href="#_agent_class"></a>2.2.13. AGENT C
<div class="sect2">
<h3 id="_instance_examples"><a class="anchor" href="#_instance_examples"></a>2.3. Instance Examples</h3>
<div class="paragraph">
<p>In the following instance examples, the values of the attributes uid, source, target, and reverse_relationships are not meant to be taken as literally valid <code>OBJECT_IDs</code> - for the purposes of clarity, simple integers have been used.</p>
<p>In the following instance examples, the values of the attributes <code><em>uid</em></code>, <code><em>source</em></code> and <code><em>target</em></code> are not meant to be taken as literally valid <code>OBJECT_IDs</code>: for the purposes of clarity, simple integers have been used.</p>
</div>
<div class="sect3">
<h4 id="_parties"><a class="anchor" href="#_parties"></a>2.3.1. Parties</h4>
<div class="sect4">
<h5 id="_person"><a class="anchor" href="#_person"></a>2.3.1.1. Person</h5>
<div class="paragraph">
<p>The diagram below illustrates a possible set of instances for a <code>PERSON</code>, with home and work contact information. There are separate archetypes for the <code>PERSON</code>, each <code>ADDRESS</code>, and each <code>PARTY_IDENTITY</code>. In the following figure, "meaning" is the meaning from the value of the archetype_node_id attribute, functionally derived from the archetype local ontology.</p>
<p>The diagram below illustrates a possible set of instances for a <code>PERSON</code>, with home and work contact information. There are separate archetypes for the <code>PERSON</code>, each <code>ADDRESS</code>, and each <code>PARTY_IDENTITY</code>. In the following figure, "meaning" is the meaning from the value of the <code><em>archetype_node_id</em></code> attribute, functionally derived from the archetype local ontology.</p>
</div>
<div id="person_demographics" class="imageblock text-center text-center">
<div class="content">
Expand All @@ -1319,7 +1319,7 @@ <h5 id="_health_care_facility"><a class="anchor" href="#_health_care_facility"><
<div class="sect4">
<h5 id="_group"><a class="anchor" href="#_group"></a>2.3.1.5. Group</h5>
<div class="paragraph">
<p>The figure below illustrates the demographic information for a cadiac surgery team in a hospital. The group includes a head surgeon, anaesthetist, assistant surgeon, and presumably others (not shown). Each of these members of the team have an employment relationship with the hospital (shown only for one surgeon, in the interests of clarity).</p>
<p>The figure below illustrates the demographic information for a cardiac surgery team in a hospital. The group includes a head surgeon, anaesthetist, assistant surgeon, and presumably others (not shown). Each of these members of the team have an employment relationship with the hospital (shown only for one surgeon, in the interests of clarity).</p>
</div>
<div id="group_demographics" class="imageblock text-center text-center">
<div class="content">
Expand Down Expand Up @@ -1379,5 +1379,6 @@ <h2 id="_references"><a class="anchor" href="#_references"></a>References</h2>
Last updated 2022-11-17 15:24:01 UTC
</div>
</div>
<script src="https://specifications.openehr.org/js/asciidoctor-tabs.js"></script>
</body>
</html>
9 changes: 7 additions & 2 deletions docs/demographic/master00-amendment_record.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,17 @@
|===
|Issue|Details|Raiser|Completed

|[[latest_issue]]2.0.6
|{spec_tickets}/SPECRM-124[SPECRM-124^]: Remove `PARTY._reverse_relationships_` attribute.
|S Iancu
|[[latest_issue_date]]01 Nov 2024

4+^h|*RM Release 1.1.0*

|[[latest_issue]]2.0.5
|2.0.5
|{spec_tickets}/SPECPUB-7[SPECPUB-7^]: Convert citations to bibtex form.
|T Beale
|[[latest_issue_date]]15 Dec 2019
|15 Dec 2019

|
|{spec_tickets}/SPECRM-88[SPECRM-88^]. Improve documentation relating to use of `_uid_` in versioning and `LOCATABLE` descendants in `change_control` package (addresses {spec_tickets}/SPECPR-322[SPECPR-322^]).
Expand Down
10 changes: 5 additions & 5 deletions docs/demographic/master02-demographic_package.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ Relationships between parties in the real world may be expressed using `PARTY_RE
.General Relationship Model
image::{diagrams_uri}/general_model.png[id=general_model, align="center", width=50%]

Relationships are considered directional, hence the use of the attribute names source and target, however, these names are otherwise neutral, and give no indication as to the meaning of the relationships, such as which party is responsible and which accountable (for comparison, see the demographic models of Fowler cite:[Fowler1997]). Accordingly, each Party involved in a relationship includes it in its relationships list, if it is at the source end, or in the `_reverse_relationships_` list, if at the target end.
Relationships are considered directional, hence the use of the attribute names source and target, however, these names are otherwise neutral, and give no indication as to the meaning of the relationships, such as which party is responsible and which accountable (for comparison, see the demographic models of Fowler cite:[Fowler1997]). Accordingly, each Party involved in a relationship includes it in its relationships list, if it is at the source end.

The usual way to determine the directionality of a relationship between two Parties is usually by which Party’s actions caused the relationship to come into being. For example, a relationship representing the concept "patient", between a health consumer and a health care organisation would have the consumer as source and the organisation as target.

`PARTY_RELATIONSHIPs` are stored as part of the data of the `PARTY` designated as the source. This means that the relationships attribute is by value, while reverse_relationships is by references, as are `PARTY_RELATIONSHIP._source_` and target. The actual kind of reference is via the use of `OBJECT_REFs` containing `HIER_OBJECT_IDs` to denote the Version container of a Party, rather than `OBJECT_VERSION_IDs`, which would denote particular versions. Logically this implements the semantic that such relationships in the real world are between _continuants_, i.e. the real Parties, not just one of their version instances in a demographic system.
`PARTY_RELATIONSHIPs` are stored as part of the data of the `PARTY` designated as the source. This means that the relationships attribute is by value, while the `PARTY_RELATIONSHIP._source_` and `_target_` are represented by references. The actual kind of reference is via the use of `OBJECT_REFs` containing `HIER_OBJECT_IDs` to denote the Version container of a Party, rather than `OBJECT_VERSION_IDs`, which would denote particular versions. Logically this implements the semantic that such relationships in the real world are between _continuants_, i.e. the real Parties, not just one of their version instances in a demographic system.

=== Versioning Semantics

Expand Down Expand Up @@ -77,13 +77,13 @@ include::{uml_export_dir}/classes/{pkg}agent.adoc[]

== Instance Examples

In the following instance examples, the values of the attributes uid, source, target, and reverse_relationships are not meant to be taken as literally valid `OBJECT_IDs` - for the purposes of clarity, simple integers have been used.
In the following instance examples, the values of the attributes `_uid_`, `_source_` and `_target_` are not meant to be taken as literally valid `OBJECT_IDs`: for the purposes of clarity, simple integers have been used.

=== Parties

==== Person

The diagram below illustrates a possible set of instances for a `PERSON`, with home and work contact information. There are separate archetypes for the `PERSON`, each `ADDRESS`, and each `PARTY_IDENTITY`. In the following figure, "meaning" is the meaning from the value of the archetype_node_id attribute, functionally derived from the archetype local ontology.
The diagram below illustrates a possible set of instances for a `PERSON`, with home and work contact information. There are separate archetypes for the `PERSON`, each `ADDRESS`, and each `PARTY_IDENTITY`. In the following figure, "meaning" is the meaning from the value of the `_archetype_node_id_` attribute, functionally derived from the archetype local ontology.

[.text-center]
.Person Demographic Information
Expand All @@ -97,7 +97,7 @@ image::{diagrams_uri}/person_demographics.png[id=person_demographics, align="cen

==== Group

The figure below illustrates the demographic information for a cadiac surgery team in a hospital. The group includes a head surgeon, anaesthetist, assistant surgeon, and presumably others (not shown). Each of these members of the team have an employment relationship with the hospital (shown only for one surgeon, in the interests of clarity).
The figure below illustrates the demographic information for a cardiac surgery team in a hospital. The group includes a head surgeon, anaesthetist, assistant surgeon, and presumably others (not shown). Each of these members of the team have an employment relationship with the hospital (shown only for one surgeon, in the interests of clarity).

[.text-center]
.Group Demographics
Expand Down