How to handle Defining multiple roles without creating new archetypes

Hi everyone,
I tried to design archetypes for many roles with different names and same item structure in demography.
should I create an archetype for each role name or there is other way?
I asked this question because I think role name comes from “name property in locatable”
if I use only one archetype how can I set the many roles name

Hi Mehdi!

If I understand you correctly, are you modelling DEMOGRAPHIC (and not EHR) model archetypes? Could you describe and give an example of the information you’d like to record using this structure?


Hi Silje,
Thank you for your attention to this matter.
We are in a hospital which has more than forty roles like cardiac surgeon, anesthetist, general practitioner, nurse ,… and about 200 employees.
I need to register employees into the system based on OpenEhr demography and assign roles to them. In our hospital role is defined by code and role-name.
is it necessary to design archetype for each role or we can use the same archetype for all roles.
there is a sample in the demography document that it used “name” To distinguish between roles. can I use this way or not. if I can where does this “name” come from?


1 Like

Hi Mehdi, generally you would not need to create new archetypes for each Role unless the roles do something special - possibly different archetypes for different categories of role, e.g. MD / nurse / administrator / etc.

Are you able to share your archetypes, so we can get a better idea of what you are doing?

Note that the field can be set to anything at runtime, or some restricted set of values. For example, if you limit it to being any value in your roles vocabulary, it can be set to any of the actual role terms at runtime. Normally you would do this in your template.


Hi Tomas,
I should say I’m a developing EHR Application based on OpenEHR.
Your answer about ( in operational Template helped me to solve two problems:

  • Connecting demography roles to real application roles(for Authentication).
  • Avoiding to define a role archetype more than one time.

To answer your last question about which archetypes we use, we try to use Healthcare consumer archetype from CKM but we were confused because in this archetype there is an slot(person_name archetype) to define Role PARTY_IDENTITY. Here in real application user selects a person or insert new one?
Healthcare consumer Archetype Link
Patient Archetype Link

1 Like

I have to say, I am not sure myself about the logic of this archetype. Do you have a description of the requirement, e.g. a UML diagram, mindmap or anything else that describes your intended model of patient / healthcare consumer etc? It might be that you can develop better archetypes for what you want than the ones that are already there.

Dear Thomas,
Sorry for my being late.
As you said this is my UML diagram and our requirements are:

  1. We want to store roles name in our database (like ROLES Table in our diagram) because this is significant and we need unique role names but there is not any class in demography Rm for that. I guess role class in Rm demography is equivalent to ActorRole Table in our sample diagram.
  2. According to demography RM has some mandatory attributes like(role - performer) but archetype editor such as LinkEHR or Ocean archetype editor do not dictate them. We need our archetypes are conformed with reference model but there is no guaranty for that.
  3. How can we define look up component in an archetype to get data from our database based on ADL 1.4. for example in Role archetype we need to select an agent as a performer.


Ah - we need to be clear here on what we mean by ‘role’. In the openEHR model, it means roles undertaken by an Actor. These can be named/typed any way you like. This is not the same as a set of ‘roles’ understood as standardised classifiers of the professional posts in an organisation e.g. resident, surgeon, junior doctor, senior nurse, or whatever.

Now, with a set of standard classifiers, i.e. a vocabulary, you could / should make it so that ROLE instances for an ACTOR instance have their .name attributes set to such codes.