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

Create medical program

Purpose

This WS allows to create a new medical program

Key points

  1. This is a graphQl method used in the Administration panel only.

  2. Only authenticated and authorized NHS employee with an appropriate scope can create a medical program.

  3. A medical program with the type MEDICATION or SERVICE can be created.

Specification

Link

See GraphQl Specification

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

Resource

See GraphQl Specification

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

Scope

medical_program:write

Scope для доступу

Components

Medical Programs

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

Microservices

API paragraph not found

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

Protocol type

API paragraph not found

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

Request type

API paragraph not found

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

Sync/Async

API paragraph not found

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

Public/Private/Internal

Internal

 

Logic

  1. Create medical program entity in medical_programs table (prm).

  2. Set fields submitted on input: name and type.

  3. Set following fields by default:

    1. id = generate UUID value

    2. is_active = true

    3. medication_request_allowed = true

    4. medication_dispense_allowed = true

    5. medical_program_settings = null

    6. inserted_at, updated_at = current date and time

    7. inserted_by, updated_by = current user (from token).

Input parameters

API paragraph not found

Filters

API paragraph not found

Dictionaries

  • FUNDING_SOURCE

  • MR_BLANK_TYPES

  • PROVIDING_CONDITION

  • eHealth/clinical_impression_patient_categories

  • LICENSE_TYPE

  • MEDICAL_PROGRAM_TYPE

GraphQl Specification

"Creates a single `MedicalProgram`." createMedicalProgram( input: CreateMedicalProgramInput! ): CreateMedicalProgramPayload

 

""" Input for `createMedicalProgram` mutation. User must have a scope **medical_program:write** """ input CreateMedicalProgramInput { "The name of the `MedicalProgram`." name: String! "Type of the `MedicalProgram`. The value should be present in the `MEDICAL_PROGRAM_TYPE` dictionary." type: String! }

 

""" Return type for `createMedicalProgram` mutation. """ type CreateMedicalProgramPayload { "Created `MedicalProgram`." medicalProgram: MedicalProgram } """ 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 } """ 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 }

Authorize

  • Verify the validity of access token

    • in case of error - return 401 (“Invalid access token”) in case of validation fails.

  • Verify that token is not expired

    • in case of error - return 401 (“Invalid access token”).

  • Check user scopes in order to perform this action (scope = 'medical_program:write')

    • return 403 (“Your scope does not allow to access this resource. Missing allowances: medical_program:write”) in case of invalid scope(s).

Headers

API paragraph not found

Request data validation

Validate legal entity

  • Extract client_id from token.

  • Check client scopes in order to perform this action (scope = 'medical_program:write')

    • in case of error - return 403 (“Your scope does not allow to access this resource. Missing allowances: medical_program:write”).

  • Check type = NHS

    • in case of error - return 403 ('You don’t have permission to access this resource').

Validate request

Validate input according to schema only

Processing

API paragraph not found

Response structure

API paragraph not found

Post-processing processes

API paragraph not found

HTTP status codes

HTTP status code

Message

What caused the error

HTTP status code

Message

What caused the error

 401

 Invalid access token

 

 403

  • Your scope does not allow to access this resource. Missing allowances: medical_program:write.

  • You don’t have permission to access this resource.

 

Backward compatibility

API paragraph not found





 

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