Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Purpose

This method allows to search for a Person (MPI) without disclosing personal data.

Specification

Page Properties
idAPI_Specification

Link

https://ehealthmisapi1.docs.apiary.io/#reference/public.-medical-service-provider-integration-layer/persons/search-for-a-person

Посилання на Apiary або Swagger

Resource

/api/persons

Посилання на ресурс, наприклад: /api/persons/create

Scope

person:read

Scope для доступу

Components

Patient registry

Зазначається перелік бізнес компонентів, які використовують цей метод, наприклад: ePrescription

Microservices

mpi/api

il/api (rpc)

fe/admin-web

Перелік мікросервісів, які використовує метод API, наприклад: Auth, ABAC

Protocol type

REST

Тип протоколу, який використовується запитом, наприклад: SOAP | REST

Request type

GET

Тип запиту API, наприклад: GET, POST, PATCH…

Sync/Async

Sync

Метод є синхронним чи асинхронним?

Public/Private/Internal

Public

Потрібно зазначити тип методу за ступенем доступності

Logic

Method returns only requested parameters, birth place and second name in addition for manual identification on MSP side.

Input parameters

See on Apiary

Filters

See on Apiary

Dictionaries

  • GENDER

  • PHONE_TYPE

Request structure

See on Apiary

Authorize

Request to process the request using a token in the headers.

Headers

Content-Type:application/json

Authorization:Bearer {{access_token}}

Request data validation

When flag `USE_DEDUPLICATION_MODEL` is turned ON, use this logic.

Validate request

    1. Validate mandatory query params

      1. first_name

      2. last_name

      3. birth_date

    2. Validate optional query params

      1. second_name

      2. tax_id

      3. birth_certificate

      4. phone_number (phone_number or auth_number)

Processing

Search existing MPI entity

Search only active persons - MPI.persons.is_active=true.

...

Return empty array if no data found

Return only requested params (if equal tax_id, birth_certificate, birth_date, phone_number), last_name(if match by metaphone ) id, first_name, second_name, gender, birth_place and merged_persons if data found.

Response structure

Example:

Expand
titleResponse example. Code: 200
Code Block
{
  "meta": {
    "code": 200,
    "url": "https://example.com/resource",
    "type": "object",
    "request_id": "6617aeec-15e2-4d6f-b9bd-53559c358f97#17810"
  },
  "data": [
    {
      "id": "b075f148-7f93-4fc2-b2ec-2d81b19a9b7b",
      "first_name": "Петро",
      "last_name": "Іванов",
      "second_name": "Миколайович",
      "birth_date": "1991-08-19",
      "gender": "FEMALE",
      "tax_id": "3126509816",
      "phones": [
        {
          "type": "MOBILE",
          "number": "+380503410870"
        }
      ],
      "birth_settlement": "Вінниця",
      "birth_country": "Україна",
      "merged_persons": [
        {
          "id": "57e30ea3-16f1-4f8e-adcd-1a05e99e2d22",
          "inserted_at": "2019-05-08T15:34:00Z",
          "merge_person_id": "bdadc2a7-7283-4f24-bc99-8d8d9808af80",
          "person_id": "b075f148-7f93-4fc2-b2ec-2d81b19a9b7b",
          "updated_at": "2019-05-08T15:34:00Z"
        }
      ]
    }
  ]
}
Expand
titleResponse example. Code: 403
Code Block
{
  "meta": {
    "code": 403,
    "url": "https://example.com/resource",
    "type": "object",
    "request_id": "6617aeec-15e2-4d6f-b9bd-53559c358f97#17810"
  },
  "error": {
    "type": "too_many_results",
    "message": "This API method returns only exact match results, please retry with more specific search result"
  }
}

HTTP status codes

Page Properties
idAPI_HTTP status codes

HTTP status code

Message

What caused the error

 200

 Response

 

 403

This API method returns only exact match results, please retry with more specific search result

 Too many results

...