Skip to content

Instantly share code, notes, and snippets.

@niquola
Last active January 20, 2019 09:30
Show Gist options
  • Select an option

  • Save niquola/69c6a4044daab1423f28 to your computer and use it in GitHub Desktop.

Select an option

Save niquola/69c6a4044daab1423f28 to your computer and use it in GitHub Desktop.
Генерация уникального идентификатора для МО

Алгоритм кодирования объектов должен быть разработан с учетом требований национального стандарта РФ ГОСТ Р ИСО/МЭК 9834-1-2009 и методических рекомендаций Министерства здравоохранения РФ, приведенных в документе «Комплект спецификаций и технических условий обмена стандартизированными электронными медицинскими документами и сведениями для IHE-совместимых информационных систем». Регистра МО РФ (MDR308, OID: 1.2.643.5.1.13.2.1.1.178)

http://www.gosthelp.ru/gost/gost49025.html

Алгоритм кодирования объектов разработан с учетом требований национального стандарта РФ ГОСТ Р ИСО/МЭК 9834-1-2009 и методических рекомендаций Министерства здравоохранения РФ, приведенных в документе «Комплект спецификаций и технических условий обмена стандартизированными электронными медицинскими документами и сведениями для IHE-совместимых информационных систем». Регистра МО РФ (MDR308, OID: 1.2.643.5.1.13.2.1.1.178).

Согласно нормативно правовому акту (Приказ Минздравсоцразвития России от 29.10.2010 г. № 938 "Об утверждении перечней федеральных бюджетных и федеральных казенных учреждений, находящихся в ведении Министерства здравоохранения и социального развития Российской Федерации") каждая медицинская организация должна быть зарегистрирована в регистре медицинских организаций Российской Федерации. В результате регистрации организация получает свой уникальный идентификатор OID.

OID представляет собой иерархический идентификатор, где ка

  • Является ли OID мед. организации - корнем дальнейшей авторизации?

Юридическое лицо имеет право строить под выданным ему идентификатором свое дерево идентификаторов объектов.

  • Кто будет назначать OID подразделениям - РМО или сама организация?

  • Следует ли включать типизацию подразделений в схему генерации мед. организаций

<entry>
  <id>21788</id>
  <unq>1.2.643.5.1.13.3.25.78.116</unq>
  <name_full>Санкт-Петербургское государственное бюджетное учреждение здравоохранения "Горо
  <name_short>СПб ГБУЗ "Городская поликлиника №24"</name_short>
  <kpp>783801001</kpp>
  <ogrn>1027810298130</ogrn>
  <inn>7809008334</inn>
  <okato>40000</okato>
  <post_index>190013</post_index>
  <address>Санкт-Петербург ( г ) , Серпуховская, 7</address>
</entry>

mapped to

{
  resourceType: "Organization",
  name: "Санкт-Петербургское государственное бюджетное учреждение здравоохранения ",
  _shortName: "name_short", "СПб ГБУЗ \"Городская поликлиника №24\"",
  identifier: [
    {system: "id", value: "21788"},
    {system: "unq", value: "1.2.643.5.1.13.3.25.78.116"},
    {system: "kpp", value: "783801001"},
    {system: "ogrn", value: "1027810298130"},
    {system: "inn", value: "7809008334"},
    {system: "okato", value: "40000"}
  ],
  address: [
   {
    text: "Санкт-Петербург ( г ) , Серпуховская, 7",
    city: "Санкт-Петербург",
    line: [" Серпуховская", "7"]
    postalCode: "190013"
   }
  ]
}

Нужен ли oid для организации?

hl7 wiki

Some of the HL7 published standards, and some implementation guides that are being published by HL7 and by others, recommend using an OID to identify an Organization. Most Organizations in Healthcare IT already have common public identifiers (Provider IDs, CLIA numbers, TINs, etc.) and there are already OIDs that indicate these namespaces for use in the v3 datatype 'II' (Instance Identifier) to identify organizations; this is done by using the OID for the namespace in the II.root and the identification number in the II.extension. If you desire an OID to separately identify the Organization, one may be obtained using the HL7 OID Registry. If the Organization plans to assign OIDs under its new OID for various namespaces, code systems, sub-organizations, or for other related purposes, then a Type 3 OID should be requested. If there are no plans to assign OIDs of your own under the new OID, then request an OID type 17 (which can also be used for any random purpose). For further discussion on OID types, see below.

