Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 18
Next »
Purpose
This WS allows to update existing medication program participant
Key points
This is a graphQl method used in Administration panel only.
Only authenticated and authorized NHS employee with an appropriate scope can update a Program medication.
Specification
Logic
Update params submitted on input in the program medication entity. Also, set:
updated_by = current user (from token)
updated_at = current date and time.
Preconditions
API paragraph not found
Global and configurable parameters
API paragraph not found
API paragraph not found
Filters
API paragraph not found
Dictionaries
API paragraph not found
GraphQl Specification
Click here to expand...
"Updates a single `ProgramMedication` using its globally unique ID and a patch."
updateProgramMedication(
input: UpdateProgramMedicationInput!
): UpdateProgramMedicationPayload
"""
Input for `updateProgramMedication` mutation.
User must have a scope **program_medication:write**
"""
input UpdateProgramMedicationInput {
"The ID of an object."
id: ID!
"Whether `ProgramMedication` is active or not?"
isActive: Boolean
"Whether requesting medications allowed for the `ProgramMedication` or not?"
medicationRequestAllowed: Boolean
"Reimbursement information."
reimbursement: UpdateReimbursementInput
"Start date of action for this entry"
startDate: Date
"End date for this entry"
endDate: Date
"General registry identifier"
registryNumber: String
"Reimbursement daily dosage"
reimbursementDailyDosage: Float
"Consumer price"
consumerPrice: Float
"Wholesale price"
wholesalePrice: Float
"Estimated payment amount"
estimatedPaymentAmount: Float
}
"""
Input for `Reimbursement` of `updateProgramMedication` mutation.
"""
input UpdateReimbursementInput {
"Amount to reimburse for medication package by `MedicalProgram`."
reimbursementAmount: Float
"Percentage to reimburse for medication package by `MedicalProgram`."
percentageDiscount: Float
}
"""
Return type for `updateProgramMedication` mutation.
"""
type UpdateProgramMedicationPayload {
"Updated `ProgramMedication`."
programMedication: ProgramMedication
}
"""
Program Medication linkes medication and medical program.
In order to obtain details user must have a scope **program_medication:read**
"""
type ProgramMedication implements Node {
"The ID of an object."
id: ID!
"Primary key identifier from the database."
databaseId: UUID!
"MedicalProgram."
medicalProgram: MedicalProgram!
"Medication"
medication: Medication!
"Reimbursement information."
reimbursement: Reimbursement!
"Factory gate price for package of medications"
wholesalePrice: Float
"Consumer price for package of medications"
consumerPrice: Float
"Reimbuersement amount for recommended daily dosage of medication"
reimbursementDailyDosage: Float
"The estimatied amount which patient should pay for package of medications after reimbursement"
estimatedPaymentAmount: Float
"Start date of action for this entry"
startDate: Date
"End date for this entry"
endDate: Date
"General registry identifier"
registryNumber: String
"Whether `ProgramMedication` is active or not?"
isActive: Boolean!
"Whether requesting medications allowed for the `ProgramMedication` or not?"
medicationRequestAllowed: Boolean!
"Date and time when record was inserted"
insertedAt: DateTime!
"Date and time when record was updated"
updatedAt: DateTime!
}
"""
Reimbursement information for current program medication.
"""
type Reimbursement {
"Type of reimbursement"
type: ReimbursementType!
"Amount to reimburse for medication package by `MedicalProgram`."
reimbursementAmount: Float
"Percentage to reimburse for medication package by `MedicalProgram`."
percentageDiscount: Float
}
Authorize
Verify the validity of access token
Verify that token is not expired
Check user scopes in order to perform this action (scope = 'program_medication:write')
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 = 'program_medication:write')
Check legal entity type (type = NHS)
Validate medication
Get medication by program_medications.medication_id.
Check medication is_active = true
in case of error - return 409 ('Medication is not active').
Validate request
Check program medication id exists in DB
in case of error - return 404 ('not_found').
If medicationRequestAllowed submitted, than check program medication is_active = true
in case of error - return 409 ('To allow medication request firstly enable program medication').
If is_active submitted as false to deactivate program medication, than check medication_request_allowed = false
in case of error - return 409 ('To deactivate medication brand within the program firstly disable medical_request_allowed').
if reimbursement structure submitted, than check program medication is_active = true
in case of error - return 409 ('To update reimbursement firstly enable program medication').
Processing
API paragraph not found
Response structure
API paragraph not found
Post-processing processes
API paragraph not found
HTTP status codes
Backward compatibility
API paragraph not found