Основная информация

Назначение

Страница предназначена для пользователей и разработчиков и содержит информацию об описании объектов и методов работы с ними. Программный компонент «FHIR-API и дополнительные компоненты» обеспечивает структурирование, конвертацию и извлечение медицинских записей и документов пациентов, хранимых в ИЭМК. Сервис предназначен для организации на стороне ИЭМК программного интерфейса (API), реализованного по стандарту FHIR DSTU2. В текущей реализации сервис работает только на извлечение данных из БД ИЭМК.

Описание протокола информационного взаимодействия (API)

Общая информация

С общей информацией о стандарте FHIR и используемых ресурсах можно ознакомиться по следующим ссылкам:

Легенда по тексту

  • Обычный текст - показан уже реализованный функционал,
  • Зеленый текст или текст на зеленом фоне - новый функционал,
  • Синий текст (кроме ссылок) или текст на синем фоне - функционал, который находится в разработке.

Авторизация в сервисе и формат обмена

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

  • С помощью статичного ключа
  • С помощью сессионного ключа Сервиса управления доступом

Статичный ключ

В этом случае авторизация в сервисе FhirProxy осуществляется с помощью передачи в заголовке HTTP-сообщения параметра Authorization вида:

N3 {Авторизационный ключ}

Значение ключа должно соответствовать полю System в таблицы dbo.System БД ИЭМК.

Сессионный ключ

В этом случае авторизация в сервисе FhirProxy осуществляется с помощью передачи в заголовке HTTP-сообщения параметра Authorization вида:

Bearer 135c5ee7e5a7ff28c9f83bdf894f3e9332d5850f219b2518b91b8ac945fdcee3

Порядок получения сессионного ключа Сервиса управления доступом описан в соответствующем разделе документации.

Описание поддерживаемых Fhir-ресурсов

Текущая реализация сервиса поддерживает работу со следующими Fhir-ресурсами:

  • Encounter - случай медицинского обслуживания;
  • DocumentReference - описание медицинского документа;

  • Procedure - медицинская услуга;
  • Practitioner - медицинский работник;
  • Condition - диагноз;
  • Observation  - параметры наблюдения за пациентом;
  • Immunization - сведения о пробах, прививках и мед.отводах;
  • ImmunizationRecommendation - сведения о запланированных прививках;
  • AllergyIntolerance - сведения об аллергиях пациента.
  • MedicationAdministration - сведения о назначенных пациенту препаратах

  • Medication - наименование назначенного препарата

