...
Purpose
...
Key points
...
Specification
...
Authorization
...
Validate legal entity
...
Validate request
...
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 | | Посилання на Apiary або Swagger | Resource | | Посилання на ресурс, наприклад: /api/persons/create | Scope | | 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 declaration_number
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