ЕСОЗ - публічна документація

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Purpose

The main goal of the Fraud Detection mechanism is to provide a possibility to identify and prevent possible financial losses due to fraud activities. In order to be able to do that there is a necessity to create fraud DB and using it implement triggers which automatically shows who is likely to be fraud. 

Based on current tables next data must be aggregated and analyzed:

  • Number of patients per doctor
  • Number of patients registered for the same phone number
  • Number and percentage of patients per doctor that have set offline authorization method
  • Number and percentage of patients per legal entity that have set offline authorization method 

Fraud DB structure 

To simplify report creation and data analysis current tables should be denormalized  and aggregated.

Table for replication

  1. prm_db
    • legal_entities
    • divisions
    • employees
    • parties
    • party_users
    • black_list_users
    • audit_log
  2. ops_db
    • declarations
    • declarations_status_hstr
  3. il_db
    • declaration_requests
    • employee_requests
    • dictionaries
  4. mpi_db
    • persons
    • audit_log

Mapping:

  1. prm_db
    •   legal_entities

      field_origintable_field_namedescription
      idid
      namename
      short_nameshort_name
      public_namepublic_name
      statusstatus
      typetype
      owner_property_typeowner_property_type
      legal_formlegal_form
      edrpouedrpou
      kvedskvedsto_string(kveds)
      addresses.countryregistration_countrytype='REGISTRATION'
      addresses.arearegistration_areatype='REGISTRATION'
      addresses.regionregistration_regiontype='REGISTRATION'
      addresses.settlementregistration_settlementtype='REGISTRATION'
      addresses.settlement_typeregistration_settlement_typetype='REGISTRATION'
      addresses.settlement_idregistration_settlement_idtype='REGISTRATION'
      addresses.street_typeregistration_street_typetype='REGISTRATION'
      addresses.streetregistration_streettype='REGISTRATION'
      addresses.building&addresses.apartmentregistration_buildingtype='REGISTRATION', to_char(addresses.building&', '&addresses.apartment)
      addresses.zipregistration_ziptype='REGISTRATION'
      addresses.countryresidence_countrytype='RESIDENCE'
      addresses.arearesidence_areatype='RESIDENCE'
      addresses.regionresidence_regiontype='RESIDENCE'
      addresses.settlementresidence_settlementtype='RESIDENCE'
      addresses.settlement_typeresidence_settlement_typetype='RESIDENCE'
      addresses.settlement_idresidence_settlement_idtype='RESIDENCE'
      addresses.street_typeresidence_street_typetype='RESIDENCE'
      addresses.streetresidence_streettype='RESIDENCE'
      addresses.building&addresses.apartmentresidence_buildingtype='RESIDENCE', to_char(addresses.building&', '&addresses.apartment)
      addresses.zipresidence_ziptype='RESIDENCE'
      phonesmobile_phonetype='MOBILE'
      phonesland_line_phonetype='LAND_LINE'
      emailemail
      is_activeis_active
      inserted_byinserted_by
      updated_byupdated_by
      inserted_atinserted_at
      updated_atupdated_at
      capitation_contract_idcapitation_contract_id
      created_by_mis_client_idcreated_by_mis_client_id
      mis_verifiedmis_verified
      nhs_verifiednhs_verified
    • divisions

      field_origintable_field_namedescription
      idid
      external_idexternal_id
      namename
      typetype
      mountain_groupmountain_group
      addresses.countryresidence_countrytype='RESIDENCE'
      addresses.arearesidence_areatype='RESIDENCE'
      addresses.regionresidence_regiontype='RESIDENCE'
      addresses.settlementresidence_settlementtype='RESIDENCE'
      addresses.settlement_typeresidence_settlement_typetype='RESIDENCE'
      addresses.settlement_idresidence_settlement_idtype='RESIDENCE'
      addresses.street_typeresidence_street_typetype='RESIDENCE'
      addresses.streetresidence_streettype='RESIDENCE'
      addresses.building&addresses.apartmentresidence_buildingtype='RESIDENCE', to_char(addresses.building&', '&addresses.apartment)
      addresses.zipresidence_ziptype='RESIDENCE'
      addresses.countryregistration_countrytype='REGISTRATION'
      addresses.arearegistration_areatype='REGISTRATION'
      addresses.regionregistration_regiontype='REGISTRATION'
      addresses.settlementregistration_settlementtype='REGISTRATION'
      addresses.settlement_typeregistration_settlement_typetype='REGISTRATION'
      addresses.settlement_idregistration_settlement_idtype='REGISTRATION'
      addresses.street_typeregistration_street_typetype='REGISTRATION'
      addresses.streetregistration_streettype='REGISTRATION'
      addresses.building&addresses.apartmentregistration_buildingtype='REGISTRATION', to_char(addresses.building&', '&addresses.apartment)
      addresses.zipregistration_ziptype='REGISTRATION'
      phonesmobile_phonetype='MOBILE'

      phones

      land_line_phonetype='LAND_LINE'
      emailemail
      inserted_atinserted_at
      updated_atupdated_at
      legal_entity_idlegal_entity_id
      locationlocation
      statusstatus
      is_activeis_active
    • employees

      field_origintable_field_namedescription
      idid
      positionposition
      statusstatus
      employee_typeemployee_type
      is_activeis_active
      inserted_byinserted_by
      updated_byupdated_by
      start_datestart_date
      end_dateend_date
      legal_entity_idlegal_entity_id
      division_iddivision_id
      party_idparty_id

      inserted_at

      inserted_at
      updated_atupdated_at
      status_reasonstatus_reason
      additional_info.educationseducationsadditional_info.educations
      additional_info.educationseducations_qtyadditional_info.educations[count] - count items in the array
      additional_info.qualificationsqualificationsadditional_info.qualifications
      additional_info.qualificationsqualifications_qtyadditional_info.qualifications[count] - count items in the array
      additional_info.specialitiesspecialitiesadditional_info.specialities
      additional_info.specialitiesspecialities_qtyadditional_info.specialities[count] - count items in the array
      additional_info.specialities.specialityspeciality_officioadditional_info.specialities.speciality_officio=true
      additional_info.specialities.valid_to_datespeciality_officio_valid_to_dateadditional_info.specialities.speciality_officio=true
      additional_info.science_degreescience_degreeadditional_info.science_degree
    • parties

      field_origintable_field_namedescription
      idid
      first_namefirst_name
      second_namesecond_name
      last_namelast_name
      birth_datebirth_date
      gendergender
      tax_idtax_id
      documents.numberpassport_numberdocuments.type='PASSPORT'
      documents.numbernational_id_numberdocuments.type='NATIONAL_ID'
      documents.numberbirth_certificate_numberdocuments.type='BIRTH_CERTIFICATE'

      documents.number

      temporary_certificate_numberdocuments.type='TEMPORARY_CERTIFICATE'
      phonesmobile_phonetype='MOBILE'

      phones

      land_line_phonetype='LAND_LINE'
      inserted_byinserted_by
      updated_byupdated_by
      inserted_atinserted_at
      updated_atupdated_at
    • party_users- without changes

    • audit_log 

      field_origintable_field_namedescription
      idid
      actor_idactor_id
      resourceresource
      resource_idresource_id
      changesetchangeset
      inserted_atinserted_at 
  2. ops_db
    • declarations - without field "seed"
    • declarations_status_hstr - without changes
  3. il_db
    • declaration_requests

      field_origintable_field_namedescription
      idid
      declaration_iddeclaration_id
      authentication_method_current.typeauth_methodauthentication_method_current.type
      authentication_method_current.numberauth_numberauthentication_method_current.{type='OTP'}.number
      statusstatus
      inserted_byinserted_by
      inserted_atinserted_at
      updated_byupdated_by
      updated_atupdated_at

    • employee_requests

      field_origintable_field_namedescription
      idid
      employee_idemployee_id
      statusstatus
      inserted_atinserted_at
      updated_atupdated_at
    • black_list_users - without changes 
    • dictionaries