В качестве протокола  взаимодействия  используется RESTful API (подробнее см.  http://hl7.org/fhir/http.html ).

Далее в качестве обозначения адреса публикации Сервиса будет использована текстовая константа  [base] .

CodeableConcept

FHIR-концепция CodeableConcept (http://hl7.org/fhir/DSTU2/datatypes.html#CodeableConcept) представляет собой значение, которое обычно предоставляется путем предоставления ссылки на одну или несколько терминологий или онтологий, но также может быть определено путем предоставления текста. Должен быть заполнен хотя бы один параметр.

CodeableConcept Описание Тип Кратность
coding Представление определенной концепции с использованием символа из определенной "coding.system" Coding 0..*
coding.system Идентификатор терминологический системы uri 0..1
coding.version

Версия терминологический системы.

Примечание

Если в БД ИЭМК явно не указана версия справочника, то в ответе сервиса будет возвращаться та версия и значение кода из справочника, которая была актуальна на момент создания записи в БД.

string 0..1
coding.code Символ или синтаксис, который определяется системой. code 0..1
coding.display Человеко-читаемое представление, которое определяется системой. string 0..1
text Представление концепции в виде простого текста string 0..1


Пример концепции CodeableConcept
{
  "coding": [
    {
      "system": "urn:oid:[OID справочника в сервисе Терминологии]",
      "version": "[версия справочника]",
      "code": "[код значения]",
      "display": "[наименование значения]"
    }
  ],
  "text": "[представление в виде текста]"
}

Encounter

Fhir-ресурс Encounter (http://hl7.org/fhir/DSTU2/encounter.html) предназначен для передачи данных случая медицинского обслуживания и содержит следующие параметры, отображаемые на комплексный тип Case SOAP-протокола сервиса ИЭМК.

Encounter  Описание Тип

CaseAmb,
Stat, Acps

CaseTmc Disp Мастер-случай
id Идентификатор СМО в РЕГИЗ\ИЭМК. int 1...1 1…1 1...1 1...1
identifier, где http://netrika.ru/iemk-identifier Идентификатор истории болезни в передающей МО Element 1...1 1…1 1...1 1...1
identifier, "http://netrika.ru/iemk-mis-identifier Идентификатор СМО в передающие МИС. Element 1...1 1…1 1...1 1...1
patient Идентификатор карточки пациента в сервисе MPI. Reference (Patient) 1...1 1…1 1...1 1...1
serviceProvider Медицинская организация, осуществившая случай обслуживания. Reference (Organization) 1…1 1…1 1…1 1...1
participant.individual Ссылка на ресурс Practitioner , только для ConsultNote. Лицо, которое придало юридическую силу документу. Reference (Particioner) 1…1 1…1
0...1
participant.type Роль лечащего врача. Всегда имеет значение "attender" CodebleConcept 1…1 1…1
0...0
class

Тип\Класс случая медицинского обслуживания (Cправочник OID: 1.2.643.2.69.1.1.1.35).

Используются следующие коды:

  • ambulatory - амбулаторный;
  • inpatient (outpatient) - стационарный ;
  • daytime - диспансеризация;
  • emergency - скорая помощь;
  • virtual- телемедицинская консультация (ТМК);
  • other - для мастер-карточки.
code 1...1

1…1

"virtual"

1...1

"daytime"

1...1

"other"

period.start Дата открытия случая datetime
"DD.MM.YYYY H:MM:SS"
1...1 1…1 1...1 1...1
period.end Дата закрытия случая

datetime
"DD.MM.YYYY H:MM:SS"

0...1 1…1
1...1
length

value - длительность случая;

unit -  единица измерения длительности (в частности, days).

Duratation 0...1 1…1
1...1
status

Статус обслуживания. Используются следующие коды статусов:

  • finished - если случай завершен, или передаются сведения о смерти в мастер-карточку,
  • in-progress - если случай не завершён.
code 1...1 1…1 1...1 1...1
hospitalization.
dischargeDisposition

Состояние пациента при завершении случая обслуживания.
Используются следующие коды:

  • home (Home) - выздоровление\здоров
  • rehab (Rehabilitation) - улучшение
  • oth (Other) - без перемен
  • hosp (Hospice) - ухудшение
  • exp (Expired) - умер
CodebleConcept 0…1 0…1 0…1 0...1
indication Основной заключительный диагноз, поставленный пациенту в рамках СМО Reference (Condition) 1...1 1...1 1...1 0...0
reason Идентификатор цели обращения (Справочник OID: 1.2.643.5.1.13.2.1.1.106) CodebleConcept 0...1 0...0 0...0 0...0

extension, где url = "DeathReason"

Код МКБ-10 (code) основной причины смерти (OID справочника: 1.2.643.2.69.1.1.1.2), а также значение кода (value) CodebleConcept 0...0 0...0 0...0 0...1

extention, где url = "http://api.n3med.ru/api/fhir/n3extension-caseresult"

Код исхода заболевания (OID Справочник: 1.2.643.5.1.13.2.1.1.688). CodebleConcept 0...1 0...1 0...1 0...1

extention, где url = "http://api.n3med.ru/api/fhir/n3extension-typecaseresult"

Код исхода амбулаторного случая обслуживания  (OID Справочник: 1.2.643.2.69.1.1.1.17) или госпитального случая медицинского обслуживания  (OID Справочник: 1.2.643.2.69.1.1.1.23).

CodebleConcept 0...1 0...1 0...1 0...1

extention, где url = "http://api.n3med.ru/api/fhir/n3extension-privileges"

Код категории льготы (Льготные категории населения, OID 1.2.643.5.1.13.13.11.1050), который был присвоен в рамках этого Encouter.

CodebleConcept 0...1 0...1 0...1 0...1

extention, где url = "http://api.n3med.ru/api/fhir/n3extension-socialgroupcode"

Код социальной группы (Занятость (социальные группы) населения, Справочник OID:1.2.643.5.1.13.13.11.1038), который был присвоен в рамках этого Encouter.

CodebleConcept 0...1 0...1 0...1 0...1

extention, где url = "http://api.n3med.ru/api/fhir/n3extension-healthgroupinfo"

Код группы здоровья (Классификатор групп состояния здоровья взрослого населения справочник OID: 1.2.643.5.1.13.2.1.1.118) который был присвоен последним в рамках этого Encouter.

CodebleConcept 0...1 0...1 0...1 0...1

extention, где url = "http://api.n3med.ru/api/fhir/n3extension-paymenttype"

Идентификатор источника финансирования (Справочник OID: 1.2.643.2.69.1.1.1.32)

CodebleConcept 0...1 0...1 0...1 0...1

Пример ресурса Encounter
{
  "resourceType": "Bundle",
  "entry": [
    {
      "resource": {
        "resourceType": "Encounter",
        "id": "487146",
        "identifier": [
          {
            "system": "http://netrika.ru/iemk-identifier",
            "value": "1550925"
          },
          {
            "system": "http://netrika.ru/iemk-mis-identifier",
            "value": "1550925"
          }
        ],
        "status": "finished",
        "class": "ambulatory",
        "patient": {
          "reference": "Patient/1a477a30-5771-48ee-8c1f-184ed698ef70"
        },
        "participant": [
          {
            "type": [
              {
                "coding": [
                  {
                    "system": "http://hl7.org/fhir/vs/encounter-participant-type",
                    "code": "attender"
                  }
                ]
              }
            ],
            "individual": {
              "reference": "/Practitioner/9314"
            }
          }
        ],
        "period": {
          "start": "02.11.2021 0:00:00",
          "end": "02.11.2021 0:00:00"
        },
        "length": {
          "value": 1.0,
          "unit": "days"
        },
        "reason": [
          {
            "coding": [
              {
                "system": "1.2.643.5.1.13.2.1.1.106",
                "code": "12",
                "display": "Другие"
              }
            ]
          }
        ],
        "indication": [
          {
            "reference": "/Condition/303258"
          }
        ],
        "hospitalization": {
          "dischargeDisposition": {
            "coding": [
              {
                "system": "http://hl7.org/fhir/vs/encounter-discharge-disposition",
                "code": "home"
              }
            ]
          }
        },
        "serviceProvider": {
          "reference": "Organization/a1b2445d-56b9-4ec6-ba75-fa15b3781625"
        }
      }
    }
  ]
} 

Пример ресурса Encounter с сведениями о смерти
{
    "resourceType": "Bundle",
    "entry": [
        {
            "resource": {
                "resourceType": "Encounter",
                "id": "8132",
                "extension": [
                    {
                        "url": "DeathReason",
                        "valueCodeableConcept": {
                            "coding": [
                                {
                                    "system": "urn:oid:1.2.643.2.69.1.1.1.2",
                                    "code": "Z59.8",
                                    "display": "Другие проблемы, касающиеся экономических и жилищных условий"
                                }
                            ]
                        }
                    }
                ],
                "identifier": [
                    {
                        "system": "http://netrika.ru/iemk-identifier",
                        "value": "8132"
                    }
                ],
                "status": "finished",
                "class": "other",
                "patient": {
                    "reference": "Patient/415b7d61-3741-4b80-b896-6da8d3aacc00"
                },
                "participant": [
                    {
                        "type": [
                            {
                                "coding": [
                                    {
                                        "system": "http://hl7.org/fhir/vs/encounter-participant-type",
                                        "code": "attender"
                                    }
                                ]
                            }
                        ],
                        "individual": {
                            "reference": "/Practitioner/9353"
                        }
                    }
                ],
                "period": {
                    "start": "28.08.2019 0:00:00",
                    "end": "28.08.2019 0:00:00"
                },
                "length": {
                    "value": 1.0
                },
                "hospitalization": {
                    "dischargeDisposition": {
                        "coding": [
                            {
                                "system": "http://hl7.org/fhir/vs/encounter-discharge-disposition",
                                "code": "exp"
                            }
                        ]
                    }
                },
                "serviceProvider": {
                    "reference": "Organization/0fbabd3b-3b99-e5bf-1afb-3e237b0b954a"
                }
            }
        }
    ]
}


Получение общего количества Encounter (СМО) по пациенту (-ам)

Получение общего количества случаев по пациенту происходит с помощью метода POST. В качестве адреса указывается URL  формате:

[base]/Encounter/_search

Тело запроса должно содержать следующие параметры:

Имя параметра

Тип данных

Описание параметра

Кратность

patients

valueString

Идентификаторы пациентов, по которым требуется выполнить поиск (перечисление делается через запятую ",")

1..*

summary

valueString

 Признак подсчета только количества.

1..1

Пример вызова метода
POST [base]/Encounter/_search
{
	"resourceType": "Parameters",
	"parameter": [{
		"name": "patients",
		"valueString": "c1d2ed45-0c19-4766-8d45-c637f48b8f3a, c1d2ed45-0c19-4766-8d45-c637f48b8f3a"
	},
	{
		"name": "summary",
		"valueString": "count"
	},
	]
}

Получение списка Encounter (СМО) по пациенту (-ам) за период

Получение общего количества случаев по пациенту происходит с помощью метода POST. В качестве адреса указывается URL  формате:

[base]/Encounter/_search

Тело запроса должно содержать следующие параметры:

Имя параметра

Тип данных

Описание параметра

Кратность

patients

valueString

Идентификаторы пациентов, по которым требуется выполнить поиск (перечисление делается через запятую ",")

1..*

count

valueString

Размер массива результатов. Если -1, то вывести все ресурсы.    

1..1

offset

valueString

Смещение выборки для пагинации запросов. Если count = -1, то можно не указывать.

0..1

date

valueString

Дата или период выборки

0..*

_sort:[valueType]

valueString

Признак сортировки результатов выборки.

ValueType может принимать значения:

  • asc – по возрастанию.
  • desc – по убыванию.

Может принимать значения:

  • id - для сортировки по параметру id;
  • date - для сортировки по параметру period.start.

0..1

Пример вызова метода

POST [base]/Encounter/_search {  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "patients",
      "valueString": "533487DE-1CAA-4997-8A6D-2FE84BA85472"
    },
		 {
      "name": "_count",
      "valueString": "100"
    },
    {
      "name": "_offset",
      "valueString": "0"
    },
    {
      "name": "date",
      "valueString": "ge2015-03-28"
    },
    {
      "name": "date",
      "valueString": "le2019-09-28"
    },
    {
      "name": "_sort:asc",
      "valueString": "id"
    }
  ]
}

Получение Encounter (СМО) по его идентификатору

Получение конкретного случая по пациенту происходит с помощью метода GET. В качестве адреса указывается URL  формате:

[base]/Encounter/{идентификатор случая медицинского обслуживания}
Пример вызова
GET [base]/Encounter/959

Особенности

  • Если Encounter, который обращается к СМО, который был отменен (например, по нему есть актуальный СМО, а на запрашиваемый в сервисе ИЭМК вызвали методы UpdateCase), то такой Encounter вернется в ответе только при прямом обращении по идентификатору.

DocumentReference

Fhir-ресурс DocumentReference  (http://hl7.org/fhir/DSTU2/documentreference.html ) предназначен для передачи сведений о медицинских документах пациента, зарегистрированных в рамках случая обслуживания Encounter , отображаемых на комплексный тип MedDocument SOAP-протокола сервиса ИЭМК.

Описание параметров ресурса представлено в таблице ниже

DocumentReference Описание Тип Кратность
meta.tag, где system = "1.2.643.2.69.1.1.1.169" Статус выгрузки медицинского документа в РЭМД по справочнику 1.2.643.2.69.1.1.1.169. CodebleConcept 0..1
identifier, где system = "http://netrika.ru/iemk-identifier" Идентификатор медицинского документа в ИЭМК Element 1...1
identifier, где system = "http://netrika.ru/iemk-mis-identifier" Идентификатор медицинского документа в передающий МИС Element 1...1
type
Код типа документа по стандарту FHIR DSTU2. В частности, используются следующие коды и мапинг по Справочнику OID: 1.2.643.2.69.1.1.1.195 ".

Предупреждение

Если в Справочнике 1.2.643.2.69.1.1.1.195 у объекта отсутствует параметр FHIR-Code, то этот такой ресурс не сформируется.

CodebleConcept 1...1
type.text
Наименование медицинского документа по справочнику 1.2.643.2.69.1.1.1.195
string 0...1
author Ссылка на ресурса Practicioner - врач, подписавшем документ. Reference (Particioner) 1...1
indexed Дата и время создания документа

datetime

"YYYY-MM-DDTHH:MM:SS+HH:MM"

1...1
status

Статус медицинского документа. Всегда используются код:

  • current - актуальная версия документа
code 1...1
description Название документа (Заголовок, краткое описание) string 1...1
securityLabel Сведения о защищенности информации. В частности, сведения о наличии электронной подписи документа и уровне конфиденциальности (обозначается кодом и его значением, согласно терминологии FHIR https://www.hl7.org/fhir/valueset-security-labels.html )
0..*
securityLabel.coding, где system = "http://terminology.hl7.org/CodeSystem/v3-ObservationValue" Бинарный признак наличия открепленной цифровой подписи у документа. CodebleConcept 0..1
securityLabel.coding, где system = "http://terminology.hl7.org/CodeSystem/v3-Confidentiality" Признак наличия скрытых данных из-за политик доступ Сервиса Управления Доступом. Если code = N, то такие данные есть, иначе code = R. CodebleConcept 1..1
content

Объект, который содержит документ.

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

BackboneElement 1..*
content.attachment Объект, в котором передаются вложения. Attachment 1...0
content.attachment.data Вложенный документ, закодированный в формате base64. data 1...1
content.attachment.id Идентификатор вложения. Идентификатор не указан у сгенерированных вложений. string 0...1
content.attachment.contentType

mimeType вложенного документа:

  • text/xml – оригинальный clinical document architecture (CDA);
  • text/html – оригинальный html;
  • text/plain оригинальный текстовый документ;
  • application/x-pkcs7-practitioner – открепленная подпись врача,
  • application/x-pkcs7-organization - открепленная подпис организации;
  • application/pdf – оригинальный pdf;
  • application/pdf-converted-uml – сконвертированный UML;
  • application/pdf-converted-html – сконвертированный html;
  • application/pdf-converted-plain – сконвертированный текст;
  • application/pdf-converted-xml – сконвертированный xml.
code 1...1
content.attachment.url Ссылка на вложение в сервис XDS. uri 0...1
content.attachment.size Размер вложенного документа. unsignedInt 1...1
context.encounter Идентификатор случая медицинского обслуживания в ИЭМК, в рамках которого сформирован медицинский документ. Reference (Encounter) 1...1
context.related.ref, где reference содержит "Observation"  Ссылка на ресурс Observation, которые связаны с этим DocumentRefernce. Reference (Observation) 0...*

extention, где url = "http://api.n3med.ru/api/fhir/n3extension-HasExpertCareRefferal'

Дано направление для получения специализированной, в
том числе высокотехнологичной медицинской помощи, если имеет значение True, иначе - False.

boolean 0...1

extention, где url = "http://api.n3med.ru/api/fhir/n3extension-HasHealthResortRefferal'

Дано направление на санитарно-курортное лечение, если имеет значение True, иначе - False.

boolean 0...1
extention, где URL = "http://api.n3med.ru/api/fhir/n3extension-additionalinformation/"

Расширение, в котором передаются дополнительные параметры по медицинским документам.

Подсказка

Подробней о доступных параметрах смотри в следующем разделе "Описание Extention.AdditionalInformation".


string (B64 coded) 0...1

{
    "resourceType": "Bundle",
    "entry": [
        {
            "resource": {
                "resourceType": "DocumentReference",
                "id": "217288",
                "identifier": [
                    {
                        "system": "http://netrika.ru/iemk-identifier",
                        "value": "217288"
                    },
                    {
                        "system": "http://netrika.ru/iemk-mis-identifier",
                        "value": "IdDocumentMis08.02.2022_04:41:16470"
                    }
                ],
                "type": {
                    "coding": [
                        {
                            "system": "http://hl7.org/fhir/vs/c80-doc-typecodes",
                            "code": "11488-4"
                        }
                    ]
                },

        "meta": {
           "tag": [
              {
               "system": "urn:oid:1.2.643.2.69.1.1.1.169",
               "code": "4",
               "display": "ЭМД принят сервисом ЕГИСЗ"
              }
            ]
         },

                "author": [
                    {
                        "reference": "/Practitioner/10785"
                    }
                ],
                "indexed": "2022-01-25T00:00:00+03:00",
                "status": "current",
                "description": "Заключение",
                "securityLabel": [
                    {
                        "coding": [
                            {
                                "system": "http://terminology.hl7.org/CodeSystem/v3-Confidentiality",
                                "code": "N",
                                "display": "normal"
                            }
                        ]
                    }
                ],
                "content": [
                    {
                        "attachment": {
                            "size": 0
                        }
                    }
                ],
                "context": {
                    "encounter": {
                        "reference": "/Encounter/487922"
                    },
                    "related": [
                        {
                            "ref": {
                                "reference": "Observation/80708"
                            }
                        },
                        {
                            "ref": {
                                "reference": "Observation/80709"
                            }
                        },
                        {
                            "ref": {
                                "reference": "Observation/80710"
                            }
                        },
                        {
                            "ref": {
                                "reference": "Observation/80711"
                            }
                        }
                    ]
                }
            }
        }
    ]
}

Описание Extention.AdditionalInforamtion

Extention где URL = "http://api.n3med.ru/api/fhir/n3extension-additionalinformation/" в текущей реализации передает в закодированном виде (B64) типом String дополнительные параметры по медицинским документам, которые хранятся в Сервисе-ИЭМК.

Параметр Обязательность Тип Описание
DocumentReference.type = 64297-5 - Медицинское свидетельство о смерти (DeathCertificate)
CertificateDate 0...1 valuedatetime Дата свидетельства о смерти.
CertificateS 0...1 valueString Серия свидетельства о смерти.
CertificateN 0...1 valueString Номер свидетельства о смерти.
DeathDate 0...1 valuedatetime Дата смерти.
DeathReasonImmediate 0...1 valueCodebleConcept Непосредственная причина смерти, а), код МКБ-10 (Справочник OID: 1.2.643.2.69.1.1.1.2).
DeathReasonIntermediate 0...1 valueCodebleConcept Промежуточная причина смерти б), код МКБ-10 (Справочник OID: 1.2.643.2.69.1.1.1.2).
DeathReasonInitial 0…1 valueCodebleConcept Первоначальная причина смерти в), код МКБ-10 (Справочник OID: 1.2.643.2.69.1.1.1.2).
DeathReasonExternal 0...1 valueCodebleConcept Внешней причины смерти г), код МКБ-10  (Справочник OID: 1.2.643.2.69.1.1.1.2).
DeathReason 0...1 valueCodebleConcept Код МКБ-10 первоначальной причины смерти (Справочник OID: 1.2.643.2.69.1.1.1.2).

DocumentReference.type =71230-7 - Медицинское свидетельство о рождении (BirthCertificate)

