Table of Contents |
---|
Purpose
...
Page Properties | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Logic
Method receives signed message (pkcs7) including signed content, digital signature and signer public key in signed_content
property. All signature fields will be validated (including signer certificate authority).
...
Look at Dummy Sign Medication Request Requests for more details.
Preconditions
API paragraph not found
Global and configurable parameters
No
Input parameters
Input parameter | Values | Type | Description | Example |
---|---|---|---|---|
id | String | Required | 6a8a83a4 |
Filters
No
Request structure
...
Example:
Expand | ||
---|---|---|
| ||
|
...
api-key:uXhEczJ56adsfh3Ri9SUkc4en
msp_drfo:2534157686
Validate request
API paragraph not found
Request data validation
Validate employee
...
If medical program setting skip_mnn_in_treatment_periodskip_treatment_period = false (absent), then validate division as described on PreQualify Medication request: 2. Check absence the same medications for the programs
...
Parameters that are used when processing the request
Configuration parameters
API paragraph not found
Dictionaries
API paragraph not found
Configuration parameters
API paragraph not found
Dictionaries
MEDICATION_REQUEST_INTENT
MEDICATION_REQUEST_CATEGORY
MEDICATION_REQUEST_PRIORITY
eHealth/SNOMED/additional_dosage_instructions
eHealth/SNOMED/anatomical_structure_administration_site_codes
eHealth/SNOMED/route_codes
eHealth/SNOMED/administration_methods
eHealth/SNOMED/dose_and_rate
eHealth/ICD10_AM/condition_codes
eHealth/ICPC2/condition_codes
Processing
Save signed medication request request to media storage
Get url for medication request upload.
Upload signed medication request request to media storage
Parameter | Source |
---|---|
action | GET |
bucket | from MEDIA_STORAGE_MEDICATION_REQUEST_REQUEST_BUCKET chart var |
resource_id | medication_request_request_id |
resource_name | signed_content |
Create medication request
Create new record in medication_requests with status ACTIVE
if there is existing record in the medication_requests table with the same id and medication_request_request_id, return ok to IL
Mapping (where <rd> = medication_request_request.data )
Destination | Source |
---|---|
id | |
request_number | <rd>.request_number |
verification_code | <rd>.verification_code |
created_at | <rd>.created_at |
started_at | <rd>.started_at |
ended_at | <rd>.ended_at |
dispense_valid_from | <rd>.dispense_valid_from |
dispense_valid_to | <rd>.dispense_valid_to |
person_id | <rd>.person_id |
employee_id | <rd>.employee_id |
division_id | <rd>.division_id |
medication_id | <rd>.medication_id |
medication_qty | <rd>.medication_qty |
medical_program_id | <rd>.medical_program_id |
status | ACTIVE |
is_active | true |
recall_at | NULL |
recalled_by | NULL |
recall_reason | NULL |
request_for_medication_request_id | $.id |
inserted_at | :timestamp |
inserted_by | user_id |
updated_at | :timestamp |
updated_by | user_id |
intent | <rd>.intent |
category | <rd>.category |
context | <rd>.context |
dosage_instructions | <rd>.dosage_instructions |
container_dosage | <rd>.container_dosage |
priority | <rd>.priority |
prior_prescription | <rd>.prior_prescription |
Generate printout form
Invoke ael.api in order to render MEDICATION_REQUEST_TEMPLATE
Template parameters
Parameter | Source | ||
---|---|---|---|
bar code
| request_number | ||
| created_at | ||
| dispense_valid_to | ||
| program.name | ||
| person.short_name | ||
| person.age | ||
| medication.name | ||
| medication_qty | ||
| started_at | ||
| ended_at | ||
| dosage_instruction_text | ||
| employee.short_name | ||
| employee.phone_number | ||
| legal_entity.name | ||
| division.name | ||
| legal_entity.address | ||
| legal_entity.edrpou | ||
| legal_entity.license | ||
| legal_entity.license.license_number | ||
| legal_entity.license.what_licensed | ||
| legal_entity.license.issued_date | ||
| legal_entity.license.issued_by | ||
| legal_entity.license.active_from_date | ||
| legal_entity.license.expiry_date | ||
| legal_entity.license.order_no | ||
| person.authentication_method | ||
| program.mr_blank_type getFromDictionary(<rd>.container-dosage.unit;'MR_BLANK_TYPES') | ||
| program.funding_source
| ||
| program.funding_source_text if {program.funding_source}<>"PERSON" then getFromDictionary({program.funding_source},'FUNDING_SOURCE)' else "" endif | ||
| person.age_unit returns in years ("р.") | ||
| medication.innm_primary_denumerator_unit getFromDictionary({innm_primary.dosage.denumerator_unit};'MEDICATION_UNIT'), | ||
| container_dosage.value <rd>container_dosage.value | ||
| container_dosage.unit getFromDictionary(<rd>container_dosage.unit;'MEDICATION_UNIT') |
Medication request form example:
...
Code Block |
---|
UPDATE medication_request_requests SET status = 'SIGNED' WHERE id = {:id} |
Send SMS for person
If MR has program with medical program setting setting medication_request_notification_disabled request_notification_disabled = true, then don't send SMS.
Else:
Get authentication_method of MPI
If authentication_method == OTP - send SMS:
Generate text SMS (call Man method- templates rendering service with template "TEMPLATE_SMS_FOR_SIGN_MEDICATION_REQUEST".
Sending SMS for MPI
If authentication_method == OFFLINE (or medication_request_notification_disabled = true) -
set medication_request_request.verification_code to MEDICATION_REQUEST_TEMPLATE
Response structure
...
Calculate and set remaining quantity for the activity
If the medication request request is based on activity with quantity:
recalculate and set remaining_quantity for the activity as described at Create Medication Request: Validate based_on (p. 2.d.1 )
Response structure
Example:
Expand | ||
---|---|---|
| ||
|
Post-processing processes
No
HTTP status codes
HTTP status code | Message | What caused the error |
---|---|---|
200 | Response |
|
401 | Invalid access token |
|
403 |
| |
409 | Invalid status Medication request Request for sign transition! | |
422 |
|
Backward compatibility
API paragraph not found
...