Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Кодирование ФИО пациента #3

Closed
alexander-ivanov opened this issue Jun 20, 2019 · 23 comments
Closed

Кодирование ФИО пациента #3

alexander-ivanov opened this issue Jun 20, 2019 · 23 comments

Comments

@alexander-ivanov
Copy link
Collaborator

ФИО пациента может быть закодировано разными способами. Предлагаю зафиксировать способ записи ФИО из официального документа:

Пример yaml

name:
- family: Двойная фамилия
  given:
  - Двойное имя
  - Сложное отчество
  use: official
resourceType: Patient

Пример json

{
	"resourceType": "Patient",
	"name": [{
			"use": "official",
			"family": "Двойная фамилия",
			"given": ["Двойное имя", "Сложное отчество"]
		}
	]
}

Используем тип - officialВ поле family - фамилияВ поле given[0] - имяВ поле given[1] - отчество

synteny added a commit that referenced this issue Oct 23, 2019
synteny added a commit that referenced this issue Oct 23, 2019
@shamilnn-zz
Copy link
Collaborator

Cardinality и Must Support несколько разные вещи. Вы уверены, что вы хотите чтобы все системы содержали имя пациента (cardinality 1..*) чтобы соответствовать RU Core? Если пациент не может сообщить своё имя или системе не нужно имя (например, аналитика) то всё, оно не conformant?

Вероятно cardinality для национального профайла 0..* и Must Support = true

При этом, где-то отдельно должно быть прописано, что значит Must Support. Как показывает практика, каждый интуитивно понимает эти требования по своему в зависимости от опыта.

@alexander-ivanov
Copy link
Collaborator Author

Сейчас мы начали делать первые профили и я тоже считаю, что в базовом профиле не должно быть обязательного cardinality. Т.е. в базовом профиле 0.., в профиле РЭМД, где есть требование минздрава 1..

Must support в спеке действительно очень размыт. Можем взять аргонавтовский список - http://hl7.org/fhir/us/core/1.0.1/guidance.html#must-support - мое предложение must support вынести в отдельные issue

@s-shvyrev
Copy link

В РЭМД Фамилия должна быть обязательно. Имя обязательно. Отчество опционально. Но, самое главное, элементы для имени и отчества должны быть разными. Вариант given два раза не устраивает. Эта проблема перекочевала из CDA, в которой уже вызвала сложности с разработчиками ИС других ведомств.

@alexander-ivanov
Copy link
Collaborator Author

Использование given устоявшаяся практика, я не хочу от нее отказываться, но решить проблему РЭМД нужно. В профилях других стран я нашел примеры расширений, которые фиксируют какие-то конкретные поля - https://simplifier.net/nngm-registration-form/patient-nngm-0.2-duplicate-2

image

@niquola
Copy link
Contributor

niquola commented Jan 31, 2020

В РЭМД Фамилия должна быть обязательно. Имя обязательно. Отчество опционально. Но, самое главное, элементы для имени и отчества должны быть разными. Вариант given два раза не устраивает. Эта проблема перекочевала из CDA, в которой уже вызвала сложности с разработчиками ИС других ведомств.

@Albion180 если мы жестко закрепляем что второй given это отчество - почему это не устраивает?

@shamilnn-zz
Copy link
Collaborator

shamilnn-zz commented Jan 31, 2020

Вероятно имеет смысл добавить ограничение (invariants) к Patient.name вида - Patient.name.given или Patient.name.family или оба элемента ДОЛЖНЫ присутствовать .
(Patient.name.given or Patient.name.family or both SHALL be present)

Expression - family.exists() or given.exists()

@shamilnn-zz
Copy link
Collaborator

Не используя extension, отчество можно закодировать с помощью Patient/name/given/@id
Пример в XML и JSON - "JSON representation of Elements and Complex Data types" https://www.hl7.org/fhir/json.html#complex

@s-shvyrev
Copy link

В РЭМД Фамилия должна быть обязательно. Имя обязательно. Отчество опционально. Но, самое главное, элементы для имени и отчества должны быть разными. Вариант given два раза не устраивает. Эта проблема перекочевала из CDA, в которой уже вызвала сложности с разработчиками ИС других ведомств.

@Albion180 если мы жестко закрепляем что второй given это отчество - почему это не устраивает?

Не устраивает необходимость учета порядка следования элементов. Разработчики, в свою очередь, не понимают почему нельзя явно указать отчество.

@s-shvyrev
Copy link

В общении с разработчиками я отстаивал позицию достаточности given (и это удалось сделать). Но это была основная проблема организации межведомственного взаимодействия. Надо быть к этому готовыми.

@niquola
Copy link
Contributor

niquola commented Feb 3, 2020

Я бы старался не отступать от FHIR если это возможно. Мы в Чувашии сделали вторым отчество и разработчики вроде справились.

@alexander-ivanov
Copy link
Collaborator Author

Мы в своих проектах тоже сделали вторым отчество, были опасения про двойные имена, но в реальных данных их все равно пишут в одно поле.

@Semalexa
Copy link
Collaborator

