# Is it possible for a person to be a parent of another contact\_type?

**URL:** <https://forum.communityhealthtoolkit.org/t/is-it-possible-for-a-person-to-be-a-parent-of-another-contact-type/3774>\
**Category:** Development\
**Tags:** contact-type\
**Created:** [July 19, 2024, 12:11am UTC](https://forum.communityhealthtoolkit.org/t/is-it-possible-for-a-person-to-be-a-parent-of-another-contact-type/3774 "2024-07-19T00:11:02Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![michael](https://communityhealthtoolkit.b-cdn.net/user_avatar/forum.communityhealthtoolkit.org/michael/32/319_2.png) [@michael](https://forum.communityhealthtoolkit.org/u/michael)\
**Post date:** [July 19, 2024, 12:11am UTC](https://forum.communityhealthtoolkit.org/t/is-it-possible-for-a-person-to-be-a-parent-of-another-contact-type/3774/1 "2024-07-19T00:11:02Z")

</div>

A `contact_type` is either a `place` or a `person`. Every `contact_type` other than the top of the hierarchy will have a `parent`. Normally the `parent` is always a `place`. It doesn’t say so in the [documentation](https://docs.communityhealthtoolkit.org/apps/reference/app-settings/hierarchy/#app_settingsjson-contact_types), but I’m wondering if that is enforced… is it also possible for a `person` (contact\_type) to be the `parent` of another `contact_type`?

For example… would this be valid?

```
{
  "id": "household",
},
{
  "id": "patient",
  "person": true,
  "parents": [
    "household"
  ]
},
{
  "id": "child",
  "person": true,
  "parents": [
    "patient"
  ]
}

```

---

<div class="post-metadata">

**Author:** ![jkuester](https://communityhealthtoolkit.b-cdn.net/user_avatar/forum.communityhealthtoolkit.org/jkuester/32/806_2.png) [@jkuester](https://forum.communityhealthtoolkit.org/u/jkuester)\
**Post date:** [July 19, 2024, 3:37pm UTC](https://forum.communityhealthtoolkit.org/t/is-it-possible-for-a-person-to-be-a-parent-of-another-contact-type/3774/2 "2024-07-19T15:37:46Z")

</div>

So, this is not a great answer, but I think technically this might be _possible_ with the current code, but it is definitely not _valid_.

I cannot find any logic that would prevent this situation, and most of our contact logic is generic enough that I imagine it would flow through find. However, this kind of structure is not “supported” in the sense that it is not part of any intended workflow (that I know of).

Perhaps someone else has more info here or can prove me wrong, but that is how I understand things…

---

<div class="post-metadata">

**Author:** ![michael](https://communityhealthtoolkit.b-cdn.net/user_avatar/forum.communityhealthtoolkit.org/michael/32/319_2.png) [@michael](https://forum.communityhealthtoolkit.org/u/michael)\
**Post date:** [July 19, 2024, 7:15pm UTC](https://forum.communityhealthtoolkit.org/t/is-it-possible-for-a-person-to-be-a-parent-of-another-contact-type/3774/3 "2024-07-19T19:15:05Z")

</div>

Gotcha, thanks @jkuester !

The main reason I ask is that I’m seeing a process of “load descendants” on the Contacts Page | Detail View, even when the contact being viewed is a `person`. In the scenario I’m looking at, it’s taking a significant amount of time even though there will basically never be a descendant of a `person` (though there’s a chance “load descendants” does more than just that). Anyway, you answered my question and I’ll follow up with the team to see if it’s worth looking into more 👍🏽
