Purpose
This method is designed to cancel an existing composition with status FINAL.
In text:
MCTD - medical conclusion of temporary disability (MVTN)
MCN - medical conclusion of newborn (MVN)
MC - medical conclusion (MV)
QES - qualified electronic signature (KEP)
Specification
Link | https://app.swaggerhub.com/apis/ehealthua/compositions/2.32.2#/main/cancelComposition |
Resource | /patients/composition/{compositionId}/cancel |
Scope | composition:cancel |
Components | |
Using Microservices | API paragraph not found |
Protocol type | REST |
Request type | PATCH |
Sync/Async | Async |
Public/Private/Internal | Public |
Logic
Input parameters
Input parameter | Values | Type | Description | Example |
---|---|---|---|---|
compositionId | String ($uuid) (path) | Composition object ID | 89edcfb2-3479-4565-885b-d0ce7f9d081e | |
Request body | String($uuid) | Request body with signed composition. | { |
Request structure
Authorize
Check user scopes in order to perform this action (scope = 'composition:cancel')
return 401 (Unauthorized) in case of invalid scope(s)
Headers
Content-Type: application/json
Authorization: Bearer {token}
api-key: {secret}
Validation data request
At the beginning of the task, an incoming request is received, which is content signed with a qualified electronic signature of the doctor.
Rechecking is similar progress to what has already been implemented in the SIGN_COMPOSITION task (list item 3).
Searching for a Composition object in FINAL status for which cancellation is being attempted
if the conclusion is not found — the task completes its execution with code (1000)
if found, the procedure continues execution
Checking the content of the request (CancelContentFilter)
if in the body of the request the identifier of the MCTD is different from the identifier in the API request - the task completes its execution with the code INVALID_IDENTIFIER_IN_PAYLOAD(1026)
if the status of the MC for which the request is made is not FINAL, the task completes its execution with the code CANT_CANCEL_NONFINAL_COMPOSITION (1003)
for the MCTD (except for the MC for an undefined preperson) additional checks is performed:
If the ERLN status of the request is not available (the ERLN request has not been sent) - the task ends its execution with the code CANCELLATION_NOT_ALLOWED_ERLN_CALL_PENDING (1130)
If the ERLN status of the response is not available (the ERLN request was sent, but the answer has not yet received) - the task ends its execution with the code CANCELLATION_NOT_ALLOWED_ERLN_CALL_IN_PROGRESS(1131)
in other cases the procedure continues execution.
If no cancellation explanation text is provided, the task terminates with CANCELLATION_TEXT_NOT_PROVIDED.
If the element of the cancellation object coding system is not provided - the task ends its execution with the code CANCELLATION_NO_CODING (1028)
If several (>1) elements of the cancellation object coding system are provided - the task ends its execution with the code CANCELLATION_MULTIPLE_CODINGS (1029)
If a cancellation code is provided that does not match the allowed cancellation reasons, namely INCORRECT_PATIENT or TYPO, the task terminates with CANCELLATION_INVALID_CODING (1004)
The verification of the owner of the QES to compliance with the author of the MC is carried out, completely similar to SIGN_COMPOSITION task (list item 5).
For MCN, the status of integration with DRACS is being checked.
If the request from DRACS to check the MC has already received (getComposition), then the task ends its execution with the code CANCELLATION_FOR_RUNNING_TASK (1006)
in other cases, the procedure continues its execution
The allowed delay is checked — the delay between the opening time of the MC (composition.date) and the current date. If the delay is more than allowed - the task ends its execution with the code CANCELLATION_FOR_OUTDATED_COMPOSITION (1005)
Processing
After all validations:
For conclusions that have the relatesTo.code=REPLACES attribute set, a verification of the MC record to which the relatesTo link is reffered
if the MC referred to by the current MC is not found — the task completes its execution with the code CANT_CANCEL_NOT_FOUND (1137)
if the MC referred to by the current MC does not have the AMENDED status - the task completes its execution with the code CANT_CANCEL_NONAMENDED_COMPOSITION (1136). In an ideal situation, this code should never occur
if the checks are passed, the MC to which the link is set changes its status from AMENDED to FINAL.
The body of the cancellation request signed by QES is stored in the Ceph object storage.
The MС status is set to ENTERED_IN_ERROR.
If the authorization method is specified, an SMS is sent.
The task of canceling the MC in the ERLN is planned.
Response structure
Example:
HTTP status codes
HTTP status code | Message | What caused the error |
---|---|---|
200 | In case of successful cancellation of the Composition | Successful cancellation |
400 | Invalid request format | Error during formation or incorrect use of parameters in the request |
401 | The user role does not allow the operation to be performed | The role or scopes assigned to the user who generated the request do not allow such an operation to be done. |
404 | The object of the Composition was not found | The object of the Composition was not found or incorrect ID |
500 | Subordinate service error | Subordinate service error |
1004 | Invalid cancellation coding | In the case where the specified cancellation reason is not allowed with dictionary values. |