ЕСОЗ - публічна документація

Search Medical programs (GraphQl)_modified_UA

Ціль

Даний метод WS дозволяє здійснити пошук медичної програми.

Основні положення

  1. Це метод на graphQl, який використовується тільки в панелі адміністрування НСЗУ.

  2. Тільки автентифіковані та авторизовані співробітники НСЗУ з відповідним скоупом можуть здійснити пошук медичної програми.

Специфікація

 

"Reads and enables pagination through a set of `MedicalProgram`." medicalPrograms( "A condition to be used in determining which values should be returned by the collection." filter: MedicalProgramFilter "The method to use when ordering collection items." orderBy: MedicalProgramOrderBy "Read all values in the set after (below) this cursor." after: String "Read all values in the set before (above) this cursor." before: String "Only read the first _n_ values of the set." first: Int "Only read the last _n_ values of the set." last: Int ): MedicalProgramConnection! """ Fields to filter medical programs in the system. """ input MedicalProgramFilter { "Checks for equality with the object’s `databaseId` field." databaseId: UUID "Checks for matching with the object’s `name` field." name: String "Checks for equality with the object’s `isActive` field." isActive: Boolean "Checks for equality with the object’s `type` field." type: String "Checks for equality with the object’s `fundingSource` field." fundingSource: String } """ A connection to a list of `MedicalProgram` items. """ type MedicalProgramConnection { "Information to aid in pagination." pageInfo: PageInfo! "A list of nodes." nodes: [MedicalProgram] "A list of edges." edges: [MedicalProgramEdge] } """ MedicalProgram contains details about medical program for reimbursement and services. In order to obtain details user must have a scope **medical_program:read** """ type MedicalProgram implements Node { "The ID of an object." id: ID! "Primary key identifier from the database." databaseId: UUID! "The name of the `MedicalProgram`." name: String! "Type of the `MedicalProgram`." type: String! "Whether the `MediaclProgram` is active or not?" isActive: Boolean! "Date and time when record was inserted." insertedAt: DateTime! "Date and time when record was updated." updatedAt: DateTime! "Whether it is possible to create `Medication Request`" medicationRequestAllowed: Boolean! "Medication request allowed status description" medicationRequestAllowedText: String "Whether it is possible to create `Medication Dispense`" medicationDispenseAllowed: Boolean! "Medication dispense allowed status description" medicationDispenseAllowedText: String "Medical program settings" medicalProgramSettings: MedicalProgramSettings "Medical program settings description" medicalProgramSettingsText: String "Funding source of the `MedicalProgram`." fundingSource: String! } """ Medical program settings. Described at https://edenlab.atlassian.net/wiki/spaces/EH/pages/3132620836/Medical+program+settings """ type MedicalProgramSettings { "Skip MNN in treatment period requirement flag" skipMnnInTreatmentPeriod: Boolean "Care plan requirement flag" carePlanRequired: Boolean! "Skip employee validation requirement flag" skipEmployeeValidation: Boolean "Allowed employee types from `EMPLOYEE_TYPE` dictionary to create medication request" employeeTypesToCreateMedicationRequest: [String] "Speciality types allowed. From `SPECIALITY_TYPE` dictionary" specialityTypesAllowed: [String] "conditions ICD10_AM allowed. From `eHealth/ICD10_AM/condition_code` dictionary" conditionsIcd10AmAllowed: [String] "Conditions ICPC2 allowed. From `eHealth/ICPC2/condition_code` dictionary" conditionsIcpc2Allowed: [String] "Maximum length in days of treatment period for `Medication Request` created with the program" medicationRequestMaxPeriodDay: Int "Providing conditions allowed. From `PROVIDING_CONDITION` dictionary" providingConditionsAllowed: [String] "Skip declaration verification for employee on create `Medication Request`" skipMedicationRequestEmployeeDeclarationVerify: Boolean "Skip declaration verification for legal entity on create `Medication Request`" skipMedicationRequestLegalEntityDeclarationVerify: Boolean "Allows multi dispense for `Medication Request`" multiMedicationDispenseAllowed: Boolean "Allows to process `Medication Dispense` without digital sign" skipMedicationDispenseSign: Boolean "Disables patient notification on operations with `Medication Request`" medicationRequestNotificationDisabled: Boolean "Specifies medication dispense period in days" medicationDispensePeriodDay: Int "Skip Contract and Medical Program Provision verification in medication dispense flow" skipContractProvisionVerify: Boolean "Allows to change medical program on create `Medication Dispense`" medicalProgramChangeOnDispenseAllowed: Boolean "Patient category requirement flag" patientCategoryRequired: Boolean! "Patient categories allowed. From `eHealth/clinical_impression_patient_categories` dictionary" patientCategoriesAllowed: [String] }

Авторизація

  •  

  • Перевірити валідність токену доступу

    • в разі помилки - повернути 401 (“Invalid access token”) в разі неуспішної валідації

  • Перевірити, що токен дійсний

    • в разі помилки - повернути 401 (“Invalid access token”)

  • Перевірити скоупи користувача на можливість виконання даної дії (scope = 'medical_program:read')

    • повернути 403 (“Your scope does not allow to access this resource. Missing allowances: program_medication:read”) в разі невалідних скоупів

Перевірити юридичну особу

  • Отримати client_id з токену.

  • Перевірити скоупи користувача на можливість виконання даної дії (scope = 'medical_program:read')

    • в разі помилки - повернути 403 (“Your scope does not allow to access this resource. Missing allowances: medical_program:read”)

Пошукові параметри

  • databaseId. UUID, ідентифікатор медичної програми

  • name. Текстовий, назва програми

  • isActive. Логічний, статус програми

  • type. Текстовий, тип програми. Дозволені значення: MEDICATION, SERVICE

Сервісна логіка

  1. Отримати перелік всіх програм відфільтрованих по параметрам.

  2. Відобразити перелік медичних програм з даними у відповідності до схеми.

ЕСОЗ - публічна документація