4. persons

field_origintable_field_namedescription
idid
first_namefirst_name
last_namelast_name
second_namesecond_name
birth_datebirth_date
birth_countrybirth_country
birth_settlementbirth_settlement
gendergender
emailemail
tax_idtax_id
national_idnational_id

death_date

death_date
is_activeis_active
secret secret
statusstatus
patient_signedpatient_signed
process_disclousure_data_consentprocess_disclousure_data_consent
documents.numberpassport_numberdocuments.type='PASSPORT'
documents.numbernational_id_numberdocuments.type='NATIONAL_ID'
documents.numberbirth_certificate_numberdocuments.type='BIRTH_CERTIFICATE'
documents.numbertemporary_certificate_numberdocuments.type='TEMPORARY_CERTIFICATE'
addresses.countryregistration_countrytype='REGISTRATION'
addresses.arearegistration_areatype='REGISTRATION'
addresses.regionregistration_regiontype='REGISTRATION'
addresses.settlementregistration_settlementtype='REGISTRATION'
addresses.settlement_typeregistration_settlement_typetype='REGISTRATION'
addresses.settlement_idregistration_settlement_idtype='REGISTRATION'
addresses.street_typeregistration_street_typetype='REGISTRATION'
addresses.streetregistration_streettype='REGISTRATION'
addresses.building&addresses.apartmentregistration_buildingtype='REGISTRATION', to_char(addresses.building&', '&addresses.apartment)
addresses.zipregistration_ziptype='REGISTRATION'
addresses.countryresidence_countrytype='RESIDENCE'
addresses.arearesidence_areatype='RESIDENCE'
addresses.regionresidence_regiontype='RESIDENCE'
addresses.settlementresidence_settlementtype='RESIDENCE'
addresses.settlement_typeresidence_settlement_typetype='RESIDENCE'
addresses.settlement_idresidence_settlement_idtype='RESIDENCE'
addresses.street_typeresidence_street_typetype='RESIDENCE'
addresses.streetresidence_streettype='RESIDENCE'
addresses.building&addresses.apartmentresidence_buildingtype='RESIDENCE', to_char(addresses.building&', '&addresses.apartment)
addresses.zipresidence_ziptype='RESIDENCE'
phonesmobile_phonetype='MOBILE'
phonesland_line_phonetype='LAND_LINE'
authentication_methodsauthentication_methods
statusstatus
emergency_contact.first_nameec_first_name 
emergency_contact.last_nameec_last_name
emergency_contact.second_nameec_second_name
emergency_contact.phones.numberec_mobile_phonetype='MOBILE'
emergency_contact.phones.numberec_land_line_phonetype='LAND_LINE'
confidant_person.first_namecp1_first_nameconfidant_person.relation_type='PRIMARY'
confidant_person.last_namecp1_last_namerelation_type='PRIMARY'
confidant_person.second_namecp1_second_namerelation_type='PRIMARY'
confidant_person.birth_datecp1_birth_daterelation_type='PRIMARY'
confidant_person.birth_countrycp1_birth_countryrelation_type='PRIMARY'
confidant_person.birth_settlementcp1_birth_settlementrelation_type='PRIMARY'
confidant_person.gendercp1_genderrelation_type='PRIMARY'
confidant_person.tax_idcp1_tax_idrelation_type='PRIMARY'
confidant_person.secretcp1_secretrelation_type='PRIMARY'
confidant_person.documents.numbercp1_passport_numberrelation_type='PRIMARY' & documents.type='PASSPORT'
confidant_person.documents.numbercp1_national_id_numberrelation_type='PRIMARY' &  documents.type='NATIONAL_ID'
confidant_person.documents.numbercp1_birth_certificate_numberrelation_type='PRIMARY' & documents.type='BIRTH_CERTIFICATE'
confidant_person.documents.numbercp1_temporary_certificate_numberrelation_type='PRIMARY' & documents.type='TEMPORARY_CERTIFICATE'
confidant_person.documents_relationshipcp1_doc_relationship_document_numberrelation_type='PRIMARY' & documents_relationship.type='DOCUMENT'
confidant_person.documents_relationshipcp1_doc_relationship_court_decision_numberrelation_type='PRIMARY' & documents_relationship.type='COURT_DECISION'
confidant_person.documents_relationshipcp1_doc_relationship_birth_cert_numberrelation_type='PRIMARY' & documents_relationship.type='BIRTH_CERTIFICATE'
confidant_person.documents_relationshipcp1_doc_relationship_confidant_cert_numberrelation_type='PRIMARY' & documents_relationship.type='CONFIDANT_CERTIFICATE'
confidant_person.phonescp1_mobile_phonerelation_type='PRIMARY' & phones.type='MOBILE'
confidant_person.phonescp1_land_line_phonerelation_type='PRIMARY' & phones.type='MOBILE'
confidant_person.first_name...cp2_first_nameconfidant_person.relation_type='SECONDARY'
same block as for confidant_person with relation_type='PRIMARY, but with relation_type='SECONDARY' and field_name cp2_ 
authentication_method.typeauth_methodauthentication_method.type
authentication_method.numberauth_numberauthentication_method.{type='OTP'}.number
inserted_byinserted_by
updated_byupdated_by
inserted_atinserted_at
updated_atupdated_at
  • No labels