Purpose
This WS is designed to resend sms with OTP-code to the person’s verified phone on service request in case OTP wasn’t delivered in first time.
Specification
Logic
Method to resend sms on service request. It can be processed in both sync and async methods depends on Server decision.
Input parameters
| | | | |
---|
patient_id | | String | Unique patient identifier | 7075e0e2-6b57-47fd-aff7-324806efa7e5
|
service_request_id | | String | Unique service request identifier | aff00bf6-68bf-4b49-b66d-f031d48922b3
|
Request structure
API paragraph not found
Authorize
Verify the validity of access token
Verify that token is not expired
Check user scopes in order to perform this action (scope = 'service_request:write')
Return (403, 'invalid scopes') in case of invalid scope(s)
Request to process the request using a token in the headers
Headers
Наприклад:
Request data validation
Validate transition
Check if service request with service_request_id from request is exist
in case of error - return 404 (“Not found”) in case of validation fails
Validate person
Check if person with patient_id from request is exist
in case of error - return 404 (“Not found”) in case of validation fails
Check if person with patient_id from request is not preperson
in case of validation fails skip all steps below
Validate legal entity
Check that legal_entity_type is included in chart variables ME_ALLOWED_TRANSACTIONS_LE_TYPES
config parameter
in case of error return 409 "Action is not allowed for the legal entity"
Check that legal_entity has status = active
in case of error return 409 "Action is not allowed for the legal entity"
Validate service_request
Check that status = ‘active' and ProgramProcessinStatus in (’new', ‘in_queue')
in case of error - return 409 error ('You can not resend SMS for service request in status %status%')
in case of error - return 409 error ('You can not resend SMS for service request in program processing status %program_processing_status%')
Processing
Service logic
Send SMS to patient (if authentication_method_current == SMS)
Template = SERVICE_REQUEST_CREATE_SMS
Get person's authentication_method of MPI
If authentication_method == OTP - send SMS:
Generate text SMS (call Man method- templates rendering service with template SERVICE_REQUEST_CREATE_SMS
.
Send SMS
Save internal information to corresponding DB
Response structure
See on Apiary
Example:
{
"data": {
"id": "90a9e15b-b71b-4caf-8f2e-ff247e8a5600",
"requisition": "AX654654T",
"status": "active",
"program": {
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "medical_program"
}
]
},
"value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
},
"display_value": "null"
},
"program_processing_status": "new",
"status_history": [
{
"status": "closed",
"status_reason": {
"coding": [
{
"system": "eHealth/service_request_recall_reasons",
"code": "cured"
}
]
},
"inserted_at": "2018-08-02T10:45:16.000Z"
}
],
"program_processing_status_history": [
{
"program_processing_status": "new",
"inserted_at": "2018-08-02T10:45:16.000Z",
"inserted_by": "f7bdce4c-9d6e-4b08-913c-97c4b972f9be"
}
],
"program_service": {
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "program_service"
}
]
},
"value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
},
"display_value": "null"
},
"intent": "order",
"priority": "routine",
"based_on": [
{
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "care_plan"
}
]
},
"value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
}
},
{
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "activity"
}
]
},
"value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
}
}
],
"category": {
"coding": [
{
"system": "eHealth/SNOMED/service_request_categories",
"code": "409063005"
}
]
},
"code": {
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "service"
}
]
},
"value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
},
"display_value": "null"
},
"subject": {
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "patient"
}
]
},
"value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
},
"display_value": "null"
},
"context": {
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "encounter"
}
]
},
"value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
},
"display_value": "null"
},
"occurrence_period": {
"start": "2018-08-02T10:45:16.000Z",
"end": "2018-08-02T11:00:00.000Z"
},
"requester_employee": {
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "employee"
}
]
},
"value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
},
"display_value": "null"
},
"requester_legal_entity": {
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "legal_entity"
}
]
},
"value": "75a6d991-0bf7-476f-b3cf-bec83f044b2a"
},
"display_value": "null"
},
"reason_references": [
{
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "condition"
}
]
},
"value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
},
"display_value": "null"
}
],
"supporting_info": [
{
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "episode_of_care"
}
]
},
"value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
},
"display_value": "null"
}
],
"note": "Some notes",
"patient_instruction": "Some patient instructions",
"expiration_date": "2018-08-02T10:45:16.000Z",
"permitted_resources": [
{
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "episode_of_care"
}
]
},
"value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
},
"display_value": "null"
}
],
"used_by_employee": {
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "legal_entity"
}
]
},
"value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
},
"display_value": "null"
},
"inserted_at": "2018-08-02T10:45:16.000Z",
"updated_at": "2018-08-02T10:45:16.000Z",
"completed_with": {
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "diagnostic_report"
}
]
},
"value": "9183a36b-4d45-4244-9339-63d81cd08d9c"
},
"display_value": "null"
},
"used_by_legal_entity": {
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "legal_entity"
}
]
},
"value": "c5a6d991-0bf7-476f-b3cf-bec83f044b2a"
},
"display_value": "null"
},
"performer": {
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "legal_entity"
}
]
},
"value": "c5a6d991-0bf7-476f-b3cf-bec83f044b2a"
},
"display_value": "Опанасенко Олексій Володимирович"
},
"location_reference": {
"identifier": {
"type": {
"coding": [
{
"system": "eHealth/resources",
"code": "division"
}
]
},
"value": "c5a6d991-0bf7-476f-b3cf-bec83f044b2a"
},
"display_value": "null"
},
"performer_type": {
"coding": [
{
"system": "SPECIALITY_TYPE",
"code": "DIETETICS"
}
]
}
},
"meta": {
"code": 201,
"url": "http://example.com/resource",
"type": "object",
"request_id": "req-adasdoijasdojsda"
}
}
{
"data": {
"status": "pending",
"eta": "2018-08-02T10:45:16.000Z",
"links": [
{
"entity": "job",
"href": "/Jobs/NBXk9EyErUZv1RhXgyvgg"
}
]
},
"meta": {
"code": 202,
"url": "http://example.com/resource",
"type": "object",
"request_id": "req-adasdoijasdojsda"
}
}
Post-processing processes
API paragraph not found
HTTP status codes
| | |
---|
200 | | |
201 | use payload from response | sync |
202 | use Get job details to get processing result. Response payload will be returned in the job details | async: default method |