
Всем привет,
Сейчас занимаюсь програмным созданием простых генограмм. Для тех кто не знает: генограмма — это графическое изображение семейного древа, которое визуально представляет родственные связи, историю и структуру семьи, обычно охватывая три поколения.
Например такая гипотетическая ситуация.

В верхнем ряду биологические папа и мама. Дальше пациента и двух её сестер отдали в приют. А когда пациент выросла у неё был экс-партнер, от которого она родила девочку. Потом она вышла заму в первый раз. Развелась. Вышла за муж второй раз и от этого брака появилось три мальчика. Не все здесь правильно отображено, но суть ясна. Мужчина изображен прямоуголиником а женщина кружочком. Мужчина как правило на отображенной полскости слева, а женщина справа.
Однако, есть некоторые сложности. В графе пол у нас также имеются: трансмужчины, трансженщины и небинарные.
Трансмужчины изобажаются квадратиком с куржком внутри. 
Трансженщина наоборот кружочком с квадратиком внутри.

А небинарные изображаются ромбиком

Все бы хорошо, но вот непонятно слева этот ромбик изображать или справа. То-есть, если знаем, что партнер, скажем, мужчина или трансмужчина то ромбик изображаем справа. А если партнер женщина или трансженщина то ромбик справа.
Проблема однако состоит в том, что когда программа читает записи из таблицы первой записью может как раз и быть небинарный товарищ. В этом случае придется сохранить его в переменной, прочитать следующую запись, и только тогда уже решить с какой сторны отображать такого индивидума. Усложняет програмный поток.





