Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
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

...

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

https://e-health-ua.atlassian.net/wiki/spaces/EH/pages/17629119370/RC.+Specimen+dictionaries+and+configurable+parameters#Dictionaries

Request structure

See on Apiary

Authorization

  • 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: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")

...

  1. Create job and return it’s id.

  2. Update specimen record with following:

    1. status = unavailable

    2. status_reason = $.status_reason

    3. updated_at = current datetime

    4. updated_by = user_id from token

Response structure

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