Translations lost in OPT when an archetype is used multiple times

I ran into something while reviewing a template and I’d like to check whether my understanding is correct.

Our template uses the same archetype several times in different roles, e.g. CLUSTER.medication.v2 appears 12 times, renamed per slot to different names to cover different parts of our use case.

In the exported OPT (and web template) from Archetype Designer this survives only for the template’s original language. Looking at the file:

  • the primary language names are inlined as <term_definitions> on each C_ARCHETYPE_ROOT in <definition>, so they can differ per instance;
  • all other languages sit in <ontology> / <component_ontologies archetype_id="...">, and there is exactly one block per archetype, no per-instance dimension in the schema at all.

So in our case the 12 English names are preserved, while German gets a single value per at-code: every one of those 12 clusters ends up with the same name, defined by the first instance of the archetype in the OPT.

Questions:

  1. Is this a known and accepted limitation of the OPT 1.4 format, or is it something tooling could handle differently?
  2. For those running multilingual systems: Do you work with actual multilingual OPTs? If yes, what do you choose as primary language?
  3. Is there a recommended practice?

I’m starting to lose hope of using multilingual templates without dozens of workarounds.

Tagging translation group organizers, in case you are interested: @heidi.koikkalainen @ciprian

For my understanding, this is a known limitation of the current ADL1.4/ .oet position.

In ADL2 those slot parent renames generate specialised nodes which are carried in the ontology section just like any other node. However ADL1.4 does not have any mens of specialising nodes inside templates, so the ‘rename’ is carried in the node name/value , but not backed by an atCode in the ontology.

Example here of a slot fill parent rename

   <item xsi:type="C_STRING">
                                                    <list>Urinary catheter</list>
                                                </item>

The Better AD does actually create these specialised atCodes internally (in native.json format) but these are dropped in the .opt generation.

I think the different names should be retained for the primary language of the .opt but not in the ontology. So if the primary opt language is German, you should see the different node names in German but you will not see the English equivalents in the ontology.

This is one of the key drivers for getting over to ADL2 and .opt2.