Semalexa commented Feb 4, 2020

Решение №1

Mover @alexander-ivanov / Seconder @niquola: 0-0-0

Используем given для передачи имени и отчества, жёстко закрепляем, что второй given - это отчество

name:
- family: Двойная фамилия
  given:
  - Двойное имя
  - Сложное отчество
  use: official
resourceType: Patient

Количество given ограничиваем до 2 - защита.
Если двойное имя - одной строчкой через пробел.
Если сложное отчество - одной строчкой через пробел.
Если имя не известно - то пустая строчка "", а на втором месте - отчество. Т.о. мы гарантируем, что given[1] - это всегда отчество.

Там, где это необходимо, вводим ограничение с помощью профилей на обязательность указания фамилии, имени, отчества. Invariants к Patient.name вида - Patient.name.given или Patient.name.family или оба элемента ДОЛЖНЫ присутствовать. (Patient.name.given or Patient.name.family or both SHALL be present) Expression - family.exists() or given.exists().

@Semalexa
Copy link
Collaborator

Semalexa commented Feb 4, 2020

Голосуем с помощью эмодзи и пишем в комменте
ФИО, организация и + или -

@shamilnn-zz
Copy link
Collaborator

shamilnn-zz commented Feb 13, 2020

Я бы предложил Slice (use='official') со всеми перечисленными выше ограничениями. Для любого другого типа use кодирование имени может быть каким угодно другим, необходимым для конкретной реализации.

@Semalexa
Copy link
Collaborator

Semalexa commented Feb 19, 2020

Решение №1

  • Используем слайсинг по параметру use='official'. Для любого другого типа use кодирование имени может быть каким угодно другим, необходимым для конкретной реализации.
  • Используем given для передачи имени и отчества, жёстко закрепляем, что второй given - это отчество.
  • Количество given ограничиваем до 2 - защита от указания сложных имен раздельными элементами.
  • Если двойное имя - одной строчкой через пробел.
  • Если сложное отчество - одной строчкой через пробел.
  • Если имя не известно, но требуется передать отчество, то в массиве передается пустая строчка "", а на втором месте указывается отчество. Т.о. мы гарантируем, что given[1] - это всегда отчество.
  • В других профилях, где это необходимо, вводим ограничение с помощью профилей на обязательность указания фамилии, имени, отчества. Invariants к Patient.name вида - Patient.name.given или Patient.name.family или оба элемента ДОЛЖНЫ присутствовать. Patient.name.given or Patient.name.family or both SHALL be present либо Expression - family.exists() or given.exists().

Пример:

resourceType: Patient
name:
- use: official
  family: Двойная фамилия
  given:
    - Двойное имя
    - Сложное отчество

Ссылка на профиль: https://fhir-ru.github.io/core/profiles/Patient/ru.html

@alexander-ivanov
Copy link
Collaborator Author

Иванов Александр Сергеевич, Медлинкс, +

@niquola
Copy link
Contributor

niquola commented Feb 19, 2020

Рыжиков Николай; Health Samurai +

@OlegPenzin
Copy link

Решение №1

Олег Пензин, MiraMedix: +

@shamilnn-zz
Copy link
Collaborator

shamilnn-zz commented Feb 21, 2020

Patient.name

Patient.name.use (для slice use=official):

  • Cardinality - 1..1

@maximalexeev
Copy link

Алексеев Максим, Нетрика, +

@s-shvyrev
Copy link

Решение 1
Швырёв Сергей, +

@VarvaraSemenova
Copy link
Collaborator

Решение 1
Семенова Варвара, Health Samurai +

@Semalexa
Copy link
Collaborator

Semalexa commented Mar 4, 2020

Решение №1 принято: Mover @alexander-ivanov / Seconder @niquola: 5-0-0

  • Используем слайсинг по параметру use='official'. Для любого другого типа use кодирование имени может быть каким угодно другим, необходимым для конкретной реализации.
  • Используем given для передачи имени и отчества, жёстко закрепляем, что второй given - это отчество.
  • Количество given ограничиваем до 2 - защита от указания сложных имен раздельными элементами.
  • Если двойное имя - одной строчкой через пробел.
  • Если сложное отчество - одной строчкой через пробел.
  • Если имя не известно, но требуется передать отчество, то в массиве передается пустая строчка "", а на втором месте указывается отчество. Т.о. мы гарантируем, что given[1] - это всегда отчество.
  • В других профилях, где это необходимо, вводим ограничение с помощью профилей на обязательность указания фамилии, имени, отчества. Invariants к Patient.name вида - Patient.name.given или Patient.name.family или оба элемента ДОЛЖНЫ присутствовать. Patient.name.given or Patient.name.family or both SHALL be present либо Expression - family.exists() or given.exists().

Пример:

resourceType: Patient
name:
- use: official
  family: Двойная фамилия
  given:
    - Двойное имя
    - Сложное отчество

Ссылка на профиль: https://fhir-ru.github.io/core/profiles/Patient/ru.html

@Semalexa Semalexa closed this as completed Mar 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants