Table of Contents |
---|
Specification
...
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 |
...