CertificateDate 0...1 valuedatetime Дата свидетельства о рождении.
CertificateS 0...1 valueString Серия свидетельства о рождении.
CertificateN 0...1 valueString Номер свидетельства о рождении.
BirthDate 0...1 valuedatetime Дата рождения.
Sex 0...1 valueCodebleConcept Пол (Справочник OID 1.2.643.5.1.13.2.1.1.156)
BirthOrder 0...1 valueint Порядковый номер в родах

DocumentReference.type =55107-7 - Медицинское свидетельство о пренатальной смерти (AddendumDocument)

CertificateDate 0...1 valuedatetime Дата свидетельства о смерти.
CertificateS 0...1 valueString Серия свидетельства о смерти.
CertificateN 0...1 valueString Номер свидетельства о смерти.
DeathDate 0...1 valuedatetime Дата смерти.
CodeMainPrenatal 0...1 valueCodebleConcept Основное забол-е плода или ребенка а), код МКБ-10 (Справочник OID: 1.2.643.2.69.1.1.1.2).
CodeOtherPrenatal 0...1 valueCodebleConcept Другие забол-я плода или ребенка  б), код МКБ-10 (Справочник OID: 1.2.643.2.69.1.1.1.2).
CodeMainMother 0...1 valueCodebleConcept Основное забол-е матери в), код МКБ-10 (Справочник OID: 1.2.643.2.69.1.1.1.2).
CodeOtherMother 0...1 valueCodebleConcept Другие забол-я матери г), код МКБ-10  (Справочник OID: 1.2.643.2.69.1.1.1.2).
DeathReasonPrenatal 0...1 valueCodebleConcept Основная причина смерти плода или ребенка, код МКБ-10 (Справочник OID: 1.2.643.2.69.1.1.1.2).
DeathReasonMother 0...1 valueCodebleConcept Основная причина, забол-е матери, код МКБ-10 (Справочник OID: 1.2.643.2.69.1.1.1.2).
{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "DeathReason",
            "valueCodeableConcept": {
                "coding": [
                    {
                        "system": "urn:oid:1.2.643.2.69.1.1.1.2",
                        "code": "U07.1",
                        "display": "COVID-19"
                    }
                ]
            }
        },
        {
            "name": "CertificateDate",
            "valueDateTime": "2021-12-02T00:00:00+03:00"
        },
        {
            "name": "CertificateS",
            "valueString": "7796"
        },
        {
            "name": "CertificateN",
            "valueString": "779703"
        },
        {
            "name": "DeathDate",
            "valueDateTime": "2021-11-27T00:00:00+03:00"
        },
        {
            "name": "DeathReasonImmediate",
            "valueCodeableConcept": {
                "coding": [
                    {
                        "system": "urn:oid:1.2.643.2.69.1.1.1.2",
                        "code": "Z97.8",
                        "display": "Наличие другого уточненного устройства"
                    }
                ]
            }
        },
        {
            "name": "DeathReasonIntermediate",
            "valueCodeableConcept": {
                "coding": [
                    {
                        "system": "urn:oid:1.2.643.2.69.1.1.1.2",
                        "code": "W34.5",
                        "display": "В учреждении и районе торговли и обслуживания"
                    }
                ]
            }
        },
        {
            "name": "DeathReasonInitial",
            "valueCodeableConcept": {
                "coding": [
                    {
                        "system": "urn:oid:1.2.643.2.69.1.1.1.2",
                        "code": "J15.2",
                        "display": "Пневмония, вызванная стафилококком"
                    }
                ]
            }
        },
        {
            "name": "DeathReasonExternal",
            "valueCodeableConcept": {
                "coding": [
                    {
                        "system": "urn:oid:1.2.643.2.69.1.1.1.2",
                        "code": "X85.4",
                        "display": "На улице или автомагистрали"
                    }
                ]
            }
        }
    ]
}
{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "CertificateDate",
            "valueDateTime": "2021-12-02T00:00:00+03:00"
        },
        {
            "name": "CertificateS",
            "valueString": "5132"
        },
        {
            "name": "CertificateN",
            "valueString": "513322"
        },
        {
            "name": "BirthDate",
            "valueDateTime": "2021-09-02T00:00:00+03:00"
        },
        {
            "name": "Sex",
            "valueCodeableConcept": {
                "coding": [
                    {
                        "system": "urn:oid:1.2.643.5.1.13.2.1.1.156",
                        "code": "2",
                        "display": "Женский"
                    }
                ]
            }
        },
        {
            "name": "BirthOrder",
            "valueString": "1"
        }
    ]
}
{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "DeathReason",
            "valueCodeableConcept": {
                "coding": [
                    {
                        "system": "urn:oid:1.2.643.2.69.1.1.1.2",
                        "code": "U07.1",
                        "display": "COVID-19"
                    }
                ]
            }
        },
        {
            "name": "CertificateDate",
            "valueDateTime": "2021-12-02T00:00:00+03:00"
        },
        {
            "name": "CertificateS",
            "valueString": "7796"
        },
        {
            "name": "CertificateN",
            "valueString": "779703"
        },
        {
            "name": "DeathDate",
            "valueDateTime": "2021-11-27T00:00:00+03:00"
        },
        {
            "name": "DeathReasonImmediate",
            "valueCodeableConcept": {
                "coding": [
                    {
                        "system": "urn:oid:1.2.643.2.69.1.1.1.2",
                        "code": "Z97.8",
                        "display": "Наличие другого уточненного устройства"
                    }
                ]
            }
        },
        {
            "name": "DeathReasonIntermediate",
            "valueCodeableConcept": {
                "coding": [
                    {
                        "system": "urn:oid:1.2.643.2.69.1.1.1.2",
                        "code": "W34.5",
                        "display": "В учреждении и районе торговли и обслуживания"
                    }
                ]
            }
        },
        {
            "name": "DeathReasonInitial",
            "valueCodeableConcept": {
                "coding": [
                    {
                        "system": "urn:oid:1.2.643.2.69.1.1.1.2",
                        "code": "J15.2",
                        "display": "Пневмония, вызванная стафилококком"
                    }
                ]
            }
        },
        {
            "name": "DeathReasonExternal",
            "valueCodeableConcept": {
                "coding": [
                    {
                        "system": "urn:oid:1.2.643.2.69.1.1.1.2",
                        "code": "X85.4",
                        "display": "На улице или автомагистрали"
                    }
                ]
            }
        }
    ]
}

Описание применимых методов ресурса DocumentReference

С FHIR-ресурсом DocumentReference можно взаимодействовать с помощью методов GET и POST. 

Получение данных с помощью метода GET

Для GET запросов доступны параметры запроса. Чтобы получить к ним доступ, необходимо после наименование ресурса и символа / добавить строку _search?. Параметры которые перечисляются через символ & в любом порядке без учета регистра. Входные параметры представлены в таблице ниже

Наименование параметра Типа данных Описание параметра
[ID] int

Идентификатор ресурса DocumentReference в Сервисе-ИЭМК

format string

Определяет формат ответа. Доступны значения:

  • json - для JSON-формата
  • отсутствует - для ответа XML-формата
mimeTypeOriginal boolean

Определяет формат content.attachment. Доступны значения:

  • True - в ответе будут вложения в исходном формате;
  • False или не указано - в ответе будут вложения в формате PDF.

Примечание

Если данные в исходном формате лежат в формате PDF, то они вернутся в формате PDF.

IsIgnoreFHIRcode boolean

Регулирует чувствительность к кратности параметра type. Доступны значения:

  • True - в ответе будут ресурсы, даже если обязательный параметр DocumentReference.type будет значение IdMedDocumentType ;
  • False или не указано - в ответе будут ресурсы, только если обязательный параметр DocumentReference.type будет заполнен;

Пример вызова метода GET

GET [base]/DocumentReference/123456?_format=json&mimeTypeOriginal=true&IsIgnoreFHIRcode=true
Получение данных с помощью метода POST

Получение списка документов (ресурсов DocumentReference) по идентификатору СМО происходит с помощью метода POST. В качестве адреса указывается URL формате:

[base]/DocumentReference/_search

Тело запроса должно содержать следующие параметры:

Имя параметра Тип данных Описание параметра Кратность
encounter valueString Ссылка на ресурс Encounter, по которому необходимо получить ресурсы DocumentReference 1..1
summary valueString Признак загрузки только описательной части объекта DocumentReference (т.е. без Attachment.data). 
  • если "true" – не передается DocumentReference.content.attachment.data
  • если "false" или не указано – передается
0..1
IsIgnoreFHIRCode valueString

Признак игнорирования обязательности параметра type.

  • если "true" – ресурс формируется, а в параметре указывается атрибут Код справочника 1.2.643.2.69.1.1.1.195
  • если "false" или не указано – в ответе вернется пустой Bundle, если у этого ресурса отсутствует атрибут FHIR-Code справочника  1.2.643.2.69.1.1.1.195

0..1

Пример вызова метода POST

POST [base]/DocumentReference/_search
 {
	"resourceType": "Parameters",
	"parameter": 
    [
        {
		"name": "encounter",
		"valueString": "Encounter/5"
	    },
	    {
		"name": "summary",
		"valueString": "true"
	    },
		"name": "IsIgnoreFHIRCode",
 		"valueString": "true"
	    }, 
    ]
}

Condition