Некоторые станадрты и методические указания рекомендуют использовать OID для идентификации организации. Большинство организаций уже обладает публичными идентификаторами (причем некоторые из них являются OIDами). Если вам нужен OID вы можете его получить через регистр HL7 OID. Если организация планирует назначать свои OID для разных пространств имен, кодовых систем, подразделений - то необходимо запросить OID с типом 3. Иначе следует запрашивать OID типа 17.

Sub-Organization

В этом документе (Michigan Syndromic Surveillance System) например используется самостоятельное назначение OID для facility (sub-organization) через HL7 регистр OID (http://www.hl7.org/oid/index.cfm).

  • Организация получает OID type 3 в HL7 OID Registry
  • И для подразделения регистрирует OID type 17 на основе основного OID

при этом есть возможность указать символическую кличку

https://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCcQFjAB&url=https%3A%2F%2Fwww.michiganhealthit.org%2Fwp-content%2Fuploads%2FOID_Creation_and_Registration_MSSS_26Sept13.docx&ei=DNmTVdO5O4qLsgGbx5CYBA&usg=AFQjCNGYYb5GaKxYpPh8IaYqwZK_28Aj6Q&sig2=4lwxN2rCVr1AUKbbLh0K4w&bvm=bv.96952980,d.bGg

HL7 OID Registry

OID types

 1 - OID for an HL7 Internal Object
 2 - OID for an HL7 Body or Group
 3 - Root to be a Registration Authority
 4 - OID for a Registered Namespace
 5 - OID for an HL7 Internal Code System
 6 - OID for an External Code System
 7 - OID for an HL7 Document
 8 - OID for an HL7 Document Artifact
 9 - OID for an HL7 Conformance Profile
 10 - OID for an HL7 Template
 11 - OID for an HL7 Internal Value Set
 12 - OID for an Version 2.x Table
 13 - OID for an External Value Set
 14 - branch node subtype
 15 - Defined external codesets
 17 - Other Type OID
 18 - OID for a Version 2.x Coding System
 19 - OID for a published HL7 Example

https://oid.iitrust.ru/

ЧТО ТАКОЕ ИДЕНТИФИКАТОР ОБЪЕКТА?

"Идентификатор объекта" (object identifier ) и дерево идентификаторов объектов (object idetifier tree) являются элементами международного проекта (http://www.itu.int/en/ITU-T/asn1/Pages/OID-project.aspx) в соответствии с документами ITU-T X.660 | ISO/IEC 9834-1 (ГОСТ Р ИСО/МЭК 9834-1-2009). Объект - это то, что может быть в любом мире (в общем случае, в телекоммуникационном мире) быть проидентифицировано и зарегистрировано. Идентификатор объекта – символьное или числовое значение, назначенное объекту в соответствии с правилами проекта.

Проектом определены на международном уровне три дуги (arc) высшего уровня, исходящие из корня: 0(itu-t), 1(itu-t), 2 (joint-iso-itu-t) (ГОСТ Р ИСО/МЭК 8825-1): международное дерево идентификаторов. ( www.oid-i nfo.com , http://oid-info.com/doc/country-OIDs.htm).

Из вершин этих дуг начинается построение международного дерева. Дуги могут наращиваться и каждый узел дуги (объект) получает свой уникальный идентификатор (OID). Таким образом, идентификация объекта, осуществляется по положению его на той или иной дуге путем распознавания присвоенного ему уникального численно-символьного значения.
Присвоение значений дугам ниже дуг верхнего уровня и управление каждой осуществляется организацией, указанной в скобках (itu-t, itu-t, joint-iso-itu-t) и регламентируется соответствующими рекомендациями/стандартами.

Исторически в нотации ASN.1 OID представлен в виде групп чисел, разделенных точкой. (Пример. 2.16., 1.2.398 и тд) в соответствии с международными правилами. В настоящее время для возможностей восприятия человеком получает распространение написание OID-IRI (международный OID) в виде строки символов, разделенных символом " /" , где символы могут быть представлены не только в латинской кодировке. Таким образом, каждый узел в дополнении к числовому идентификатору может иметь и символьное.

Пример записи, идентифицирующей Россию (корень российского дерева) в международном дереве в соответствии с принятыми международными правилами

Традиционное написание: {iso(1) member-body(2) ru (643)}.

В числовом значении: 1.2.643

Структурированное имя : {iso/member-body/ru}

В соответствии с ГОСТ 7.67 «Коды названий стран» (ИСО 3166-1) России (Российской Федерации) присвоен код 643, двух символьное обозначение – RU.

Для создания национальных деревьев в рамках международного проекта отведены два узла:

{iso(1) member-body(2)}

{joint-iso-itu-t(2) country(16)}

Коды стан и символьное значение приведены в ISO 3166

КАК ПОСТРОЕНО РОССИЙСКОЕ ДЕРЕВО ИДЕНТИФИКАТОРОВ ОБЪЕКТОВ?

В соответствии с правилами проекта (http://www.itu.int/en/ITU-T/asn1/Pages/OID-project.aspx) верхними узлами для регистрации национальных объектов Российской Федерации могут являться узлы под управлением Международной организации по стандартизации {iso(1) member-body(2) ru(643)} и под совместным управлением Международной организации по стандартизации и Международного союза электросвязи {joint-iso-itu-t(2) country(16) ru(643)}.

Регистрация национальных объектов осуществляется уполномоченным органом по ведению реестра российского национального сегмента мирового пространства идентификаторов объектов в соответствии со стандартом ГОСТ Р ИСО/МЭК 9834-1-2009 (далее - уполномоченный орган по регистрации), которым в соответствии Соглашением между ОАО "ИнфоТеКС Интернет Траст" и Федеральным агентством по техническому регулированию и метрологии, является ОАО "ИнфоТеКС Интернет Траст".

Регистрация осуществляется под узлом {iso(1) member-body(2) ru (643)}.

Из данного узла исходит 8 дуг по тематическим признакам, идентификаторы в которых присваиваются юридическому лицу, подавшему заявку на идентификатор в той или иной тематической группе.

Допускается регистрация и выдача идентификаторов юридическому лицу в нескольких дугах (тематических группах).

Юридическое лицо имеет право строить под выданным ему идентификатором свое дерево идентификаторов объектов.

№ Идентификатор объекта в числовом виде (АСН.1) Имя объекта Тематическое наименование группы (рус.яз.) Тематическое наименование группы (англ.яз.) 1.2.643 {iso(1)member-body(2) ru (643)} /ISO/ Member-Body/RU 1 1.2.643.1 {iso(1)member-body(2) ru (643) Reg1 (1)} /ISO/ Member-Body/RU/Reg1 Операторы связи communication organization
2 1.2.643.2 {iso(1)member-body(2) ru (643) Reg2(2)} /ISO/ Member-Body/RU/Reg2 Разработчики программного обеспечения program organization
3 1.2.643.3 {iso(1)member-body(2)ru (643) Reg3(3)} /ISO/ Member-Body/RU/Reg3 Удостоверяющие центры certificate authority
4 1.2.643.4 {iso(1)member-body(2)ru (643) Reg4(4)} /ISO/ Member-Body/RU/Reg4 Банки banks
5 1.2.643.5 {iso(1)member-body(2)ru (643)Reg5(5) } /ISO/ Member-Body/RU/Reg5 Правительственные организации government organization
6 1.2.643.6 {iso(1)member-body(2)ru (643)Reg6(6)} /ISO/ Member-Body/RU/Reg6 Прочие организации organization 7 1.2.643.7 {iso(1)member-body(2)ru(643)Reg7(7)} /ISO Member-Body/RU/Reg7 Организации по стандартизации organization of standardization
8 1.2.643.100 {iso(1)member-body(2)ru(643)Reg(100)} /ISO/ Member-Body/RU/Reg100 Дополнительные идентификаторы additional identifiers

@niquola
Copy link
Author

niquola commented Jul 1, 2015

HLv3

https://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CDkQFjAD&url=https%3A%2F%2Fwww.hl7.org%2Fdocumentcenter%2Fpublic%2Fwg%2Fstructure%2FV3_OIDS.docx&ei=DNmTVdO5O4qLsgGbx5CYBA&usg=AFQjCNEq1fItj7PB-4KKUy34-dt2BtqNMw&sig2=52Prl9_h59KuGG_8UOs2zg&bvm=bv.96952980,d.bGg

If facilities or locations will be listed in CDA documents, then each facility should have a unique id. Each > facility can be assigned its own unique OID, or an organization can create an OID for facility ids and assign unique extensions for each facility. The example below shows the latter usage.

 <location typeCode="LOC">
  <healthCareFacility>
   <id extension="R123" root="2.16.840.1.113883.19.3.933.4"/>

There are laws mandating the use of certain identifiers for organizations, such as CLIA (Clinical Laboratory Improvement Amendments) laboratories in the U.S. reporting to state cancer registries. HL7 has already assigned OIDs for many of these organizational namespaces, and these should be used where possible. Some organizations recorded in a document or message may need to be assigned a local identifier where an external identifier does not already exist. In these cases, the local identifiers should have a unique OID that serves to identify that namespace of local identifiers for these organizations.

Забавно, что они предлагают назначать OID информационным системам

@niquola
Copy link
Author

niquola commented Jul 1, 2015

From [HL wiki]

В OID можно задавать символические имена

What is the Symbolic Name?

The Symbolic Name in the HL7 OID registry is intended to be a relatively short human-readable name for the OID, since the integer values are not as human readable. It is used as the ISO Secondary Identifier Value for the OID, and should be unique among the direct descendants of its parent OID (non-uniqueness is strongly discouraged in the ITU-T X.660 standard, clause 6.2.6). In addition, the name must conform to the ISO Secondary Identifier naming rules for arcs on the OID tree, as defined in the ISO OID standards X.660:
"An arc may (but need not) also have associated with it one or more secondary values that are identifiers that are human-readable values. The identifiers of an arc are required to commence with a lowercase letter, and to contain only letters, digits, and hyphens. The last character shall not be a hyphen, nor shall there be two consecutive hyphens in the name (see ITU-T Rec. X.680 | ISO/IEC 8824-1, 11.3)."
The symbolic name may be used in the “NameAndNumberForm” representation of an OID as per ITU-T Rec X.680, as the RH name, with the integer in parentheses following. Note that this syntax is not supported in the HL7 OID registry, nor in the HL7 datatypes that have components that carry OIDs.
ISO rules require that the Symbolic Name (secondary identifier) be unique only immediately under a particular node, but HL7 requires that the Symbolic Name also be unique among OIDs of the same OID Type. Note that when an OID is rejected for registration, or retired from use, its symbolic name may be reused for a different OID of the same type, or under the same parent node.

@niquola
Copy link
Author

niquola commented Jul 1, 2015

From Michigan Public Health Systems

Assigning OIDs for your Sub-organizations
If you are submitting public health data to Michigan from multiple sites (i.e., event or service locations), each site will need its own facility OID number, which will be an extension or branch off your organization’s root OID (e.g., 888.888.8.88) plus some numbering scheme you define (e.g., 888.888.8.88.1, 888.888.8.88.2, 888.888.8.88.3).

Since no other organization shares your root OID, you simply need to make sure the numbers you add create a unique OID for each sub-organization within your root.

The assignments and branching numbers you use are up to you, but please do not use leading zeros (e.g., .01, .002, .003) as they may not process properly in public health systems. Instead, please ensure that your branches start with a number between 1 and 9. For example:
Correct: 9.99.999.9. 999999.9.9999.1000
Incorrect: 9.99.999.9. 999999.9.9999.0001
Please keep track of your branch OID assignments—you will need to define and use them when onboarding with some of Michigan’s public health systems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment