Skip to content

Commit 47173a2

Browse files
committed
feat: concept & codelist mappings
* adds crm and commerce realms * examples mapping crm2commerce realm * implement auto orderkey if undefined * implement auto codelist mapping rules based on source
1 parent a8bf7a1 commit 47173a2

24 files changed

+391
-110
lines changed

example/commerce/codelists/gender.xml example/commerce/codelists/commerce-gender.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
<codelist id="gender">
2-
<property name="definition">List of genders</property>
1+
<codelist id="commerce-gender">
2+
<property name="definition">List of genders used in commerce</property>
33
<property name="oid">2.16.840.1.113883.2.4.11.110</property>
44

55
<item

example/commerce/conceptMappings/legacy-gender.xml

-6
This file was deleted.

example/commerce/concepts/commerce-firstname.xml

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
type="item"
66
dataType="string"
77
lengthMax="64"
8+
parent="commerce-name"
89
>
910
<property name="example">John</property>
1011
<property name="max-length">64</property>

example/commerce/concepts/commerce-gender.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
shortName="Gender"
55
type="item"
66
dataType="code"
7-
codelist="gender"
7+
codelist="commerce-gender"
88
>
99
<property name="example">1</property>
10-
<property name="definition">Gender</property>
10+
<property name="definition">Gender</property>
1111
<property name="notes">may contain multiple values of this concept</property>
1212
</concept>

example/commerce/concepts/commerce-lastname.xml

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
type="item"
66
dataType="string"
77
lengthMax="64"
8+
parent="commerce-name"
89
>
910
<property name="example">Jackson</property>
1011
<property name="max-length">64</property>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<concept
2+
id="commerce-name"
3+
oid="1.2.3.4.5.6.7.8.10000"
4+
shortName="Name"
5+
type="group"
6+
dataType="string"
7+
lengthMax="64"
8+
>
9+
<property name="example">John Johnson</property>
10+
<property name="max-length">64</property>
11+
<property name="definition">Official full name registered at birth</property>
12+
<property name="notes">may contain multiple values of this concept</property>
13+
</concept>

example/commerce/concepts/commerce-product.xml

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,24 @@
11
<concepts>
2+
<concept
3+
id="commerce-product"
4+
oid="1.2.3.4.5.6.7.8.20000"
5+
shortName="Product"
6+
type="group"
7+
dataType="string"
8+
lengthMax="64"
9+
>
10+
<property name="example">AA-001</property>
11+
<property name="max-length">64</property>
12+
<property name="definition">Unique code for the product</property>
13+
</concept>
214
<concept
315
id="commerce-product-code"
416
oid="1.2.3.4.5.6.7.8.20001"
5-
z="Product code"
17+
shortName="Product code"
618
type="item"
719
dataType="string"
820
lengthMax="64"
21+
parent="commerce-product"
922
>
1023
<property name="example">AA-001</property>
1124
<property name="max-length">64</property>
@@ -18,6 +31,7 @@
1831
type="item"
1932
dataType="string"
2033
lengthMax="64"
34+
parent="commerce-product"
2135
>
2236
<property name="example">Red cotton shirt</property>
2337
<property name="max-length">64</property>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<codelistMapping id="commerce-gender2crm-gender" source="commerce-gender" destination="crm-gender">
2+
<property name="definition">Mapping commmerce to CRM gender</property>
3+
<property name="oid">2.16.840.1.113883.2.4.11.110</property>
4+
5+
<rule input="1" output="M">
6+
<property name="comment">Some note about 1 to M mapping</property>
7+
</rule>
8+
<rule input="2" output="F" />
9+
</codelistMapping>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<conceptMapping
2+
id="crm-gender"
3+
input="commerce-gender"
4+
output="crm-gender"
5+
comment="Partial match"
6+
>
7+
<property name="verified">Yes</property>
8+
</conceptMapping>

example/commerce2crm/realm.xml

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<realm id="commerce2crm">
2+
<property name="definition" language="en-US">Definitions for the Commerce to CRM mapping realm</property>
3+
<property name="notes" language="en-US">Some notes on this realm</property>
4+
<dependency name="crm" />
5+
<dependency name="commerce" />
6+
</realm>

example/crm/codelists/crm-gender.xml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<codelist id="crm-gender">
2+
<property name="definition">List of genders used in CRM</property>
3+
<property name="oid">2.2.2.2.2.2.2.2.110</property>
4+
5+
<item
6+
code="M"
7+
displayName="Male"
8+
/>
9+
<item
10+
code="F"
11+
displayName="Female"
12+
/>
13+
<item
14+
code="O"
15+
displayName="Other"
16+
level="0"
17+
type="L"
18+
/>
19+
</codelist>

example/crm/concepts/crm-contact.xml

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<concept
2+
id="crm-contact"
3+
oid="2.2.2.2.2.2.2.2.20000"
4+
shortName="Contact"
5+
type="group"
6+
dataType="string"
7+
lengthMax="64"
8+
>
9+
<property name="definition">Contact details</property>
10+
</concept>

example/crm/concepts/crm-email.xml

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<concept
2+
id="crm-email"
3+
oid="2.2.2.2.2.2.2.2.20001"
4+
shortName="Email address"
5+
type="item"
6+
dataType="string"
7+
lengthMax="64"
8+
parent="crm-contact"
9+
>
10+
<property name="example">[email protected]</property>
11+
<property name="max-length">64</property>
12+
<property name="definition">Primary e-mail address</property>
13+
<property name="notes">Used to communicate with contact</property>
14+
</concept>
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<concept
2+
id="crm-firstname"
3+
oid="2.2.2.2.2.2.2.2.10001"
4+
shortName="Firstname"
5+
type="item"
6+
dataType="string"
7+
lengthMax="64"
8+
parent="crm-name"
9+
>
10+
<property name="example">John</property>
11+
<property name="max-length">64</property>
12+
<property name="definition">Official firstname registered at birth</property>
13+
<property name="notes">may contain multiple values of this concept</property>
14+
</concept>

example/crm/concepts/crm-gender.xml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<concept
2+
id="crm-gender"
3+
oid="2.2.2.2.2.2.2.2.10003"
4+
shortName="Gender"
5+
type="item"
6+
dataType="code"
7+
codelist="crm-gender"
8+
>
9+
<property name="example">M</property>
10+
<property name="definition">Gender</property>
11+
</concept>

example/crm/concepts/crm-name.xml

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<concept
2+
id="crm-name"
3+
oid="2.2.2.2.2.2.2.2.10000"
4+
shortName="Name"
5+
type="group"
6+
dataType="string"
7+
lengthMax="64"
8+
>
9+
<property name="example">John Johnson</property>
10+
<property name="max-length">64</property>
11+
<property name="definition">Official full name registered at birth</property>
12+
<property name="notes">may contain multiple values of this concept</property>
13+
</concept>

example/crm/realm.xml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<realm id="crm">
2+
<property name="definition" language="en-US">Definitions for the CRM realm</property>
3+
<property name="notes" language="en-US">Some notes on this realm</property>
4+
<!-- <import
5+
type="concept"
6+
filename="data/tooltips.csv"
7+
language="en-US"
8+
name="tooltip"
9+
id="concept"
10+
value="value" /> -->
11+
</realm>

0 commit comments

Comments
 (0)