|
-4 / 0 / 0
Регистрация: 06.04.2018
Сообщений: 64
|
|
RestfullApi на python14.08.2023, 09:47. Показов 662. Ответов 0
Есть такая api, можно ли такого вида API реализовывать на python, у меня в целом есть программа, которая должна общаться с web сервисом. Может посоветуете книги, где реализовано что-то подобное или видео курсы... То есть наверно получается мне нужно api которое общается не бэкенд с фронтенд, а получается мой бэкенд с другим сервисом.
1. Описание решения 1.1.Описание информационного взаимодействия Сервис предназначен для идентификации гражданина в сфере ОМС через федеральный сервис ИП ООГУЗ. Информационный обмен данными с сервисом представлен на Рис. 1. Рис. 1 – Информационное взаимодействие Взаимодействие с внешними информационными системами или иными подсистемами общей информационной системы здравоохранения должно быть построено на архитектуре стандарта FHIR HL7 версии 4.0, размещенный по адресу https://www.hl7.org/fhir/index.html 1.2.Описание авторизации Авторизация в сервисе «Идентификация пациента» должна осуществляться по токену системы. Токен должен быть передан в заголовке запроса в формате: Authorization: N3[пробел][токен системы] Токен системы выдается клиенту администратором сервиса. 1.3.Описание работы со справочной информацией Все необходимые справочники, размещены в сервисе терминологии. Состав справочников, используемых при взаимодействии с внешними информационными системами:1.2.643.2.69.1.1.1.64 – Справочник медицинских организаций 1.2.643.2.69.1.1.1.6 – Справочник «Тип документа» 1.2.643.5.1.13.13.99.2.206 – ФРМО. Регионы Российской Федерации 1.2.643.5.1.13.13.99.2.183 – Реестр страховых медицинских организаций (ФОМС). 2. Описание ресурсов используемых при взаимодействии 2.1 Описание ресурса Bundle Ресурс Bundle используется для передачи набора ресурсов, связанных друг с другом контекстом. В сервисе с помощью ресурса Bundle передается ответ от федерального сервиса содержащий положительный результат проверки. В таблице 1 представлено описание ресурса Bundle. Таблица 1 – Описание параметров ресурса Bundle № п.п. Параметр Тип Кратность Описание 1 resourceType string 1..1 Тип ресурса Принимает значение: “Bundle” 2. identifier identifier 1..1 Идентификатор пакета 2.1 identifier.value string 1..1 Федеральный идентификатор пакета 3. type string 1..1 Тип пакета Принимает значение: searchset 4. entry BackboneElement 1..1 Набор ресурсов в пакете 4.1 entry.resource BackboneElement 1..2 Параметры ресурса 2.2 Описание ресурса Parameters Ресурс Parameters используется для отправки POST запросов на поиск информации о персоне или получении результатов. В составе ресурса Parameters ожидаются входные параметры из внешних информационных систем на поиск соответствующей информации. В таблице 2 представлено описание ресурса Parameters. Таблица 2 – Описание параметров ресурса Parameters № п.п. Параметр Тип Кратность Описание 1 resourceType string 1..1 Тип ресурса Принимает значение: “Parameters” 2 parameter parameter 1..1 Набор параметров для поиска информации3. name string 1..1 Принимает значения для поиска информации по пациенту: - lpuId – код МО из справочника НСИ 1.2.643.2.69.1.1.1.64 - patientSurname – Фамилия пациента - patientName – Имя пациента - patientPatronymic – Отчество пациента - birthDate– Дата рождения - docType– Тип документа, удостоверяющего личность из справочника НСИ 1.2.643.2.69.1.1.1.6 - docNumber - Серия и номер документа, удостоверяющего личность. Формат передачи: [серия_документа]:[номер документа] Принимает значения для получения результата поиска: - lpuId– код МО из справочника НСИ 1.2.643.2.69.1.1.1.64 - RequestMessageId – идентификатор сообщения 3.1 valueString string 1..1 Значение параметра, указанного в поле name 2.3 Описание ресурса Patient Ресурс Patient используется для передачи информации о пациенте идентифицированном в системе ОМС. В таблице 3 представлено описание ресурса Patient. Таблица 3 – Описание параметров ресурса Patient № п.п. Параметр Тип Кратнос ть Описание 1 resourceType string 1..1 Тип ресурса Принимает значение: “Patient” 2 identifier identifi er 1..1 Сведения об идентификаторах пациента: - полис ОМС 2.1 identifier.system string 0..1 Принимает значение: urn:oid:1.2.643.2.69.1.1.1.6.228 2.2 identifier.value string 1..1 Полис ОМС 2.3 identifier.period period 0..1 Период действия полиса ОМС2.3. 1 identifier.period.start dateTi me 1..1 Начало действия полиса ОМС 2.3. 2 identifier.period.end dateTi me 0..1 Окончание действия полиса ОМС 2.4 identifier.assigner assigne r 0..1 Сведения об организации, выдавшей документ 2.4. 1 identifier.assigner.referen ce referen ce 0..1 Ссылка на сведения о страховой медицинской организации 2.4. 2 identifier.assigner.display string 0..1 Код субъекта РФ по ОКАТО 3 identifier.extension extensi on 0..1 Для передачи описания типа документа 3.1 identifier.extension.url url 1..1 Всегда принимает значение http://hl7.org/fhir/StructureDefinition/re ndered-value 3.2 identifier.extension.value String string 1..1 Используется для передачи наименования типа полиса ОМС 2.4 Описание ресурса Organization Ресурс Organization предназначен для передачи информации о страховом представителе СМО. В таблице 4 представлено описание параметров ресурса Organization. Таблица 4 – Описание параметров ресурса Organization № п.п. Параметр Тип Кратност ь Описание 1 resourceType string 1..1 Тип ресурса Принимает значение: “Organization” 2 id string 1..1 Идентификатор ресурса в системе 3 identifier identifier 1..1 Сведения об идентификаторах организации 3.1 identifier.system string 1..1 Принимает значение: urn:oid:1.2.643.5.1.13.13.99.2.183 3.2 identifier.value string 1..1 Код СМО в реестре страховых МО из справочника 1.2.643.5.1.13.13.99.2.183 4 name string 0..1 Наименование страховой МО 5 telecom ContactP oint 0..1 Сведения о телефоне «горячей линии» контакт-центра ТФОМС telecom.value dateTime 0..1 Телефон «горячей линии» контактцентра ТФОМС 2.4 contact assigner 0..1 Сведения о страховом представителе СМО 2.4.1 contact.telecom reference 0..1 Параметр для передачи контактной информации о страховом представителе2.4.2 contact.telecom.value string 0..1 Контактный телефон страхового представителя СМО 3. Описание методов сервиса 3.1. Описание метода $sendIdentityPatient 3.1.1. Описание входных параметров метод $sendIdentityPatient Структура ресурса Parameters представлена на Рис. 2. Рис. 2 – Структура ресурса Parameters при запросе методом $sendIdentityPatient В таблице 5 представлены параметры, передаваемые в ресурсе Parameters, при запросе методом $sendIdentityPatient. Таблица 5 – Описание вложенных параметров ресурса Parameters № п.п. Параметр Тип Кратность Описание 1 lpuId string 1..1 Код МО из справочника НСИ 12.643.2.69.1.1.1.64 2 patientSurname string 1..1 Фамилия пациента 3 patientName string 1..1 Имя пациента 3 patientPatronymic string 0..1 Отчество пациента 4 birthDate dateTime 1..1 Дата рождения 5 docType string 1..1 Тип документа, удостоверяющего личность из справочника НСИ 1.2.643.2.69.1.1.1.66 docNumber string 1..1 Серия и номер документа, удостоверяющего личность. Формат передачи: [серия_документа]:[номер документа] 3.1.2. Описание выходных параметров метод $sendIdentityPatient Выходными параметрами является идентификатор сообщения для последующих запросов или соответствующая ошибка. 3.1.3. Пример запроса методом $sendIdentityPatient POST http://base//api/IdentityPatient/fhir/$sendIdentityPatient Authorization: N3[пробел][GUID системы] Version: 1.0.0 Content-type: application/json { "resourceType": "Parameters", "parameter": [{ "name": "lpuId", "valueString": "9ace100c-c8b7-496e-8e44-fea75c4695a2" //Идентификатор ЛПУ. OID справочника: 1.2.643.2.69.1.1.1.64 }, { "name": "patientSurname", "valueString": "Петров" //Фамилия пациента }, { "name": "patientName", "valueString": "Митрофан" //Имя пациента }, { "name": "patientPatronymic", "valueString": "Валентинович" //Отчество пациента }, { "name": "birthDate", "valueString": "1982-05-05" //Дата рождения пациента }, { "name": "docType", "valueString": "urn:oid:1.2.643.2.69.1.1.1.6.14" //Тип документа, удостверяющего личность, согласно справочнику 1.2.643.2.69.1.1.1.6 }, { "name": "docNumber", "valueString": "1111:567890" // Серия и номер документа, удостоверяющего личность } ] } 3.1.4. Описание ответа метод $sendIdentityPatient Успешный ответ { "resourceType": "Parameters", "parameter": [ { "name": "RequestMessageId", "valueString": "faaa979d-f251-4e2d-8c65-deab7eb45ebb"} ] } С ошибкой { "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "details": { "coding": [ { "code": "1", "display": "Ошибка проверки значения в справочнике: Значение параметра lpuId 9ace100c-c8b7-496e-8e44-fea75c4695a2 не соответствует справочник" } ] } } ] } 3.2. Описание метода $getIdentityPatient 3.2.1. Описание входных параметров метод $getIdentityPatient В таблице 6 представлены параметры, передаваемые в ресурсе Parameters, при запросе методом $getIdentityPatient. Таблица 6 – Описание вложенных параметров ресурса Parameters № п.п. Параметр Тип Кратность Описание 1 lpuId string 1..1 идентификатор ЛПУ из справочника НСИ 12.643.2.69.1.1.1.64 2 RequestMessageId string 1..1 Идентификатор сообщения 3.2.2. Описание выходных параметров метод $getIdentityPatient В случае положительного ответа от федерального сервиса в результате будет возвращен Bundle, структура которого представлена на рис. 3.Рис. 3 – Структура Bundle результата идентификации Набор параметров ресурса Bundle представлен в п.2.1настоящего документа. В Bundle передается набор ресурсов Patient и Organization, согласно спецификации п.2.3 и п. 2.4 настоящего документа (рис. 4). Рис. 4 – Состав ресурсов Bundle результата идентификации В таблице 7 представлено описание параметров, передаваемых в результате идентификации пациента в сфере ОМС. Таблица 7 – Описание ресурсов Bundle результата идентификации № п.п. Наименование ресурса Описание 1 Patient Ресурс пациента, содержащий данные из ответа от федерального сервиса. Передается информация о: - ФИО пациента - Полисе пациента - Регионе страхования 2 Organization Ресурс для передачи информации о страховой медицинской организации из ответа от федерального сервиса. Передается информация о: - страховой медицинской организации - страховом представителе страховой медицинской организации3.2.3. Пример запроса методом $getIdentityPatient POST http://base//api/IdentityPatient/fhir/$getidentitypatient Authorization: N3[пробел][GUID системы] Version: 1.0.0 Content-type: application/json { "resourceType": "Parameters", "parameter": [ { "name": "lpuId", "valueString": "e18f03f6-05f4-43db-afee-ddfcc850c17b" }, { "name": "RequestMessageId", "valueString": "c42f30e1-4372-4e4d-b90e-c38cd0d6427a" } ] } 3.2.4. Описание ответа метод $getIdentityPatient Успешный ответ { "resourceType": "Bundle", "identifier": { "value": "c42f30e1-4372-4e4d-b90e-c38cd0d6427a" }, "type": "searchset", "entry": [ { "resource": { "resourceType": "Patient", "identifier": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/rendered-value", "valueString": "Полис ОМС единого образца" } ], "system": "urn:oid:1.2.643.2.69.1.1.1.6.228", "value": "4759272364966762", "period": { "start": "2019-02-10" }, "assigner": { "reference": "Organization/34007", "display": "18000" } } ] } }, { "resource": { "resourceType": "Organization", "id": "34007","identifier": [ { "system": "urn:oid:1.2.643.5.1.13.13.99.2.183" , "value": "34007" } ], "name": "ФИЛИАЛ ООО "РГС-МЕДИЦИНА" В ВОЛГОГРАДСКОЙ ОБЛАСТИ", "telecom": [ { "value": "52108252835" } ] } } ] } С ошибкой { "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "invalid", "details": { "coding": [ { "code": "2", "display": "Ошибка федерального сервиса" } ] }, "diagnostics": "NO_REQUEST_FOR_MESSAGE_ID" } ] } 4. Описание кодов ошибок Код ошибки Описание 1 Внутренняя ошибка сервиса 2 Ошибка федерального сервиса 3 Свойство [Наименование элемента] не заполнено 4 Пациент не идентифицирован 5 Отсутствуют данные по запросу 6 По данному запросу ответ еще не получен 7 Свойство [Наименование элемента] не должно содержать значения в будущем 8 Дата [Наименование элемента] указана в неверном формате 9 [Адрес параметра] [Значение параметра] не найдено в сервисе терминологии [OID справочника] 10 Документ [Наименование элемента] указан в неверном формате 11 Неверно указан Единый номер полиса (ЕНП)
0
|
|
| 14.08.2023, 09:47 | |
|
Ответы с готовыми решениями:
0
Software Developer Python/Data or ready to improve Python (Санкт-Петербург) Python - момент истины. Python - как оружие возмездие против системы Запуск скрипта написанного на python на windows, где не установлен python |
| 14.08.2023, 09:47 | |
|
Помогаю со студенческими работами здесь
1
Cx_freeze python error in main script как исправить- Python Maching pursuit. Согласованный поиск на Python. Требуется сам алгоритм, написанный на Python Senior Python developer (Python, Django, JavaScript, Cloud) in Munich, Germany,visa sponsorship Python cv2 сконвертировать Python многомерный массив в картинку Как из Python скрипта выполнить другой python скрипт? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|