Table of Contents |
---|
Purpose
...
- Validate that $document.type
- one of from dictionary (name='DOCUMENT_TYPE') or is MPI_ID. If type is not as in dictionary or not MPI_ID show the row in the errors field.
- Validate MPI_ID
- in case MPI_ID is not UUID ("^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$")
- show the row with not found MPI_ID with status "error"
- in case MPI_ID was not found in mpi.persons.id
- show the row with MPI_ID with status "not_found"
- in case MPI_ID was found, but could not be deactivated
- show row with MPI_ID with status "processed"
- in case MPI_ID is not UUID ("^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$")
- Validate death_date if exists
- in case death_date <> valid date ()
- show the row with MPI_ID with status "date_error"
- in case death_date does not exist
- show the row with MPI_ID with status "date_error"
- in case death_date year < 1900
- show the row with MPI_ID with status "date_error"
- in case death_date < birth_date
- show the row with MPI_ID with status "date_error"
- in case death_date <> valid date ()
...
Name | Source | Description |
---|---|---|
id | $batch_id | id=batch_id from il.registers |
file_name | $file_name | file_name=file_name from il.registers |
status | [new, processing, processed ] | new - file was downloaded and not processed processing - when processing entries>0 processed - when processing entries=0 |
type | $type | type=type from il.dictionaries.name='REGISTER_TYPE' |
qty | {not_found: number, processing: number, errors: number, total: number} | |
errors | ["Row has length 4 - expected length 5 on line 5", "Row has length 1 - expected length 5 on line 7"] | |
inserted_at | user_id | |
inserted_by | :timestamp | |
updated_at | user_id | |
updated_by | :timestamp |
The data from file must be stored to il.register_entries. In case some rows had errors those entries will be shown in filed "errors" and won't be processed.
Name | Source | Description |
---|---|---|
id | ||
register_id | the unique id for the batch upload | |
person_type | enum(employee,patient) | |
type | $type | document_type |
number | $number | document_number |
status |
| |
inserted_at | user_id | from token |
inserted_by | :timestamp | |
updated_at | user_id | |
updated_by | :timestamp |
After the file was processed the field "qty" from table il.registers must be updated.
...
If the person was matched then
- update declarations.status to `terminated`
- update persons.status='INACTIVE'
- change declarations.reason to $"auto_"||type
- update il.registers.status='matched'
- update mpi.persons.death_date = $death_date
...
If declaration_id was matched
- update ops.declarations.status to `terminated`
- update ops.declaration.updated_at = now()
- update ops.declaration.updated_by = $user_id
- change declarations.reason to $"auto_"||type
- update il.registers.status='matched'
- involve Event Manager for changed status
Backward compatibility
is not possible for this kind of termination. In case the wrong declaration was terminated, the patient must sign the new one.
...