opencrvs / opencrvs-core

A global solution to civil registration
https://www.opencrvs.org
Other
85 stars 64 forks source link

Integrate correct record with MOSIP #4557

Open euanmillar opened 1 year ago

euanmillar commented 1 year ago

If a correction to a national ID is being made and the user is online, they should be able to validate a mothers, fathers, informants & deceased's Natonal ID with MOSIP and pre-populate that page of the form with data returned from MOSIP.

On the review page of any application that has not been corrected yet or on the review page of correct record, the National ID should have an icon to show if it has been validated or not.

If a registrar, field agent or reg agent is offline and submits a National ID as part of a correction, after it goes through the Outbox, we need to check if all supplied National IDs are valid. If any are invalid, the correction should be rejected and the specific National ID highlighted. In Record Audit, the rejection needs to have been performed by the OpenCRVS system as opposed to by any individual user.

MOSIP do not want us to store a National ID in our database. If MOSIP is integrated, all National IDs should be removed from the application after it is corrected. National ID therefore should never be allowed to be a mandatory field if MOSIP is integrated.

rikukissa commented 2 months ago

If a correction to a national ID is being made and the user is online, they should be able to validate a mothers, fathers, informants & deceased's Natonal ID with MOSIP and pre-populate that page of the form with data returned from MOSIP.

For this, it would be best if country config, as part of form definition, would define a "validate" block the client could use to send a field id and a value to and receive a validation result.

fieldId: 'informant.nid',
type: 'TEXT',
validation: {
  countryconfigPath: '/validate/nid',
}

The response from the POST /validate/nid endpoint would be something like

200 OK
[
  {
     id: 'informant.firstName',
     value: 'Britney'
  }
]

On the review page of any application that has not been corrected yet or on the review page of correct record, the National ID should have an icon to show if it has been validated or not.

@jpye-finch do we already have UI design for this?

If a registrar, field agent or reg agent is offline and submits a National ID as part of a correction, after it goes through the Outbox, we need to check if all supplied National IDs are valid. If any are invalid, the correction should be rejected and the specific National ID highlighted. In Record Audit, the rejection needs to have been performed by the OpenCRVS system as opposed to by any individual user.

For this, let's implement the generic purpose event handlers in the country config API. This for instance could now be

POST /events/correction-requested

To which CC would again return 400 status and rejection reason. In the first version of this, I propose we only use the rejection reason to indicate which NID was incorrect. Let's not send full FHIR bundles to these event handles but rather a very minimal set of details about the event, including the record id.

MOSIP do not want us to store a National ID in our database. If MOSIP is integrated, all National IDs should be removed from the application after it is corrected. National ID therefore should never be allowed to be a mandatory field if MOSIP is integrated.

I understand the point they have but as NID is the main unique identifier for a person, removing it from our data will make everything unnecessarily difficult. Person-centric view and linking records will for instance build fully on the assumption of stable unique identifiers