Table of Contents

...

This WS allows to mark Specimen as unavailable.

Specification

Link

Apiary

Resource

 /api/patients/patient_id/specimens/id/actions/

Scope

 specimen:invalidate

Components

 Specimen

Microservices

 

Protocol type

 REST

Request type

 PATCH

Sync/Async

 Async

Public/Private/Internal

 Public

Key points

  1. Only authenticated and authorized employee with appropriate scope can update a Specimen.

  2. DS isn't used here.

  3. The specimen is invalidated asynchronously

...

https://e-health-ua.atlassian.net/wiki/spaces/EH/pages/17629118915/RC.#%D0%9F%D0%BE%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F-%D0%97%D1%80%D0%B0%D0%B7%D0%BA%D0%B0-%D0%BD%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D0%B8%D0%BC

 

Input parameters

Input parameter

Values

Type

Description

Example

patient_id

 

String

Unique patient identifier

7075e0e2-6b57-47fd-aff7-324806efa7e5

id

 

String

Unique specimen identifier

aff00bf6-68bf-4b49-b66d-f031d48922b3

 

Dictionaries

specimen_invalidate_reasons

Request structure

See on Apiary

...

  • Verify the validity of access token

    • in case of error - return 401 (“Invalid access token”) in case of validation fails

  • Verify that token is not expired

    • in case of error - return 401 (“Invalid access token”)

  • Check user scopes in order to perform this action (scope = 'specimen:invalidate')

    • return 403 (“Your scope does not allow to access this resource. Missing allowances: specimen:write”invalidate”) in case of invalid scope(s)

  • If BLOCK_UNVERIFIED_PARTY_USERS is true, then check party's data match following condition: verification_status != NOT_VERIFIED or (verification_status = NOT_VERIFIED and updated_at > current_date - UNVERIFIED_PARTY_PERIOD_DAYS_ALLOWED):

    • in case not match - return 403 ("Access denied. Party is not verified")

  • If BLOCK_DECEASED_PARTY_USERS is true, check that party is not deceased (party_verification record does not equal to: dracs_death_verification_status = VERIFIED and dracs_death_verification_reason = MANUAL_CONFIRMED):

    • in case of error - return 403 ("Access denied. Party is deceased")

...

See on Apiary

 

HTTP status codes

HTTP status code

Message

What caused the error

200

 

 

401

Invalid access token

 

403

  • Access denied. Party is deceased

  • Your scope does not allow to access this resource. Missing allowances: specimen:invalidate

 

404

not found

409

Specimen is not in available status

 

422

value is not allowed in enum