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 4
Next »
Purpose
This WS allows to approve pending declaration from Admin panel.
Key points
This is a graphQl method used in Administration panel only.
Only authenticated and authorized NHS employee with appropriate scope can approve pending declaration.
Only pending declaration (in status ‘pending_verification’) can be approved.
Specification
approveDeclaration
"Approves a single `Declaration` using its globally unique ID."
approveDeclaration(input: ApproveDeclarationInput!): ApproveDeclarationPayload
"""
Input for `approveDeclaration` mutation.
"""
input ApproveDeclarationInput {
"Reads a single `Declaration` using its globally unique ID."
id: ID!
}
"""
Return type for `approveDeclaration` mutation.
"""
type ApproveDeclarationPayload {
"Payload for `declaration`."
declaration: Declaration!
}
"""
Declaration combines data about Patient, Employee, LegalEntity and Division.
In order to obtain details user must have a scope `declaration:read`.
"""
type Declaration implements Node {
"The ID of an object"
id: ID!
"Primary key identifier from the database"
databaseId: UUID!
"unique human redable number of declaration"
declarationNumber: String!
"The date when declaration takes effect"
startDate: Date!
"The date wher declaration ends."
endDate: Date!
"The date when declaration is signed by doctor."
signedAt: DateTime!
"Status ah yhe declaration, is set automatically."
status: DeclarationStatus!
"type of declaration, as for now it's only one type =`family_doctor`"
scope: String
"The reason of declining the declaration, is set automatically on declining declaration."
reason: String
"Free text for declining declaration, is filled by the person who declined declaration."
reasonDescription: String
"Legal entity information, where declaration was signed."
legalEntity: LegalEntity!
"Patient information."
person: Person!
"Division in legal entity where medical services are provided."
division: Division!
"Doctor information, who signed declaration."
employee: Employee!
"Documents which were attahced to declarations."
declarationAttachedDocuments: [DeclarationAttachedDocument]
}
"""
List of declaration statuses.
"""
enum DeclarationStatus {
"Status `Active` for declaration."
ACTIVE
"Status `CLOSED` for declaration."
CLOSED
"Status `PENDING_VERIFICATION` for declaration."
PENDING_VERIFICATION
"Status `REJECTED` for declaration."
REJECTED
"Status `TERMINATED` for declaration."
TERMINATED
}
"""
Structure of documents attached to the declaration.
"""
type DeclarationAttachedDocument {
"The type of document."
type: String!
"Link for uploading scan copies of the documnet, is generated by e-Health."
url: String!
}
Logic
Update data:
declarations table by declaration_id
set status = ‘active’
set updated_at, updated_by
Authorize
Verify the validity of access token
Verify that token is not expired
Check user scopes in order to perform this action (scope = 'declaration:approve')
Request data validation
Validate legal entity
Extract client_id from token.
Check client scopes in order to perform this action (scope = 'declaration:approve')
Check client type (type = NHS)
Validate request
Processing
API paraagraph not found
Response structure
API paraagraph not found
Post-processing processes
API paraagraph not found
HTTP status codes
API paraagraph not found