Table of Contents

...

Validate person authentication phone

USE_DEDUPLICATION_MODEL - is a flag in in ehealth.charts that turn on logic:

If person have confidant_person, then person.auth_phone = person.confident_person.phone

...

  1. issued_at, issued_by is mandatory for documents
  2. Validate dates
    1. issued_at <= now() and issued_at => birth_date
      1.  in case `issued_at > now()` show error 422, "Document issued date should be in the past"
      2.  in case `issued_at < person.birth_date` show error 422, "Document issued date should greater than person.birth_date "
    2. expiration_date > now()
      1.  in case error show 422, "Document expiration_date should be in future"
      2. expiration_date is mandatory for document_type
        • NATIONAL_ID
        • COMPLEMENTARY_PROTECTION_CERTIFICATE
        • PERMANENT_RESIDENCE_PERMIT
        • REFUGEE_CERTIFICATE
        • TEMPORARY_CERTIFICATE
        • TEMPORARY_PASSPORT
      3. in case error return 422, "expiration_date is mandatory for document_type $.documents.type"
  3. Validate documents_type.number according to json schema 
    1. PASSPORT - `^((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{6}$`
    2. NATIONAL_ID - `^[0-9]{9}$`
    3. BIRTH_CERTIFICATE - `` ^(?![ыъэ@%ЫЪЭЁыъэё@%&$^#`~:,.*|}{?!])[АA-ЯҐЇІЄа-яґїіє0ЯҐЇІЄ0-9 №9№\\\"/()-]+$ `` `
    4. COMPLEMENTARY_PROTECTION_CERTIFICATE - `^((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{6}$`
    5. PERMANENT_RESIDENCE_PERMIT - `^((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{6}$`
    6. REFUGEE_CERTIFICATE - `^((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{6}$`
    7. TEMPORARY_CERTIFICATE - `^((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{6}$`
    8. TEMPORARY_PASSPORT - `` ^(?![ыъэ@%&$^#`~:,.*|}{?!])[А-ЯҐЇІЄа-яґїіє0-9 №\\\"()-]+$ `
  4. if `unzr`exists and is not null and matches "^[0-9]{8}-[0-9]{5}$" check if first 8 symbols = birth_date
    1. in case error return 422, msg "unzr or birthdate are not correct"
  5. if documents.type=NATIONAL_ID

    1. check if unzr exists in request, in case error return 422, msg "unzr is mandatory for document type NATIONAL_ID"

  6. Document numbersmaxLength < 25 

...

Generate human readable declaration number

  • Use algorithm to generate declaration_number
  • Declaration number should consist of a 4 serial symbols and 8 number symbols and looks like XXXX-12H4-245D
  • Add field to ops.declarations and il.declaration_requests - declaration_number 
  • Add declaration_number to print out form

...