Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel3

Required parameters are marked with "*"

Якщо інформації по відповідному параметру немає, потрібно зазначити: “APIparagraph not found”.

Purpose*

This method must be used to cancel of existing activity from patient's Care plan.

...

Specification*

Page Properties

Link

https://ehealthmedicaleventsapimedicaleventsmisapi.docs.apiary.io/#reference/care-plan/cancel-care-plan-activity/cancel-care-plan-activity

Resource

/api/patients/{{patient_id}}/care_plans/{{care_plan_id}}/activities{{id}}/actions/cancel

Scope

care_plan:write

Components

Care plan

Microservices

API paragraph not found

Protocol type

REST

Request type

PATCH

Sync/Async

Async

Public/Private/Internal

Public

...

This method must be used to cancel of existing activity from patient's Care plan. Method receives signed message (pkcs7) that consists of signed content, digital signature and signer public key. All signature fields will be validated (including signer certificate authority)

Important

  1. Signed content of activity must be equal to activity stored in DB. See Get Care plan activity by ID

  2. $.detail.status_reason must be changed in signed content

Please see Care plan status model and Dummy Cancel Care plan activity for more details

It can be processed in both sync and async methods depends on Server decision.

Key points

  1. Status can be changed by employee who has an Approval granted by the patient on write Care plan resource.

  2. Cancel should be signed with DS. So, all the activity data should be submitted.

  3. Activities status has changed in async way. The result of the job should be a link on the Care plan activity details.

Input parameters

Input parameter

Values

Type

Description

Example

patient_id

String

MPI identifier of the patient

7c3da506-804d-4550-8993-bf17f9ee0402

care_plan_id

String

Care Plan identifier

7c3da506-804d-4550-8993-bf17f9ee0403

id

String

activity identifier

7c3da506-804d-4550-8993-bf17f9ee0404

...

Request to process the request using a token in the headers

Headers*

Наприклад:

  • Content-Type:application/json

  • Authorization:Bearer mF_9.B5f-4.1JqM

  • api-key:aFBLVTZ6Z2dON1V

...

  • if activity kind = medication_request:

    • Check there is no medication request requests in status NEW based on the activity

      • in case of error - return 409 (Unable to cancel activity with new Medication Request requests).

    • Check there is no medication requests in status ACTIVE based on the activity

      • in case of error - return 409 (Unable to cancel activity with active Medication requests).

  • if activity kind = service_request:

    • Check availability of service requests with status = active.If such service requests exist, then needs to check availability of service requests with program_processing_status:

      1. if program_processing_status is undefined (NULL), then return error 409 (Unable to cancel activity with Service requests in status <status value> and program processing status is NULL or not completed)

      2. if program_processing_status is defined, then needs to check that program_processing_status = complete. Otherwise, return error 409 (Unable to cancel activity with Service requests in status <status value> and program processing status is NULL or not completed)

Validate content

Signed content must match with activity in DB in order to be changed

  1. Render activity from DB

  2. Exclude $.detail.status_reason from signed content

  3. Compare rendered activity and signed content

    1. In case both object doesn't match - return 422 ('Signed content doesn't match with previously created activity')

Processing*

Service logic

  1. Save signed content to media storage

  2. Update activity status (update also updated_at, updated_by)

  3. Set detail.status_reason

Response structure*

See on Apiary

...