Purpose
The service is designed to upload updates to the program medication registry. The process uses the jabba service. Upon execution of the request, a job is created, on the basis of which tasks are created. Each task is one request to create an entity from the registry.
...
Page Properties |
---|
Link | GraphQL method | Посилання на Apiary або Swagger | Resource | GraphQL 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 | Async | Метод є синхронним чи асинхронним? | Public/Private/Internal | Internal | Потрібно зазначити тип методу за ступенем доступності |
|
Expand |
---|
title | Specification for Update program medication registry |
---|
|
Code Block |
---|
| "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
} |
|
...
Validate input according to schema
Validate existing and update entities of program medications registry:
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 |
Return job identifier with result.
...
View file |
---|
name | update_program_medication_registry_v02_partial.csv |
---|
|
View file |
---|
name | update_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 |
|