Versions Compared

Key

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

...

  1. Verify the validity of access token

    1. Return (401, 'Invalid access token') in case of validation fails

  2. Verify that token is not expired

    1. in case of error - return (401, 'Invalid access token')

  3. Check user scopes in order to perform this action (scope = 'care_plan:write')

    1. Return (403, 'Your scope does not allow to access this resource. Missing allowances: care_plan:write') in case of invalid scope(s)

Headers

Наприклад:

Content-Type:application/json
Authorization:Bearer {{access_token}}
API-key:{{mis_client_secret}}

...

Validate value in the field $.detail.kind, required

  1. Check value in enum: medication_request, service_request, device_requestthe dictionaryeHealth/activity_kinds

    1. Return 422 ('value is not allowed in enum')

...

  1. If $detail.kind=medication_request:

    1. Check $.detail.product_reference field is submitted and has Reference type

      • in case it isn’t submitted - return 422 ('can't be blank')

      • in case of wrong type - return 422 ('type mismatch')

    2. Check the value is valid reference on medication resource.

      1. Return 422 ('Cannot refer to <resource> for kind = medication_request')

    3. Check medication:

      1. is active

        1. in case of error - return 422 ('Medication should be active')

      2. type is INNM_DOSAGE

        1. in case of error - return 422 ('Medication does not exist')

  2. If $.detail.kind=service_request:

    1. Check $.detail.product_reference field is submitted and has Reference type

      • in case it isn’t submitted - return 422 ('can't be blank')

      • in case of wrong type - return 422 ('type mismatch')

    2. Check that value is a reference on service or service_group

      1. Return 422 ('Cannot refer to <resource> for kind = service_request')

    3. Check service or service_group is active

      1. Return 422 ('<Service/Service group> should be active')

  3. If $.detail.kind=device_request:

    • Validate product_reference:

      • Check there value is valid Reference on device_definition resource

        • Return 422 ('Cannot refer to <resource> for kind = device_request')

      • Check the device_definition is active

        • Return 422 ('Device definition is not active')

      • Check at least one classification type of the device definition is allowed by dictionary configuration “prescribable_device_codes”

        • in case of error - return 422 ('Value is not allowed by {{dictionary_configuration_name}} dictionary configuration”')

    • Validate product_codeable_concept:

      • Check that value matches with active values in device_definition_classification_type dictionary.

        • Return 422 ('value is not allowed in enum')

    • Check that product_codeable_concept.coding[] array contains only 1 element

      • in case of error - return 422 ('expected a maximum of 1 items but got <actual number of elements>')

    • Check that product_codeable_concept.coding[].code is an active value from the dictionary specified in product_codeable_concept.coding[].system

      • in case of error - return 422 ('value is not allowed in enum')

    • Check that value is allowed by dictionary configuration “prescribable_device_codes”

      • in case of error - return 422 ('Value is not allowed by {{dictionary_configuration_name}} dictionary configuration”')

    Check there is no another activities (status=scheduled, in_progress) in the Care plan with the same product_reference or product_codeable_concept, and program = $.detail.program

    • Return 422 (“Another activity with status ‘scheduled' or ‘in_progress' already exists in the current Care plan within current program value“)

...

  1. Check that value is an array with references of condition, observation, diagnostic report, clinical impression types.

    1. in case of error - return 422 ('value is not allowed in enum')

  2. Check that each reference:

    1. is valid ME

    2. belongs to the patient ($.subject)

      1. in case of error - return 422 ('<medical event type> with such ID is not found')

  3. If $.detail.reason_reference=clinical_impression:

    1. Check that clinical impression is valid based on clinical_impression.code.coding.code and CLINICAL_IMPRESSION_PATIENT_CATEGORIES_<CODE.VALUE>_VALIDITY_PERIOD chart parameter: difference between now() and $.clinical_impression.effective_date_time OR $.clinical_impression.effective_period.end date must be less than a value in chart parameter (pointed in config for a corresponding care plan category) for clinical impression code

      1. in case of error - return 422 ("Clinical impression with patient category exceeds validity period")

...

Page Properties

HTTP status code

Message

What caused the error

200

  • Medication is not included in the program

  • Service is not included in the program

  • Service group is not included in the program

  • Author’s specialty doesn't allow to create activity with medical program from request

  • Care plan diagnosis is not allowed for the medical program

  • Care plan’s terms of service are not allowed for the medical program

  • Clinical impression with patient category should be present in request for this medical program

 Programs validation error

401

Invalid access token

  • validation fails

  • token is expired

403

  • Your scope does not allow to access this resource. Missing allowances: care_plan:write

  • Access denied

  • invalid scope(s)

409

  • client_id refers to legal entity that is not active

  • client_id refers to legal entity with type that is not allowed to create medical events transactions

  • Person is not active

  • Patient is not verified

  • Care Plan from url does not match to Care Plan ID specified in body

Validation error

422

  • Care plan with such id is not found

  • Invalid care plan status

  • Care Plan end date is expired

  • User is not allowed to create care plan activity for the employee

  • Value is not allowed in enum

  • Cannot refer to service for kind = medication_request

  • Medication should be active

  • Medication does not exist

  • Another activity with status ‘scheduled' or ‘in_progress' already exists in the current Care plan

  • Cannot refer to medication for kind = service_request

  • <Service/Service group> should be active

  • Another activity with status ‘scheduled' or ‘in_progress' already exists in the current Care plan

  • <medical event type> with such ID is not found

  • Code field of quantity object should be equal to denumerator_unit of one of medication’s innms

  • Only one of the parameters must be present

  • Event is not within care plan period range

  • Period end time must be within care plan period range, after period start date

  • Period start time must be within care plan period range

  • Bounds duration must be within care plan period range

  • Low must be within care plan period range, less than high, have the same code as high

  • High must be within care plan period range

  • String does not match pattern

  • Division is not active

  • Invalid employee status

  • Program not found

  • Forbidden to create care plan activity for this medication!

  • Clinical impression with patient category exceeds validity period

  • User is not allowed to create care plan activity for this care plan

  • Code field of quantity object should be in MINUTE for care plan’s category <category code>

  • Units of daily_amount field should be equal to units of quantity field

  • Value is not allowed by {{dictionary_configuration_name}} dictionary configuration

  • expected a maximum of 1 items but got <actual number of elements>

Validation error