Purpose
This WS allows to get declaration by its globally unique ID in Admin panel.
Key points
This is a graphQl method used in Administration panel only.
Only authenticated and authorized NHS employee with appropriate scope can get declaration by its globally unique ID.
Specification
Page Properties |
---|
|
Link | API paragraph not found | Посилання на Apiary або Swagger | Resource | API paragraph not found | Посилання на ресурс, наприклад: /api/persons/create | Scope | declaration:read | Scope для доступу | Components | | Зазначається перелік бізнес компонентів, які використовують цей метод, наприклад: ePrescription | Microservices | | Перелік мікросервісів, які використовує метод API, наприклад: Auth, ABAC | Protocol type | | Тип протоколу, який використовується запитом, наприклад: SOAP | REST | Request type | | Тип запиту API, наприклад: GET, POST, PATCH… | Sync/Async | | Метод є синхронним чи асинхронним? | Public/Private/Internal | Internal | Потрібно зазначити тип методу за ступенем доступності |
|
Expand |
---|
|
Code Block |
---|
| "Reads a single `Declaration` using its globally unique ID."
declaration(id: ID!): Declaration |
Code Block |
---|
| """
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
Get data from ops DB:
declarations by id
Render a response according to specification.
Authorization
Verify the validity of access token
Verify that token is not expired
Check user scopes in order to perform this action (scope = 'declaration:read')
Request data validation
Validate legal entity
Extract client_id from token.
Check client scopes in order to perform this action (scope = 'declaration:read')
Check client type (type = NHS)
...
Check declaration_id
submitted
Service logic
...
Get data from ops DB:
declarations by id
...
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