...
- Count all declarations in status
active
where OPS.declarations.employee_id==$.declaration_request.employee_id
1.1 If there is an active declaration with the current person, exclude it from the selection in order to let doctor resign declaration with current patient - Count all declaration_requests in status
approved
where IL.declaration_requests.data($.employee.id) ==$.declaration_request.employee_id - Get all specialities of current doctor
- Select speciality from PRM.employees where PRM.employees.party_id == (select PRM.employees.party_id where PRM.employees.id=$.declaration_request.employee_id)
- Select config parameter for declarations_limit where speciality == select 3
- Compare the result of selections 1+2 with the lowest config parameter from select 4. In case count (declarations+declaration_requests )> config_parameter, return 409 "The employee has reached the declaration limit"
Validate person documents
- issued_at, issued_by is mandatory for documents
- Validate dates
- issued_at <= now() and issued_at => birth_date
- in case `issued_at > now()` show error 422, "Document issued date should be in the past"
- in case `issued_at < person.birth_date` show error 422, "Document issued date should greater than person.birth_date "
- expiration_date > now()
- in case error show 422, "Document expiration_date should be in future"
- expiration_date is mandatory for document_type
- NATIONAL_ID
- COMPLEMENTARY_PROTECTION_CERTIFICATE
- PERMANENT_RESIDENCE_PERMIT
- REFUGEE_CERTIFICATE
- TEMPORARY_CERTIFICATE
- TEMPORARY_PASSPORT
- in case error return 422, "expiration_date is mandatory for document_type $.documents.type"
- issued_at <= now() and issued_at => birth_date
- Validate documents_type.number according to json schema
- PASSPORT - `^((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{6}$`
- NATIONAL_ID - `^[0-9]{9}$`
- BIRTH_CERTIFICATE - `` ^(?![ыъэ@%&$^#`~:,.*|}{?!])[А-ЯҐЇІЄа-яґїіє0-9 №\\\"()-]+$ ``
- COMPLEMENTARY_PROTECTION_CERTIFICATE - `^((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{6}$`
- PERMANENT_RESIDENCE_PERMIT - `^((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{6}$`
- REFUGEE_CERTIFICATE - `^((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{6}$`
- TEMPORARY_CERTIFICATE - `^((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{6}$`
- TEMPORARY_PASSPORT - `` ^(?![ыъэ@%&$^#`~:,.*|}{?!])[А-ЯҐЇІЄа-яґїіє0-9 №\\\"()-]+$ `
- Validate `unzr` is not null and matches "^[0-9]{8}-[0-9]{5}$" check if first 8 symbols = birth_date
- in case error return 422, msg "unzr or birthdate are not correct"
if documents.type=NATIONAL_ID
check if unzr exists in request, in case error return 422, msg "unzr is mandatory for document type NATIONAL_ID"
- Document numbersmaxLength < 25
Determine default auth method for new MPI
...