Table of Contents |
---|
...
- Verify the validity of access token
- Return 401 in case validation fails
- Check scopes in order to perform this action (scope = 'patientperson_request:write')
- Return 403 in case invalid scope(s)
...
Decode content that is encrypted in an electronic digital signature.
Use Digital signature WS. Method checks digital signature and returns result.
See service specification
Validate DRFO
- Check that DRFO in Certificate details exists and not empty
- Check that DRFO in Certificate details is equal to DRFO in Party
- Get party.tax_id using employee_id in person payload
- Compare DRFO in Certificate with party.tax_id
- Convert DRFO and TAX_ID to uppercase
- Compare DRFO and TAX_ID as Cyrillic letters
- Convert DRFO to Cyrillic and compare as Cyrillic letters
- In case validation fails - generate 422 error
...
Patient request can be signed by any employee with necessary scopes in equal legal_entity_id.
- Check that ID in URL exists in the system
- Return 401 in case validation fails
- Check that patient request belongs to the same legal entity as the user
- In case of error - return 403
Check "patient_signed" flag
- If "patient_signed" is not present in request, return 422 ("required property patient_signed was not present")
- If "patient_signed"=false in request, return 422 ("value is not allowed in enum")
...
- Change entity status in IL_DB.patient_request to SIGNED
Set updated_at - now() (Get current date-time)
Set updated_by - user_id (Extract user from token)
Create person
After singed patient request create new person on DB.mpi.
Calculate the end date of the person_aus_method and set as default
These params set only if person is creating (so after Create person request)
If person has auth_method = third_person
, add in table person_auth_methods
row with type = THIRD_PERSON
, value = id (third_person_id), alias
...
End date:
if (person.age < prm.global_parameters.no_self_auth_age) { end_date = end_date =birth_date + prm.global_parameters.no_self_auth_age - 1d; } else { end_date = start_date + third_person_term; } |
Also to table person_auth_methods add this method as default(field `
default`
= TRUE) - it's for all auth_method.type
...
Name | Type | M/O | Comment |
---|---|---|---|
id | uuid | M | |
person_id | uuid | M | |
type | varchar | M | OFFLINE, OTP or THIRD_PERSON |
phone_number | varchar | O | |
value | varchar | O | if THIRD_PERSON would be third_person_id |
started_at | timestamp | O | |
end_at | timestamp | O | |
alias | varchar | O | |
default | boolean | O | |
inserted_at | timestamp | M | |
updated_at | timestamp | M |
...