Fhir-ресурс Condition (https://www.hl7.org/fhir/DSTU2/condition.html) предназначен для передачи сведений о подозрении на заболевание (Problem) и диагнозах пациента (Diagnosis).

Condition (Diagnosis)

FHIR - ресурс  Condition (https://www.hl7.org/fhir/DSTU2/condition.html) данного типа содержит следующие параметры,  отображаемые на комплексный тип Diagnosis  SOAP-протокола сервиса ИЭМК:

Condition Описание Тип Кратность
meta Расширение ресурса Condition. Всегда передает пространство имен в виде  "system": " urn:oid:1.2.643.2.69.1.1.1.2 " (из справочника "МКБ10 ред.СПб КЗ") в виде кода группы диагнозов.

CodebleConcept

1...1
identifier Идентификаторы ресурса. Массив Element'ов 1...1
identifier, где system:'"http://netrika.ru/iemk-identifier' Идентификатор диагноза (Condition). Element 1...1
identifier,
где "system": "http://netrika.ru/parent-condition-identifier"
Идентификатор родительского диагноза. Element 0...1
patient Передает идентификатор карточки пациента Reference(Patient) из MP.I, которому поставлен диагноз. Reference (Patient) 1...1
encounter Передает идентификатор случая обслуживания, в рамках которого поставлен диагноз (idCase). Reference (Encounter) 1...1
dateRecorded Дата постановки диагноза (создания записи). datetime 1...1
code Диагноз, передается из пространства имен "urn:oid:1.2.643.2.69.1.1.1.2". CodebleConcept 1...1
category Всегда передает значение "diagnosis", в случае передачи сведений о диагнозе (не о подозрении). CodebleConcept 1...1

clinicalStatus


Это значение расширено с помощью extention/DiseseType

Код характера заболевания

Мапинг значений с Cправочника OID: 1.2.643.2.69.1.1.1.8 на HL7:

  • если значение 1, то "active",
  • если значение 1-5, то "remission",
  • иначе не передавать 
code 0...1

verificationStatus


Это значение расширено с помощью extention, где system = http://api.n3med.ru/api/fhir/n3extension-verificationStatus'

Код этапа установления диагноза.

Мапинг значений с Cправочника OID: 1.2.643.2.69.1.1.1.10 на HL7:

  • если значение 1, то "provisional",
  • если значение 2-4, то "confirmed",
  • иначе "unknown".
code 1..1
evidance В этом блоке перечисляются сопровождающие доказательства. BackboneElement 0..1
evidance.extention, где URL = ParamValue Показатели наблюдения пациента в виде кода показателя (code) и его наименования (display). ~ CodebleConcept 0...1
extention Дополнительная информация по диагнозу. Identifier 1...1
extention, где URL='http://api.n3med.ru/api/fhir/n3extension-nosologicalunitsofdiagnosis' Идентификатор статуса диагноза (Справочник OID: 1.2.643.2.69.1.1.1.26). CodebleConcept 1...1
extention, где URL='http://api.n3med.ru/api/fhir/n3extension-dispensarystatus' Идентификатор состояния диспансерного учета по данному диагнозу (заболеванию) (Справочник OID: 1.2.643.2.69.1.1.1.11). CodebleConcept 0...1
extention, где URL ='http://api.n3med.ru/api/fhir/n3extension-verificationStatus'

Идентификатор этапа установления диагноза (Справочник OID: 1.2.643.2.69.1.1.1.10).

Подсказка

Этот параметр дополняет verificationStatus и всегда будет содержать больше информации.

CodebleConcept 1...1
extention, где URL =' http://api.n3med.ru/api/fhir/n3extension-clinicalStatus'

Идентификатор характера заболевания (Справочник OID: 1.2.643.2.69.1.1.1.8).

Подсказка

Этот параметр дополняет clinicalStatus и всегда будет содержать больше информации.

CodebleConcept 0...1
extention, где URL='DiagnosisChangeReason'

Код причины изменения диагноза (уточнение, отмена и др.) (Справочник OID: 1.2.643.2.69.1.1.1.9).

CodebleConcept 0...1
extention, где URL='MkbCodeChange'

Заменяемый код МКБ-10 (Справочник OID: 1.2.643.2.69.1.1.1.2).

CodebleConcept 0...1
extention, где URL='DiseaseStatus' Статус заболевания (Справочник OID: 1.2.643.5.1.13.2.1.1.122). CodebleConcept 0...1
{
	"resourceType": "Bundle",
	"entry": [
		{
			"resource": {
				"resourceType": "Condition",
				"id": "304370",
				"meta": {
					"tag": [
						{
							"system": "urn:oid:1.2.643.2.69.1.1.1.2",
							"code": "XIX"
						}
					]
				},
				"extension": [
					{
						"url": "http://api.n3med.ru/api/fhir/n3extension-nosologicalunitsofdiagnosis",
						"valueCodeableConcept": {
							"coding": [
								{
									"system": "urn:oid:1.2.643.2.69.1.1.1.26",
									"code": "1",
									"display": "Основной"
								}
							]
						}
					},
					{
						"url": "http://api.n3med.ru/api/fhir/n3extension-verificationStatus",
						"valueCodeableConcept": {
							"coding": [
								{
									"system": "urn:oid:1.2.643.2.69.1.1.1.10",
									"code": "3",
									"display": "Заключительный"
								}
							]
						}
					},
					{
						"url": "http://api.n3med.ru/api/fhir/n3extension-clinicalStatus",
						"valueCodeableConcept": {
							"coding": [
								{
									"system": "urn:oid:1.2.643.2.69.1.1.1.8",
									"code": "1",
									"display": "острое"
								}
							]
						}
					},
					{
						"url": "http://api.n3med.ru/api/fhir/n3extension-dispensarystatus",
						"valueCodeableConcept": {
							"coding": [
								{
									"system": "urn:oid:1.2.643.2.69.1.1.1.11",
									"code": "3",
									"display": "взят повторно"
								}
							]
						}
					},
					{
						"url": "MkbCodeChange",
						"valueCodeableConcept": {
							"coding": [
								{
									"system": "urn:oid:1.2.643.2.69.1.1.1.2",
									"code": "Z59.8",
									"display": "Другие проблемы, касающиеся экономических и жилищных условий"
								}
							]
						}
					},
					{
						"url": "DiseaseStatus",
						"valueCodeableConcept": {
							"coding": [
								{
									"system": "urn:oid:1.2.643.5.1.13.2.1.1.122",
									"code": "2",
									"display": "Выздоровление с полным восстановлением физиологического процесса (функции)"
								}
							]
						}
					},
					{
						"url": "DiagnosisChangeReason",
						"valueCodeableConcept": {
							"coding": [
								{
									"system": "urn:oid:1.2.643.2.69.1.1.1.9",
									"code": "1",
									"display": "подозрение снято"
								}
							]
						}
					}
				],
				"identifier": [
					{
						"system": "http://netrika.ru/iemk-identifier",
						"value": "304370"
					}
				],
				"patient": {
					"reference": "/Patient/b93c54db-0ed2-4b5b-b8fc-691c6449f8d5"
				},
				"encounter": {
					"reference": "/Encounter/487872"
				},
				"dateRecorded": "2016-01-02T00:00:00+03:00",
				"code": {
					"coding": [
						{
							"system": "http://netrika.ru/diagnosis-code",
							"code": "T66",
							"display": "Неуточненные эффекты излучения"
						}
					]
				},
				"category": {
					"coding": [
						{
							"system": "http://hl7.org/fhir/vs/condition-category",
							"code": "diagnosis"
						}
					]
				},
				"clinicalStatus": "active",
				"verificationStatus": "confirmed",
				"evidence": [
					{
						"extension": [
							{
								"url": "ParamValue",
								"valueString": "185"
							}
						],
						"code": {
							"coding": [
								{
									"system": "urn:oid:1.2.643.2.69.1.1.1.127",
									"code": "15",
									"display": "Мутации гена NRAS"
								}
							]
						}
					},
					{
						"extension": [
							{
								"url": "ParamValue",
								"valueString": "70"
							}
						],
						"code": {
							"coding": [
								{
									"system": "urn:oid:1.2.643.2.69.1.1.1.127",
									"code": "50",
									"display": "ЧСС"
								}
							]
						}
					}
				],
				"notes": "Комент добавлен"
			}
		}
	]
}

Condition (Problem)

FHIR - ресурс  Condition данного типа содержит следующие параметры, отображаемые на комплексный тип Problem  SOAP-протокола сервиса ИЭМК:

Condition Описание Тип Кратность
identifier Идентификатор подозрения на заболевание в ИЭМК  Identifier 1...1
identifier, где system = "urn:oid:1.2.643.5.1.13.2.7.100.6" Всегда передает пространство имен в виде  "system": "urn:oid: 1.2.643.5.1.13.2.7.100.6", где value - уникальный идентификатор подозрения на заболевания в системе-источнике , а assigner.display - OID системы-источника Element 1...1
patient Идентификатор карточки пациента в ИЭМК. Reference (Patient) 1...1
encounter Идентификатор СМО в ИЭМК. Передается всегда, кроме мастер-случаев.
Reference (Ecnounter) 0...1
asserter Идентификатор врача в ИЭМК. Reference (Particioner) 1...1
dateRecorded Дата выявления подозрения. Передается, если в CkinicalStatus = true (подозрение установлено). Если Status = false (подозрение снято), не передается. date 0...1
code Код диагноза МКБ-10. CodebleConcept 1...1
category

Передавать finding из пространства имен http://hl7.org/fhir/vs/condition-category.

CodebleConcept 1...1
clinicalStatus

Код характера подозрения. 

code 1...1
verificationStatus Код статуса подозрения.


code 1...1
abatement.
abatementDateTime
Дата снятия подозрения.  datetime 0...1
notes Комментарии string 0...1
{
  "resourceType": "Bundle",
  "entry": [
    {
      "resource": {
        "resourceType": "Condition",
        "id": "2",
        "identifier": [
          {
            "system": "urn:oid:1.2.643.5.1.13.2.7.100.6",
            "value": "2039e788-374b-480f-b055-13ee9ae4b704",
            "assigner": {
              "display": "1.2.643.2.69.1.2.17"
            }
          }
        ],
        "patient": {
          "reference": "/Patient/effb978f-5adc-4b1c-b034-74012ed41a01"
        },
        "encounter": {
          "reference": "/Encounter/9647"
        },
        "asserter": {
          "reference": "/Practitioner/3214"
        },
        "dateRecorded": "14.01.2020 12:34:46",
        "code": {
          "coding": [
            {
              "code": "T35.0"
            }
          ]
        },
        "category": {
          "coding": [
            {
              "system": "http://hl7.org/fhir/vs/condition-category",
              "code": "finding"
            }
          ]
        },
        "clinicalStatus": "active",
        "verificationStatus": "provisional",
        "notes": "комментарий"
      }
    }
  ]
}

Получение данных о подозрении на заболевание по его идентификатору

Получение данных о подозрении на заболевание происходит с помощью метода GET. В качестве адреса указывается URL  формате:

[base]/Condition/{идентификатор подозрения на заболевание}?_format=json&category=finding
Пример вызова
 GET [base]/Condition/2?_format=json&category=finding

Получение данных о диагнозе по его идентификатору

Получение данных о диагнозе по его идентификатору происходит с помощью метода GET. В качестве адреса указывается URL  формате:

[base]/Condition/{идентификатор диагноза}?_format=json&category=diagnosis
Пример вызова
 GET [base]/Condition/25874

Получение списка диагнозов по пациенту (-ам)

Получение списка диагнозов происходит с помощью метода POST. В качестве адреса указывается URL  формате: 

[base]/Condition/_search?_format=json

Тело запроса должно содержать  следующие параметры:  

Имя параметра

Тип данных

Описание параметра

Кратность

patients

valueString

Идентификаторы пациентов, по которым требуется выполнить поиск (перечисление делается через запятую ",")

1..*

count

valueString

Размер массива результатов. Если -1, то вывести все ресурсы.    

1..1

offset

valueString

Смещение выборки для пагинации запросов. Если count = -1, то можно не указывать.

0..1

Пример вызова
POST [base]/Condition/_search?_format=json
{
	"resourceType": "Parameters",
	"parameter": [{
		"name": "patients",
		"valueString": "da2c0f3a-e45f-4b8d-bcba-f4868d7a8690, 44137d60-5361-4194-8377-00c5cc5126c6"
	},
	{
		"name": "count",
		"valueString": "10"
	},
	{
		"name": "offset",
		"valueString": "1"
	}]
}

Получение списка подозрений по дате выявления, коду диагноза и категории

Получение списка подозрений, по указанной дате выявления, коду диагноза и категории (по умолчанию finding), может осуществляется 2-мя способами: с помощью метода GET и метода POST.

Метод GET:

В качестве адреса указывается URL  в формате:

GET [base]/Condition?dateRecorded=ge{дата}&dateRecorded=le{дата}&category=finding&code:text={код диагноза по МКБ-10}

Параметр dateRecorded (дата выявления подозрения) может отображать конкретную дату поиска, а также промежуток времени, за который он осуществляется: 

  • Если выбирается конкретная дата поиска, тогда дата задается в следующем формате: dateRecorded=yyyy-mm-dd. Например dateRecorded=2020-01-18
  • Если поиск осуществляется за промежуток дней, тогда даты задаются в следующем формате: dateRecorded=ge{yyyy-mm-dd}&dateRecorded=le{yyyy-mm-dd}, где ge - начало промежутка, le-конец промежутка дней в выборке. Например: dateRecorded=ge2020-02-10&dateRecorded=le2020-07-07

Параметр category по умолчанию задается значением finding

Параметр code:text задается кодом диагноза по МКБ-10:

  • Если нужна выборка по определенному диагнозу, тогда в параметре code:text указывается полный код по справочнику МКБ-10. Например code:text=Z03.1
  • Если нужна выборка по группе диагнозов, в параметре code:text указывается только буквенная часть кода. Например code:text=Z  
  • Если нужна выборка по нескольким группам/диагнозам, они указываются в параметре code:text через запятую. Например, code:text=C,D,Z03.1
Пример вызова
GET [base]/Condition?dateRecorded=ge2020-02-10&dateRecorded=le2020-07-07&category=finding&code:text=Z03.1

В ответе метода выводится массив Condition за указанный в dateRecorded период/дату выявления, по обозначенному в запросе диагнозу/группе диагнозов, по категории finding.

Метод POST: 

В качестве адреса указывается URL  в формате:

POST [base]/Condition/_search?_format=json

Тело запроса должно содержать следующие параметры:

Имя параметра

Тип данных

писание параметра

Кратность

patients

valueString

Идентификаторы пациентов, по которым требуется выполнить поиск (перечисление делается через запятую ",").

1..*

dateRecorded

valueString

Дата выявления подозрения.

1..*

code:text

valueString

Код диагноза/код группы диагнозов (может быть указано несколько, перечисление через запятую).

1..1

category

valueString

 Тип диагноза.

1..1

count

valueString

Размер массива результатов. Если -1, то вывести все ресурсы.    

0..1

offset

valueString

Смещение выборки для пагинации запросов. Если count = -1, то можно не указывать.

0..1

Принцип заполнения параметров аналогичный, как при вызове методом GET.

 Пример вызова метода
Пример вызова
POST [base]/Condition/_search?_format=json
{
	    "resourceType":  "Parameters",
	    "parameter": [{
		        "name": "patients",
		        "valueString": "da2c0f3a-e45f-4b8d-bcba-f4868d7a8690, 44137d60-5361-4194-8377-00c5cc5126c6"
	},
    {
		        "name":  "code:text",
		        "valueString":  "C,D,Z03.1"    
	},
	    {
		        "name":  "count",
		        "valueString":  "100"    
	},
	    {
		        "name":  "category",
		        "valueString":  "finding"    
	},
	{
		        "name":  "dateRecorded",
		        "valueString":  "ge2020-02-10"    
	},
	{
		        "name":  "dateRecorded",
		        "valueString":  "le2020-07-10"    
	},
	{
        "name":"offset",
        "valueString":"0"
        }
	]
}

Получение общего количества Condition по пациенту

Получение общего количества Condition для типов Problem и Diagnosis, по идентификатору пациента,  происходит с помощью метода POST. В качестве адреса указывается URL  формате:

[base]/Condition/_search?_format=json

Тело запроса должен содержать следующие параметры:

Имя параметра

Тип данных

писание параметра

Кратность

patients

valueString

Идентификаторы пациентов, по которым требуется выполнить поиск (перечисление делается через запятую ",").

1..*

summary

valueString

Получение общего числа Condition.

1..1

category

valueString

 Тип диагноза. Должен быть "diagnosis" либо "finding".

1..1

Пример вызова
POST [base]/Condition/_search?_format=json
{
 	"resourceType":"Parameters",
 	"parameter":[
 		{
		"name":"patients",
 		"valueString":"fde3c52a-1a4c-412f-b8db-2f623f05d835"
 		},
 		{
		"name":"summary",
		"valueString":"count"
        },
		 {
 		"name":"category",
		"valueString":"diagnosis"
 		}
 	]
}

Для получения данных только по всем подозрениям на заболевания, необходимо в теле запроса добавить параметр: 

{
 	"name":"category",
 	"valueString":"finding"
}

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

{
 	"name":"category",
 	"valueString":"diagnosis"
}

Practitioner

Fhir-ресурс Practitioner (http://hl7.org/fhir/DSTU2/practitioner.html) предназначен для передачи сведений о медицинском работнике, отображаемых на комплексный тип MedicalStaff SOAP-протокола сервиса ИЭМК.

Practitioner Описание Тип Кратность
id, identifier Идентификатор медицинского работника (врача) в ИЭМК. Identifier 1...1
identifier, где system = "urn:oid:1.2.643.2.69.1.1.1.6.223" СНИЛС врача. CodebleConcept 1...1
name.text Полное ФИО медицинского работника. string 1...1
name.family [0] - Фамилия и [1] - Отчество медицинского работника. string 1...1
name.given Имя медицинского работника. string 1...1
particionerRole.managingOrganization Ссылка на место работы врача, где он занимает свою должность. Reference/Organization 1...1
practitionerRole.speciality Передается пространство имен (Справочник:1.2.643.5.1.13.2.1.1.181  "Номенклатура специальностей специалистов с высшим и послевузовским медицинским и фармацевтическим образованием в сфере здравоохранения"), в виде кода специальности (code), и ее наименования (display). CodebaleConcept 1...1
practitionerRole.role. Идентификатор должности врача. CodebaleConcept 1...1


{
    "resource": {
        "resourceType": "Practitioner",
        "id": "1",
        "identifier": [
            {
                "system": "http://netrika.ru/iemk-identifier",
                "value": "1"
            },
            {
                "system": "urn:oid:1.2.643.2.69.1.1.1.6.223",
                "value": "05865997537",
                "assigner": {
                    "display": "ООО \"СМК \"РЕСО-МЕД\""
                }
            }
        ],
        "name": {
            "text": "Андрианов Филипп Владимирович",
            "family": [
                "Андрианов",
                "Владимирович"
            ],
            "given": [
                "Филип"
            ]
        },
        "practitionerRole": [
            {
                "managingOrganization": {
                    "reference": "Organization/b7f76c8-04f6-480c-bbb1-ce24bffdcc2b"
                }
            },
            {
                "role": [
                    {
                        "coding": {
                            "system": "urn:oid:1.2.643.5.1.13.13.11.1002",
                            "code": "422",
                            "display": "Заведующий"
                        }
                    }
                ]
            },
            {
                "specialty": [
                    {
                        "coding": [
                            {
                                "system": "urn:oid:1.2.643.5.1.13.13.11.1066",
                                "code": "287",
                                "display": "Остеопатия"
                            }
                        ]
                    }
                ]
            }
        ]
    }
} 

Получение данных врача по его идентификатору

Получение общего количества случаев по пациенту происходит с помощью метода GET. В ответе вернется несколько ресурсов Practicioner, которые были найдены, в случае, если данные врача были обновлены. В качестве адреса указывается URL  формате:

[base]/Practitioner/{идентификатор врача}
Пример вызова
 GET [base]/Practitioner/55959

Procedure

Fhir-ресурс Procedure (https://www.hl7.org/fhir/DSTU2/procedure.html) предназначен для передачи сведений о выполненных (оказанных) медицинских услугах в рамках эпизода случая обслуживания Service , отображаемых на комплексный тип Service SOAP-протокола сервиса ИЭМК :

Procedure Описание Тип Кратность
identifier Идентификатор оказанной услуги в ИЭМК. Identifier 1...1
extention, где URL = ParamCode
exntetion, где URL = ParamValue
Показатели наблюдения пациента в виде кода показателя (code), значение (ParamValue) и его наименования (display) (Справочник OID: 1.2.643.2.69.1.1.1.127). ~CodebleConcept 0..1
subject Ссылка на пациента, которому была оказана услуга. Reference (Patient) 1...1
status

Код, указывающий на завершенность оказания услуги/проведения медицинской процедуры. Используются следующие коды:

  • completed - если Status=true, означает что услуга оказана полностью;
  • in-progress- если Status=false или отсутствует, означает, что услуга все еще оказывается.
code 1...1
code Код процедуры/услуги (code), согласно справочнику oid:1.2.643.2.69.1.1.1.88 "Номенклатура медицинских услуг" и ее название (text). CodebleConcept 1...1
performer.actor Идентификатор врача (Practicioner), который оказывал медицинскую услугу. Reference (Particioner) 1...1
performedPeriod.start Дата начала оказания услуги. datetime 0...1
performedPeriod.end Дата завершения оказания услуги. datetime 0...1
encounter

Идентификатор СМО, в рамках которого передается услуга.

Reference (Encounter) 1..1
Пример ресурса Procedure
{
  "resourceType": "Bundle",
  "entry": [
    {
      "resource": {
        "resourceType": "Procedure",
        "id": "59",
        "identifier": [
          {
            "system": "http://netrika.ru/iemk-identifier",
            "value": "59"
          }
        ],
        "subject": {
          "reference": "/Patient/396b2429-6fe3-4fe0-9eed-16aff3e17ffe"
        },
        "status": "in-progress",
        "code": {
          "coding": [
            {
              "system": "urn:oid:1.2.643.2.69.1.1.1.88",
              "code": "B03.016.004"
            }
          ],
          "text": "Анализ крови биохимический общетерапевтический"
        },
        "performer": [
          {
            "actor": {
              "reference": "/Practitioner/102"
            }
          }
        ],
        "performedPeriod": {
          "start": "25.08.2018",
          "end": "01.09.2018"
        },
        "encounter": {
          "reference": "/Encounter/308"
        }
      }
    }

Получение списка Procedure по пациенту (-ам)

Получение общего количества случаев по пациенту происходит с помощью метода POST. В качестве адреса указывается URL  формате:

[base]/Procedure/_search?_format=json

Тело запроса должно содержать следующие параметры:

Имя параметра

Тип данных

Описание параметра

Кратность

patients

valueString

Идентификаторы пациентов, по которым требуется выполнить поиск (перечисление делается через запятую ",")

1..*

count

valueString

Размер массива результатов. Если -1, то вывести все ресурсы.    

1..1

offset

valueString

Смещение выборки для пагинации запросов. Если count = -1, то можно не указывать.

0..1

_sort:[valueType]

valueString

Признак сортировки результатов выборки.

ValueType может принимать значения:

  • asc – по возрастанию.
  • desc – по убыванию.

Может принимать значения:

  • id - для сортировки по параметру id;
  • date - для сортировки по параметру period.start.

0..1

Пример вызова
POST [base]/Procedure/_search?_format=json
{
    "resourceType": "Parameters",
    "parameter": [{
        "name": "patients",
        "valueString":"4E117E6C-34E8-4184-87E8-A3F4890C9FB0"
    }, 
   {
		"name": "count",
		"valueString": "1"
	},
	{
		"name": "offset",
		"valueString": "0"
	},
	{
		"name": "sort:desc",
		"valueString": "date"
	}
    ]
}

Получение Procedure по его идентификатору

Получение конкретного объекта Procedure происходит с помощью метода GET. В качестве адреса указывается URL  формате:

[base]/Procedure/{идентификатор операции}?_format=json

Пример вызова метода

Пример вызова метода
[base]/Procedure/4809?_format=json

Получение Procedure по идентификатору случая медицинского обслуживания

Получение списка Procedure по идентификатору СМО, происходит с помощью метода GET. В качестве адреса указывается URL  формате:

[base]/Procedure?encounter={идентификатор СМО}?_format=json
Пример вызова
[base]/Procedure?encounter=66666&_format=json

Observation

Fhir-ресурс Observation (http://hl7.org/fhir/DSTU2/observation.html) предназначен для передачи параметров наблюдения за пациентом и содержит следующие параметры, отображаемые на комплексный тип Observation SOAP-протокола сервиса ИЭМК.

Observation  Описание Тип Кратность
identifier   Идентификатор наблюдения в ИЭМК. Identifier 1...1

code

Передает пространство имен в виде  "system": "urn:oid:1.2.643.2.69.1.1.1.127" (из справочника "Показатели наблюдения пациента") в виде кода показателя (code) и его наименования (display). CodebleConcept 1...1

subject

Передает ИД карточки пациента в MPI. Reference (Patient) 1...1
encounter Ссылка на случай обслуживания, в рамках которого передается наблюдение. Reference (Encounter) 1...1

effective.effectiveDateTime

Дата измерения показателя. datetime 1...1

value

Тип показателя.

Могут быть использованы следующие типы данных :

  1. valueCodeableConcept - кодирование по справочнику,
  2. valueQuantity - целочисленное значение,
  3. valueString - текстовая строка,
    1. ObservationBooleanValue - бинарное значение,
    2. ObservationDateTimeValue - передача времени,
    3. ObservationFloatValue - передача дробных значений.

Передавать единицы (при наличии) измерения только для типов:

  1. valueCodeableConcept - кодирование по справочнику,
  2. valueQuantity - количественный.

Подсказка

Именно в этом параметре передаются ВИМИС-Observation. Чтобы ознакомиться что это, можно перейти по странице: JSON. Свод

Actual result 1...1

interpretation

Интерпретация результатов (Справочник OID:1.2.643.5.1.13.13.11.1381 "Справочник кодов интерпретации результатов"). CodebleConcept 0...1

referenceRange

Референсный показатель, зависит от типа ReferenceRange/RangeType, передаются числовые значения из справочника OID:1.2.643.2.69.1.1.1.137 "Тип референтного значения":

  1. Нижняя граница (low)
  2. Верхняя граница (high)
  3. Текстовый диапазон (text)
BackboneElement 1...1
status

Статус наблюдения. Всегда передается значение “final“ из пространства имен http://hl7.org/fhir/observation-status

code 1...1

category

Тип наблюдения. Всегда передается значение “vital-signs“ из пространства имен http://hl7.org/fhir/observation-category CodebleConcept 1...1

related

Этим параметром перечисляются ресурсы, с которым связан этот Observation, из параметра component. BackboneElement 0...*

related.type

Тип связи. Может принимать значения:

  • has-member - тип связи, который указывает какие ресурсы содержит;
  • derived-from - тип связи, который указывает из какого ресурса этот Observation был получен.
code 1...1

related.target

Ссылка на ресурс, с которым связан этот Reference (Observation) 1...1

component

Используется для передачи наблюдений, которые невозможно интерпретировать вне родительского ресурса. BackboneElement 0...*

component.id

Идентификатор Observation в ИЭМК

Int 1..1

component.code

Передает пространство имен в виде  "system": "urn:oid:1.2.643.2.69.1.1.1.127" (из справочника "Показатели наблюдения пациента") в виде кода показателя (code) и его наименования (display). CodebleConcept 1...1

component.value

Тип показателя.

Могут быть использованы следующие типы данных :

  1. valueCodeableConcept - кодирование по справочнику,
  2. valueQuantity - целочисленное значение,
  3. valueString - текстовая строка,
    1. ObservationBooleanValue - бинарное значение,
    2. ObservationDateTimeValue - передача времени,
    3. ObservationFloatValue - передача дробных значений.

Передавать единицы (при наличии) измерения только для типов:

  1. valueCodeableConcept - кодирование по справочнику,
  2. valueQuantity - количественный.

Подсказка

Именно в этом параметре передаются ВИМИС-Observation. Чтобы ознакомиться что это, можно перейти по странице: JSON. Свод

Actual Result 1...1

component.referenceRange

Референсный показатель, зависит от типа ReferenceRange/RangeType, передаются числовые значения из справочника OID:1.2.643.2.69.1.1.1.137 "Тип референтного значения":

  1. Нижняя граница (low)
  2. Верхняя граница (high)
  3. Текстовый диапазон (text)
Backbone Element 0..1
Пример ресурса Observation
{
  "resourceType": "Bundle",
  "entry": [
    {
      "resource": {
        "resourceType": "Observation",
        "id": "5",
        "status": "final",
        "category": {
          "coding": [
            {
              "system": "http://hl7.org/fhir/observation-category",
              "code": "vital-signs"
            }
          ]
        },
        "code": {
          "coding": [
            {
              "system": "urn:oid:1.2.643.2.69.1.1.1.127",
              "code": "1",
              "display": "Морфологический тип опухоли(код)"
            }
          ]
        },
        "subject": {
          "reference": "/Patient/cdb1e92f-3d54-4ee8-b915-619a3f08f855"
        },
        "encounter": {
          "reference": "/Encounter/11"
        },
        "effectiveDateTime": "2019-08-24T00:00:00+03:00",
        "valueQuantity": {
          "value": 2.0
        },
        "interpretation": {
          "coding": [
            {
              "system": "urn:oid:1.2.643.5.1.13.13.11.1381",
              "code": "A",
              "display": "Патологический (вне референсного диапазона)"
            }
          ]
        },
        "referenceRange": [
          {
            "text": "3"
          }
        ]
      }
    }
  ]
}

Получение Observation по идентификатору случая

Получение списка Observation происходит с помощью метода POST. В качестве адреса указывается URL формате:

[base]/Observation/_search?_format=json

Тело запроса может содержать следующие параметры:

Имя параметра

Тип данных

Описание параметра

Кратность

patients

valueString

Идентификаторы пациентов, по которым требуется выполнить поиск (перечисление делается через запятую ",")

1..*

encounter

valueString

Идентификатор СМО (idCase), в рамках которого требуется искать дочерние Оbservation.

1..1

count

valueString

Размер массива результатов. Если -1, то вывести все ресурсы.    

1..1

offset

valueString

Смещение выборки для пагинации запросов. Если count = -1, то можно не указывать.

0..1

date

valueString

Дата или период выборки

0..*

_sort:[valueType]

valueString

Признак сортировки результатов выборки.

ValueType может принимать значения:

  • asc – по возрастанию.
  • desc – по убыванию.

Может принимать значения:

  • id - для сортировки по параметру id;
  • date - для сортировки по параметру period.start.

0..1

Пример вызова
POST [base]/Observation/_search?_format=json {
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "patients",
            "valueString": "c4e9725a-fed1-4edd-9854-b811e8902a17"
        },
        {
            "name": "encounter",
            "valueString": "1684"
        },     
        {
            "name": "count",
            "valueString": "10"
        },
        {
            "name": "offset",
            "valueString": "0"
        },
        {
            "name": "date",
            "valueString": "ge2019-09-01"
        },
        {
            "name": "date",
            "valueString": "le2021-12-31"
        },
        {
            "name": "_sort:desc",
            "valueString": "date"
        }
    ]
}

Получение Observation по его идентификатору

Получение конкретного объекта Observation происходит с помощью метода GET. В качестве адреса указывается URL  формате:

[base]/Observation/{идентификатор}?_format=json
Пример вызова
GET [base]/Observation/594?_format=json 

Immunization

FHIR - ресурс Immunization (https://www.hl7.org/fhir/DSTU2/immunization.html) предназначен для передачи следующих данных, отображаемых на комплексный тип Immunize SOAP-протокола сервиса ИЭМК: 

Объект каждого типа передается в рамках отдельного FHIR - ресурса Immunization. То есть, если в ИЭМК в рамках Immunize была передана информация и о прививке (Vaccination) и о медотводе (MedicalExemption), то создадутся два FHIR - ресурса Immunization.

Требования к формированию FHIR - ресурса Immunization:

Immunization (Vaccination)

В рамках ImmunizationType=Vaccination- вакцинация.

Immunization Описание Тип Кратность
identifier Идентификатор мероприятия по иммунизации, а также типа иммунизации="Vaccination" Identifier 1..1
status

Статус иммунизации. Всегда передается статус "completed" из пространства имен 
https://www.hl7.org/fhir/DSTU2/valueset-medication-admin-status.html

code 1..1

date

Дата вакцинации

date

1..1

vaccineCode Передается из пространства имен в виде  "system": "urn:oid:1.2.643.5.1.13.13.11.1078" (из "Иммунобиологические препараты для специфической профилактики, диагностики и терапии") в виде кода препарата (code) и его наименования (display) CodebleConcept

1.1

vaccinationProtocol.
description
Вид вакцинации string

1...1

vaccinationProtocol.
authority
ИД ЛПУ, в котором проводилась прививка/проба Reference (Organization)

1..1

explanation.reason Передается из пространства имен в виде  "system": "urn:oid:1.2.643.2.69.1.1.1.130" (из справочника "Код инфекции") в виде кода инфекции, от которой защищает вакцина (code) и ее наименования (display) CodebleConcept 1...*
patient ИД карточки пациента в сервисе MPI, которому сделана прививка Reference (Patient) 1..1
identifier.value

Передается тип иммунизации="Vaccination"

string 1..1
wasNotGiven Флаг, указывающий на то, что иммунизация не проводилась. Всегда передается false для Vaccination, означает, что прививка была проведена  boolean

1..1

reported

Передается заглушка - true

boolean 1..1
vaccinationProtocol.
doseSequence
Передается заглушка - “1”. Означает номер введенной дозы, в последовательности серии вакцинаций positiveInt 1..1
vaccinationProtocol.
doseStatus
Передается “заглушка” в doseStatus.CodeableConcept.text, выводить “Не определен“ CodebleConcept 1..1
Пример ресурса Immnunization
{
  "resourceType": "Bundle",
  "entry": [
    {
      "resource": {
        "resourceType": "Immunization",
        "id": "817",
        "identifier": [
          {
            "system": "http://netrika.ru/iemk-identifier",
            "value": "817"
          },
          {
            "system": "ImmunizationType",
            "value": "Vaccination"
          }
        ],
        "status": "completed",
        "date": "2019-09-29",
        "vaccineCode": {
          "coding": [
            {
              "system": "urn:oid:1.2.643.5.1.13.13.11.1078",
              "code": "474",
              "display": "Иммуноглобулин человека антистафилококковый"
            }
          ]
        },
        "patient": {
          "reference": "Patient/4ab7887f-6c39-4127-919d-05b96497ef00"
        },
        "wasNotGiven": false,
        "reported": true,
        "performer": {
          "reference": "Practitioner/184"
        },
        "explanation": {
          "reason": [
            {
              "coding": [
                {
                  "system": "urn:oid:1.2.643.2.69.1.1.1.130",
                  "code": "27",
                  "display": "Холера"
                },
                {
                  "system": "urn:oid:1.2.643.2.69.1.1.1.130",
                  "code": "1",
                  "display": "Туберкулез"
                },
                {
                  "system": "urn:oid:1.2.643.2.69.1.1.1.130",
                  "code": "15",
                  "display": "ХИБ-инфекция"
                }
              ]
            }
          ]
        },
        "vaccinationProtocol": [
          {
            "doseSequence": 1,
            "description": "RV16/70",
            "authority": {
              "reference": "Organization/20dfadd0-c709-43b0-a130-5a11421b0217"
            },
            "doseStatus": {
              "text": "Не определен"
            }
          }
        ]
      }
    }
  ]
} 

Immunization (Reaction)

В рамках ImmunizationType=Reaction - Пробы

Immunization

Описание Тип Кратность
identifier Идентификатор проведенной пробы. Identifier 1..1
status

Статус иммунизации. Всегда передается статус "completed" из пространства имен https://www.hl7.org/fhir/DSTU2/valueset-medication-admin-status.html

code 1..1

date

Дата проведения пробы

date

1..1

vaccineCode Код иммунобиологического препарата. Передается из пространства имен в виде  "system": "urn:oid:1.2.643.2.69.1.1.1.131" (Справочник "Код пробы") в виде кода пробы (code) и ее наименования (display) CodebleConcept

1..1

vaccinationProtocol.authority Ссылка на организацию (МО), в которой проводилась проба Reference (Organization) 1..1
patient Ссылка на карточку в MPI - ИД карточки пациента, которому проведена проба Reference (Patient) 1..1
explanation.reason Передается из пространства имен в виде  "system": "urn:oid:1.2.643.2.69.1.1.1.130" (из "Код инфекции") в виде кода инфекции (code) и ее наименования (display) CodebleConcept 1...*
wasNotGiven Флаг, указывающий на то, что иммунизация не проводилась. Всегда передается false для Reaction, означает, что проба была проведена  boolean

1..1

reported

Передается заглушка - true

boolean 1..1
vaccinationProtocol.doseSequence Номер пробы, передается заглушка "1" positiveInt 1..1
doseStatus Указание на то, имеет ли проба влияние на выработку иммунитета. Передается заглушка "Не определен" CodebleConcept 1..1
 <Bundle
  xmlns="http://hl7.org/fhir">
  <entry>
    <resource>
      <Immunization>
        <id value="649" />
        <identifier>
          <system value="http://netrika.ru/iemk-identifier" />
          <value value="649" />
        </identifier>
        <identifier>
          <system value="ImmunizationType" />
          <value value="Reaction" />
        </identifier>
        <status value="completed" />
        <date value="2019-08-18" />
        <vaccineCode>
          <coding>
            <system value="urn:oid:1.2.643.2.69.1.1.1.131" />
            <code value="20" />
            <display value="Туляриновая" />
          </coding>
        </vaccineCode>
        <patient>
          <reference value="Patient/d7917c80-122c-46ef-bf74-4aa9009c7991" />
        </patient>
        <wasNotGiven value="false" />
        <reported value="true" />
        <explanation>
          <reason />
        </explanation>
        <vaccinationProtocol>
          <doseSequence value="1" />
          <authority>
            <reference value="Organization/20dfadd0-c709-43b0-a130-5a16301b0217" />
          </authority>
          <doseStatus>
            <text value="Не определен" />
          </doseStatus>
        </vaccinationProtocol>
      </Immunization>
    </resource>
  </entry>
</Bundle>

Immunization (Medical Exemption)

В рамках ImmunizationType=Medical Exemption - Медицинский отвод.

Immunization

Описание Тип Кратность
identifier Идентификатор записи по медицинскому отводу. Identifier 1...1
explanation.reasonNotGiven Передаются сведения о причине медицинского отвода, в виде  "system": "urn:oid:1.2.643.2.69.1.1.1.132" (из справочника "Причина отвода") в виде кода (code) и его значения (display) CodebleConcept 1...1
vaccinationProtocol.targetDisease Код заболевания по МКБ-10 "urn:oid:1.2.643.2.69.1.1.1.2" в виде кода (code) и его значения (display) positiveInt 0...1
status

Статус иммунизации. Всегда передается статус "stopped" из пространства имен 
https://www.hl7.org/fhir/DSTU2/valueset-medication-admin-status.html

code 1..1
extension.MedicalExemptionPeriod extension - расширение ресурса Immunization, передаваемое параметрами "MedicalExemptionInfo". Передает сведения о дате начала (start) и дате окончания(end) медицинского отвода. date

1...1 (dateStart)

0...1 (dateEnd)

extension.MedicalExemptionType

Передаются сведения о типе медицинского отвода, в виде  "system": "urn:oid:1.2.643.2.69.1.1.1.133" (из справочника "Тип отвода") в виде кода (code):

  1. Временный
  2. Постоянный
CodebleConcept 1...1
extension.MedicalExemptionInf

Передаются сведения о кодах инфекций, от которых осуществляется отвод (Справочник OID: 1.2.643.2.69.1.1.1.130), в виде кода (code) и инфекции, которую обозначает код (display)

CodebleConcept 1..*
patient Сcылка на карточку в MPI - ИД карточки пациента, которому дан медицинский отвод. Reference (Patient) 1..1
vaccineCode Передается заглушка "Отсутствует" text

1..1

wasNotGiven Флаг, указывающий на то, что иммунизация не проводилась. Всегда передается true для MedicalExemption, означает, что вакцинация не проводилась  boolean

1..1

reported

Передается заглушка - true

boolean 1..1
vaccinationProtocol.doseStatus Передается “заглушка” - “Не определен“ Reference (Organization) 1..1
vaccinationProtocol.doseSequence Передавать заглушку - “1” CodebleConcept 1..1
<Bundle
  xmlns="http://hl7.org/fhir">
  <entry>
    <resource>
      <Immunization>
        <id value="649" />
        <extension url="MedicalExemptionInfo">
          <extension url="MedicalExemptionPeriod">
            <valuePeriod>
              <start value="2019-09-02" />
            </valuePeriod>
          </extension>
          <extension url="MedicalExemptionType">
            <valueCodeableConcept>
              <coding>
                <system value="urn:oid:1.2.643.2.69.1.1.1.133" />
                <code value="1" />
              </coding>
            </valueCodeableConcept>
          </extension>
          <extension url="MedicalExemptionInf">
            <valueCodeableConcept>
              <coding>
                <system value="urn:oid:1.2.643.2.69.1.1.1.130" />
                <code value="27" />
                <display value="Холера" />
              </coding>
              <coding>
                <system value="urn:oid:1.2.643.2.69.1.1.1.130" />
                <code value="1" />
                <display value="Туберкулез" />
              </coding>
              <coding>
                <system value="urn:oid:1.2.643.2.69.1.1.1.130" />
                <code value="15" />
                <display value="ХИБ-инфекция" />
              </coding>
            </valueCodeableConcept>
          </extension>
        </extension>
        <identifier>
          <system value="http://netrika.ru/iemk-identifier" />
          <value value="649" />
        </identifier>
        <identifier>
          <system value="ImmunizationType" />
          <value value="MedicalExemption" />
        </identifier>
        <status value="stopped" />
        <vaccineCode>
          <text value="Отсутствует" />
        </vaccineCode>
        <patient>
          <reference value="Patient/7db493ed-0b97-4133-ad0e-4e3d8a06fc03" />
        </patient>
        <wasNotGiven value="true" />
        <reported value="true" />
        <explanation>
          <reasonNotGiven>
            <coding>
              <system value="urn:oid:1.2.643.2.69.1.1.1.132" />
              <code value="3" />
              <display value="Отказ от прививки/пробы" />
            </coding>
          </reasonNotGiven>
        </explanation>
        <vaccinationProtocol>
          <doseSequence value="1" />
          <doseStatus>
            <text value="Не определен" />
          </doseStatus>
        </vaccinationProtocol>
      </Immunization>
    </resource>
  </entry>
</Bundle>

Получить Fhir-ресурс Immunization можно с помощью следующих методов:

  1. Получение списка Immunization по пациенту(-ам)
  2. Получение ImmunizationPlan по его идентификатору

ImmunizationRecommendation

FHIR - ресурс ImmunizationRecommendation (https://www.hl7.org/fhir/DSTU2/immunizationrecommendation.html) предназначен для передачи данных о запланированных прививках/пробах, отображаемых на комплексный тип  ImmunizationPlan  SOAP-протокола сервиса ИЭМК, и является расширением ресурса Immunization: 

Требования к формированию FHIR - ресурса ImmunizationRecomendation:

ImmunizationRecomendation Описание Тип Кратность
identifier Идентификатор плана проведения иммунизации Identifier 1..1
extension, где url = "ImmunizationType"

Тип мероприятия иммунизации. Может принимать значение Vaccination (прививки) или Reaction (пробы).

Element 1..1
patient Ссылка на ИД карточки пациента в сервисе MPI, для которого передается план Reference (Patient) 1..1
recomendation.date Дата /время поступления записи.  dateTime 1..1
recomendation.vaccineCode Код инфекции, от которой защищает вакцина/для выявления которой проводится проба (Справочник OID:1.2.643.2.69.1.1.1.130). CodebleConcept 1..*
forecastStatus Готовность пациента к иммунизации, передается из пространства имен http://hl7.org/fhir/ValueSet/immunization-recommendation-status. Заглушка, всегда заполняется значением code=due - готов  CodebleConcept 1..1
dateCriterion Контейнер для передачи сведений о сроках проведения иммунизации CodebleConcept 1..1
dateCriterion.code Тип срока проведения иммунизации передается из пространства имен  https://www.hl7.org/fhir/DSTU2/valueset-immunization-recommendation-date-criterion.html.  Заглушка, всегда заполняется значением recommended  - рекомендованная дата вакцинации/пробы BackboneElement 1..1
dateCriterion.value Дата следующей явки на запланированную прививку/пробу.  dateTime 1..1
protocol.description Вид вакцинации.  string 1...1 если extension/valueString - Vaccination
0...1 если extension/valueString- Reaction
{
  "resourceType": "Bundle",
  "entry": [
    {
      "resource": {
        "resourceType": "ImmunizationRecommendation",
        "id": "649",
        "extension": [
          {
            "url": "ImmunizationType",
            "valueString": "Vaccination"
          }
        ],
        "patient": {
          "reference": "/Patient/5673c739-4b0e-4335-b388-953519c98e91"
        },
        "recommendation": [
          {
            "date": "16.03.2020 10:44:50",
            "vaccineCode": {
              "coding": [
                {
                  "system": "urn:oid:1.2.643.2.69.1.1.1.130",
                  "code": "27",
                  "display": "Холера"
                },
                {
                  "system": "urn:oid:1.2.643.2.69.1.1.1.130",
                  "code": "1",
                  "display": "Туберкулез"
                },
                {
                  "system": "urn:oid:1.2.643.2.69.1.1.1.130",
                  "code": "15",
                  "display": "ХИБ-инфекция"
                }
              ]
            },
            "forecastStatus": {
              "coding": [
                {
                  "system": "http://hl7.org/fhir/ValueSet/immunization-recommendation-status",
                  "code": "due"
                }
              ]
            },
            "dateCriterion": [
              {
                "code": {
                  "coding": [
                    {
                      "system": "http://hl7.org/fhir/immunization-recommendation-date-criterion",
                      "code": "recommended"
                    }
                  ]
                },
                "value": "2020-02-23T00:00:00+03:00"
              }
            ],
            "protocol": {
              "description": "RV86/4"
            }
          }
        ]
      }
    }
  ]
}

Получение Immunization по его идентификатору

Получение конкретного объекта Immunization происходит с помощью метода GET. При этом, имеется различие в GET - запросе, в зависимости от того, какой объект мы ищем в рамках вакцинации, пробы или медицинского отвода. В качестве адреса указывается URL  формате:

[base]/Immunization/{идентификатор}?identifier=ImmunizationType|Reaction
[base]/Immunization/{идентификатор}?identifier=ImmunizationType|Vaccination
[base]/Immunization/{идентификатор}?identifier=ImmunizationType|MedicalExemption
Пример вызова метода
GET [base]/Immunization/3?identifier=ImmunizationType|Reaction
GET [base]/Immunization/25?identifier=ImmunizationType|Vaccination
GET [base]/Immunization/87?identifier=ImmunizationType|MedicalExemption

Получение списка Immunization по пациенту(-ам)

Получение списка всех Immunization по пациенту происходит с помощью метода POST. В качестве адреса указывается URL формате:

[base]/Immunization/_search?_format=json

Тело запроса может содержать следующие параметры:

Имя параметра

Тип данных

Описание параметра

Кратность

patients

valueString

Идентификаторы пациентов, по которым требуется выполнить поиск (перечисление делается через запятую ",")

1..*

count

valueString

Размер массива результатов. Если -1, то вывести все ресурсы.    

1..1

offset

valueString

Смещение выборки для пагинации запросов. Если count = -1, то можно не указывать.

0..1

Пример вызова
POST [base]/Immunization/_search?_format=json
{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "patient",
            "valueString": "138BF80B-4C7F-4453-A402-67F527DE42C6"
        }
        {
            "name": "count",
            "valueString": "10"
        },
        {
            "name": "offset",
            "valueString": "0"
        }
    ]
} 

Если необходимо найти все случаи Immuniztion по пациенту в рамках определенного типа, например только Прививки,  необходимо в теле запроса добавить параметр "identifier":

{
	"name": "identifier",
	"valueString": "ImmunizationType|Vaccination"
}

В зависимости от того, по какому типу Immunization осуществляется поиск, необходимо использовать:

  • ImmunizationType|Vaccination - прививки;
  • ImmunizationType|Reaction - пробы;
  • ImmunizationType|MedicalExemption - медицинские отводы.

Получение списка ImmunizationPlan по заданным параметрам

Получение списка всех ImmunizationPlan по заданным параметрам происходит с помощью метода POST. В качестве адреса указывается URL формате:

[base]/ImmunizationRecommendation/_search?_format=json

В качестве параметров могут быть указаны следующие:

Имя параметра

Тип данных

Описание параметра

Кратность

patients

valueString

Идентификаторы пациентов, по которым требуется выполнить поиск (перечисление делается через запятую ",")

1..*

identifier 

valueString

 Идентификатор мероприятия иммунизации.

1..1

count

valueString

Размер массива результатов. Если -1, то вывести все ресурсы.    

1..1

offset

valueString

Смещение выборки для пагинации запросов. Если count = -1, то можно не указывать.

0..1

date

valueString

Дата или период выборки

0..*

_sort:[valueType]

valueString

Признак сортировки результатов выборки.

ValueType может принимать значения:

  • asc – по возрастанию.
  • desc – по убыванию.

Может принимать значения:

  • identifier - для сортировки по параметру id;
  • date - для сортировки по параметру period.start.

0..1

Пример вызова
POST [base]/ImmunizationRecommendation/_search?_format=json
{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "patient",
            "valueString": "138BF80B-4C7F-4453-A402-67F247DE42C6"
        },
                {
            "name": "identifier",
            "valueString": "123"
        },
        {
            "name": "count",
            "valueString": "10"
        },
        {
            "name": "offset",
            "valueString": "0"
        },
		{
			"name": "_sort:asc",
			"valueString": "identifier"
		},
		{
			"name": "date",
			"valueString": "ge15-03-2020"
		},
		{
			"name": "date",
			"valueString": "le17-03-2020"
		}	
    ]
}

Получение ImmunizationPlan по его идентификатору

Получение конкретного объекта ImmunizationPlan происходит с помощью метода GET:

[base]\ImmunizationRecommendation\{id}
Пример вызова метода
GET [base]\ImmunizationRecommendation\12

AllergyIntolerance

FHIR - ресурс AllergyIntolerance (http://hl7.org/fhir/allergyintolerance.html) предназначен для передачи информации об аллергиях пациента и индивидуальной лекарственной непереносимости, отображаемых на комплексный тип AllergyBase SOAP-протокола сервиса ИЭМК, содержащий 2 подтипа:

  • AllergyDrug - для передачи данных об индивидуальной непереносимости лекарственных средств;
  • AllergyNonDrug - для передачи данных об индивидуальной непереносимости не лекарственных средств.

Примечание

FHIR - ресурс AllergyIntolerance передает сведения в ИЭМК только об AllergyDrug.


AllergyIntolerance

Описание Тип Кратность
identifier Идентификатор записи об аллергии. Identifier 1...1
extension, где url содержит "Encounter" Ссылка на СМО. Reference (Encounter) 1...1
recordedDate Дата выявления. dateTime 1...1
patient ИД карточки пациента в сервисе MPI, у которого выявлена лекарственная аллергия. Reference (Patient) 1...1

substance

Передаются сведения о лекарственных средствах, на которые у пациента аллергическая реакция из  "system": "urn:oid:1.2.643.5.1.13.2.1.1.179" (из справочника "Классификатор международных непатентованных наименований лекарственных средств") в виде кода (code). CodebleConcept 1...1
category Категория вещества. Всегда передается тип "other". code 1...1
reaction.manifestation Передаются сведения о клинических проявлениях реакций на указанный лекарственный препарат из  "system": "urn:oid:1.2.643.5.1.13.13.11.1063" (из справочника "Основные клинические проявления патологических реакций для сбора аллергоанамнеза") в виде кода (code) CodebleConcept 1...1
{
  "resourceType": "Bundle",
  "entry": [
      {
      "resource": {
        "resourceType": "AllergyIntolerance",
        "id": "3",
        "extension": [
          {
            "url": "/Encounter/215"
          }
        ],
        "recordedDate": "08.10.2019",
        "patient": {
          "reference": "/Patient/167506fd-685d-46ef-b8f1-85f762958276"
        },
        "substance": {
          "coding": [
            {
              "system": "urn:oid:1.2.643.5.1.13.2.1.1.179",
              "code": "386"
            }
          ]
        },
        "category": "other",
        "reaction": [
          {
            "manifestation": [
              {
                "coding": [
                  {
                    "system": "urn:oid:1.2.643.5.1.13.13.11.1063",
                    "code": "1"
                  }
                ]
              }
            ]
          }
        ]
      }
    }
  ]
}

Получение общего количества AllergyIntollerance по пациенту

Получение списка всех AllergyIntollerance по пациенту происходит с помощью метода POST. В качестве адреса указывается URL формате:

[base]/AllergyIntolerance/_search?_format=json

Тело запроса должно содержать

Имя параметра

Тип данных

Описание параметра

Кратность

patients

valueString

Идентификаторы пациентов, по которым требуется выполнить поиск (перечисление делается через запятую ",")

1..*

Пример вызова метода
POST [base]/AllergyIntolerance/_search?_format=json
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "patients",
      "valueString": "f9757b9d-ade4-4349-b334-f043bb12bd83,23d21091-af33-44a9-ae17-6e9f53d4b0fd"
    }
  ]
}

MedicationAdministration

MedicationAdministration и Medication строятся из одного объекта ИЭМК, и поэтому, идентификатор записи MedicationAdministration и идентификатор Medication идентичны.

FHIR - ресурс MedicationAdministration (https://www.hl7.org/fhir/DSTU2/medicationadministration.html) предназначен для передачи информации о назначенных пациенту препаратах, отображаемых на комплексный тип AppointedMedication SOAP-протокола сервиса ИЭМК:

MedicationAdministration

Описание

Тип

Кратность

id Идентификатор записи о назначенных пациенту препаратах Identifier 1...1
status

Статус назначения: 

  • on-hold - назначено (false),
  • completed - применено (true).
code 1...1
patient Ссылка на ресурс Patient, с которым связан этот ресурс. Reference (Patient) 1...1
encounter Ссылка на ресурс Encounter, с которым связан этот ресурс. Reference (Encounter) 1...1
prescription

Ссылка на ресурс MedicationOrder (рецепт) ([Seria]-[Number]

Если отсутствует один из параметров, то отображается частично: «111-» или «-111»
Если отсутствуют оба параметра, то отсутствует весь блок 

Reference (MedicationOrder) 0...1
effectiveTimeDateTime Дата выдачи рецепта /назначения на препарат (IssueDate) dateTime 1...1

medicationReference


Ссылка на ресурс Medication, содержащий сведения о наименовании назначенного препарата, с которым связан этот ресурс Reference (Medication) 1...1
{
	"resourceType": "Bundle",
	"entry": [
		{
			"resource": {
				"resourceType": "MedicationAdministration",
				"id": "2101",
				"status": "completed",
				"patient": {
					"reference": "Patient/4962f68a-7cf5-44d3-bde0-c309fa5037ce"
				},
				"encounter": {
					"reference": "Encounter/16340"
				},
                "prescription": {
                      "reference": "MedicationOrder/111-2222" 
                },    
                "effectiveTimeDateTime": "2020-03-03T11:25:15.57+03:00",
				"medicationReference": {
					"reference": "Medication/2101"
				}
			}
		}
	]
}

Получение сведений о назначении препаратов по его идентификатору

Получение сведений о назначении препаратов пациенту на основе идентификатора назначения, происходит с помощью метода GET. В качестве адреса указывается URL формате:

[base]/MedicationAdministration/{Идентификатор}

Тело запроса должно содержать параметр "patients" - идентификаторы пациентов, по которым требуется выполнить поиск (перечисление делается через запятую ",").

Пример вызова метода
GET [base]/MedicationAdministration/1

Получение сведений о назначении препаратов по идентификатору пациента или СМО

Получение списка всех назначений препаратов MedicationAdministration по идентификатору пациенту происходит с помощью метода POST. В качестве адреса указывается URL формате:

[base]/MedicationAdministration/_search?_format=json

Тело запроса может содержать параметры:

Имя параметра

Тип данных

Описание параметра

Кратность

patients

valueString

Идентификаторы пациентов, по которым требуется выполнить поиск (перечисление делается через запятую ",")

1..*

encounter 

valueString

Идентификатор СМО (idCase), в рамках которого требуется искать дочерние MedicationAdministration.

1..1

count

valueString

Размер массива результатов. Если -1, то вывести все ресурсы.    

1..1

offset

valueString

Смещение выборки для пагинации запросов. Если count = -1, то можно не указывать.

0..1

date

valueString

Дата или период выборки (выборка должна осуществляться по полю MedicineIssueTypeDate (Дата выдачи рецепта /назначения на препарат) таблицы PrescribedMedication).

0..*

_sort:[valueType]

valueString

Признак сортировки результатов выборки.

ValueType может принимать значения:

  • asc – по возрастанию.
  • desc – по убыванию.

Может принимать значения:

  • id - для сортировки по параметру id;
  • date - для сортировки по параметру period.start.

0..1

Пример вызова метода

Пример вызова метода
POST [base]/MedicationAdministration/_search?_format=json
{
  "resourceType": "Parameters",
  "parameter": [{
      "name": "patients",
      "valueString": "b4cfa5fc-7332-475b-9f6c-ff7125b1244b" 
    },
    {
      "name": "count",
      "valueString": "10"
    },
	{
	  "name": "encounter",
	  "valueString": "236234040"
	},
    {
      "name": "_offset",
      "valueString": "0"
    },
    {
      "name": "_sort:asc",
      "valueString": "date"
    },
    {
       "name": "date",
       "valueString": "ge2021-02-17"
     },
     {
        "name": "date",
        "valueString": "le2022-12-31"
     }
   ]
}

Medication

MedicationAdministration и Medication строятся из одного объекта ИЭМК, и поэтому, идентификатор записи MedicationAdministration и идентификатор Medication идентичны.

FHIR - ресурс Medication (https://www.hl7.org/fhir/DSTU2/medication.html) предназначен для передачи информации о наименованиях назначенных пациенту препаратов, отображаемых на комплексный тип AppointedMedication SOAP-протокола сервиса ИЭМК:

Medication

Описание Тип Кратность
id Идентификатор записи о назначенных пациенту препаратах, идентичен идентификатору в MedicationAdministration. Identifier 1...1
code

Код лекарственного средства (Справочник OID: 1.2.643.5.1.13.2.1.1.179 или Справочник OID: 1.2.643.5.1.13.13.11.1367, в зависимости от региональных установок.)

Для уточнения, какой справочник используется в вашем регионе, обратитесь в ваш МИАЦ.

CodebleConcept 1...1
meta.tag, где value = urn:oid:1.2.643.5.1.13.2.1.1.56 Код группы препаратов в зависимости от активного вещества (Справочник OID:1.2.643.5.1.13.2.1.1.56 "Анатомо-терапевтическо-химическая классификация"). CodebleValue 0...1
{
	"resourceType": "Bundle",
	"entry": [
		{
			"resource": {
				"resourceType": "Medication",
				"id": "2101",
				"meta": {
					"tag": [
						{
							"system": "urn:oid:1.2.643.5.1.13.2.1.1.56",
							"code": "L02BG",
							"display": "Ферментов ингибиторы"
						}
					]
				},
				"code": {
					"coding": [
						{
							"system": "1.2.643.5.1.13.13.11.1367",
							"code": "220"
						}
					],
					"text": "Анастрозол"
				}
			}
		}
	]
}

Получение сведений о назначенном препарате по его идентификатору/идентификатору назначения

Получение сведений о назначенном пациенту препарате на основе идентификатора назначения, происходит с помощью метода GET. В качестве адреса указывается URL формате:

[base]/Medication/{Идентификатор}


Пример вызова метода
GET [base]/Medication/1

Наверх