Versions Compared

Key

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

...

Specification

Page Properties

Link

jabba service GraphQL method

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

Resource

jabba serviceGraphQL method

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

Scope

medication_registry:write

Scope для доступу

Components

ePrescription

Зазначається перелік бізнес компонентів, які використовують цей метод, наприклад: 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 foundAsync

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

Public/Private/Internal

Internal

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

Expand
title Specification for Update program medication registry
Code Block
languagegraphql
  "Updates a single `MedicationRegistry`."
  updateMedicationRegistry(
    input: UpdateMedicationRegistryInput!
  ): UpdateMedicationRegistryPayload

"""
Input for `updateMedicationRegistry` mutation.

User must have a scope **medication_registry:write**
"""
input UpdateMedicationRegistryInput {
  "Type of register originating medication registry data. The value should be present in the `REGISTER_TYPE` dictionary."
  registerType: String!
  "Update medication registry reason description."
  reasonDescription: String!
  "Input file in csv format with medication register."
  csvData: Upload!    
}

"""
Return type for `updateMedicationRegistry` mutation.
"""
type UpdateMedicationRegistryPayload {
  "Created `MedicationRegistryJob`."
  medicationRegistryJob: MedicationRegistryJob
}

"""
An object for MedicationRegistryJob.
"""
type MedicationRegistryJob implements Node {
  "The ID of an object"
  id: ID!
  "Primary key identifier from the database"
  databaseId: UUID!
  "Job name."
  name: String
  "Medication registry Job status."
  status: JobStatus!
  "Job execution strategy."
  strategy: JobStrategy!
  "Date and time when the job starts."
  startedAt: DateTime!
  "Date and time when the job ends."
  endedAt: DateTime
  "Tasks within this job."
  tasks(
    "A condition to be used in determining which values should be returned by the collection."
    filter: TaskFilter
    "The method to use when ordering collection items."
    orderBy: TaskOrderBy
    "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
  ): MedicationRegistryTaskConnection!
  "Type of register originating medication registry data. The value should be present in the `REGISTER_TYPE` dictionary."
  registerType: String!
  "Medication registry job reason description."
  reasonDescription: String!
}

"""
A connection to a list of `MedicationRegistryTask` values.
"""
type MedicationRegistryTaskConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!
  "A list of nodes."
  nodes: [MedicationRegistryTask]
  "A list of edges."
  edges: [MedicationRegistryTaskEdge]
}

"""
Reads and enables pagination through a set of `MedicationRegistryTask`.
"""
type MedicationRegistryTaskEdge {
  "The item at the end of the edge."
  node: MedicationRegistryTask!
  "A cursor for use in pagination."
  cursor: String!
}

"""
A child of a `MedicationRegistryJob`, contains the result of task execution.
"""
type MedicationRegistryTask implements Node {
  "The ID of an object"
  id: ID!
  "Primary key identifier from the database"
  databaseId: UUID!
  "Task name."
  name: String
  "Task status, is set automatically."
  status: TaskStatus!
  "Task meta data."
  meta: MedicationRegistryTaskMeta
  "Date and time when task was executed."
  endedAt: DateTime
  "Task error."
  error: TaskError
  "Technical information when task was inserted into the DB."
  insertedAt: DateTime!
  "Technical information when task was updated in the DB."
  updatedAt: DateTime!
}

"""
Metadata of a `MedicationRegistryTask`.
"""
type MedicationRegistryTaskMeta {
  "Primary key identifier of an entity from the database."
  databaseId: UUID
  "Line number of csv file from input."
  csvDataLine: Int  
}

...

  1. Validate input according to schema

  2. Validate existing and update entities of program medications registry:

    1. Extract program medications by program_medications.id from file and update the record with the rest of the values:

Attribute

Source and Logic

Type and Constraints

O/M

id

program_medications.id

uuid

M

medication_request_allowed

program_medications.medication_request_allowed

bool

M

care_plan_activity_allowed

program_medications.care_plan_activity_allowed

bool

M

inserted_by

user_id, from token

uuid

M

updated_by

user_id, from token

uuid

M

inserted_at

now(), auto

timestamp

M

updated_at

now(), auto

timestamp

M

reimbursement.reimbursement_amount

program_medication.reimbursement.reimbursement_amount

float8 in jsonb

M

reimbursement.percentage_discount

program_medication.reimbursement.percentage_discount

float8 in jsonb

M

wholesale_price

program_medications.wholesale_price

float8

O

consumer_price

program_medications.consumer_price

float8

O

reimbursement_daily_dosage

program_medications.reimbursement_daily_dosage

float8

O

estimated_payment_amount

program_medications.estimated_payment_amount

float8

O

start_date

program_medications.start_date

date

O

end_date

program_medications.end_date

date

O

registry_number

program_medications.registry_number

varchar(255)

O

max_daily_dosage

program_medication.max_daily_dosage

float8

O

  1. Return job identifier with result.

...

View file
nameupdate_program_medication_registry_v02_partial.csv
View file
nameupdate_program_medication_registry_v02v03.csv

HTTP status codes

Page Properties

HTTP status code

Message

What caused the error

 401

 Invalid access token

 

 403

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

 

404

Validation error

422

Validation error