NPHCDA Immunization FHIR IG
1.0.0 - ci-build
NPHCDA Immunization FHIR IG, published by https://nphcda.gov.ng. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/Nigeria-FHIR-Community/ImmunizationIG/ and changes regularly. See the Directory of published versions
This page outlines the supported FHIR Search Parameters for the NgImmPatient, NgImmImmunization, and NgImmBundle profiles in the Nigeria Immunization Implementation Guide. These parameters enable efficient querying of patient records in systems that implement this guide.
The listed search parameters are derived from standard FHIR-defined parameters, with custom additions where relevant to local immunization use cases in Nigeria.
Name | Type | FHIR Path | Description |
---|---|---|---|
identifier |
token |
Patient.identifier |
Search by patient’s unique identifier such as NIN or program ID. |
firstname |
string |
Patient.firstname |
Search by patient’s given name. |
lastname |
string |
Patient.lastname |
Search by patient’s family name. |
birthdate |
date |
Patient.birthDate |
Filter patients by date of birth. Format: YYYY-MM-DD. |
createdate |
createdate |
Patient.createDate |
Filter patients by date of record creation. Format: YYYY-MM-DD. |
email |
string |
Patient.telecom |
Search by all telecome options (email or phone). |
gender |
token |
Patient.gender |
Filter patients by sex (Male, Female). Bound to NGGenderVS. |
address-state |
string |
Patient.address.state |
Search by the state of residence. Bound to NGStatesVS. |
address-lgas |
string |
Patient.address.district |
Search by Local Government Area (LGA). Bound to NGLGAsVS. |
GET [base]/Patient?identifier=NIN35635556
GET [base]/Patient?name=Chukwu
GET [base]/Patient?birthdate=2022-07-15
GET [base]/Patient?address-state=Benue
GET [base]/Patient?address-state=Benue&_sort=createddate
GET [base]/Patient?address-state=Benue&_sort=-createddate
GET [base]/Patient?createddate=ge2024-01-01&createddate=le2024-12-31
Name | Type | FHIR Path | Description |
---|---|---|---|
patient |
reference |
Immunization.patient |
Search immunizations by the referenced patient. |
status |
token |
Immunization.status |
Filter by immunization status (e.g., completed, not-done). |
vaccine-code |
token |
Immunization.vaccineCode |
Search by the administered vaccine code. |
date |
date |
Immunization.occurrenceDateTime |
Filter by date of immunization event. |
Search Parameter | Type | Description | FHIRPath Expression |
---|---|---|---|
patient.identifier |
token |
Search for bundles containing a patient with a specific identifier (e.g. NIN) | Bundle.entry.resource.ofType(Patient).identifier |
vaccine-code |
token |
Search for bundles containing an immunization with a specific vaccine code | Bundle.entry.resource.ofType(Immunization).vaccineCode |
patient-address-state |
token |
Search for bundles where the patient resides in a specific Nigerian state | Bundle.entry.resource.ofType(Patient).address.state |
organization-identifier |
token |
Search for bundles referencing a healthcare facility with a specific ID | Bundle.entry.resource.ofType(Organization).identifier |
patient-birthdate |
date |
Search for bundles containing patients born on a specific date | Bundle.entry.resource.ofType(Patient).birthDate |
_lastUpdated |
date |
Search for bundles that were last updated on or after a specific timestamp | Bundle.meta.lastUpdated |
For a complete list of FHIR search parameter types and modifiers, refer to the FHIR Search documentation.
This page describes the RESTful interactions supported for systems implementing the NgImmPatient, NgImmImmunization, and NgImmBundle profiles, aligned with FHIR R4 and SMART Guidelines principles. These operations define how client systems (e.g., EMRs, registries, mobile apps) can interact with immunization-related patient data.
Operation | FHIR Verb | Description |
---|---|---|
Read |
GET [base]/Patient/{id} |
Retrieve a specific immunization client record by logical ID. |
Search |
GET [base]/Patient?[parameters] |
Query patient records using defined search parameters. |
Create |
POST [base]/Patient |
Register a new immunization client (create a new Patient resource). |
Update |
PUT [base]/Patient/{id} |
Update an existing patient record. |
Patch |
(optional) | Apply partial updates to a patient record. (Not required by default) |
Delete |
(not supported) | Deletion is not recommended for immunization clients (use status flags instead). |
GET /Patient/12345
GET /Patient?identifier=NIN12345678
POST /Patient
Content-Type: application/fhir+json
{
"resourceType": "Patient",
"identifier": [
{
"system": "https://nimc.gov.ng",
"value": "NIN12345678"
}
],
"name": [
{
"family": "Okonkwo",
"given": ["Adaeze"]
}
],
"gender": "female",
"birthDate": "2022-04-15",
...
}
PUT /Patient/12345
Content-Type: application/fhir+json
{
"resourceType": "Patient",
"id": "12345",
...
}
Operation Name | Operation Code | Description | Input | Output |
---|---|---|---|---|
Validate NgImm Bundle | $validate-ngimm-bundle |
Validates a submitted bundle against Nigeria Immunization profiles | Bundle |
OperationOutcome |
Submit NgImm Bundle | $submit-ngimm-bundle |
Submits a bundle to the national immunization registry | Bundle |
Success Acknowledgement |
Export NgImm Bundle | $export-ngimm-bundle |
Exports bundles by facility, district, or date | Reference , dateTime |
Bundle |
Get Patient History | $get-patient-history |
Returns all immunization bundles related to a specific patient | token |
Bundle |
Sync NgImm Bundle | $sync-ngimm-bundle |
Returns all bundles updated since a specified timestamp | dateTime |
Bundle |
Evaluate Completeness | $evaluate-completeness |
Checks if all Must Support fields are populated in the submitted bundle | Bundle |
OperationOutcome |
Resolve Conflicts | $resolve-conflicts |
Identifies and resolves duplicate/conflicting bundles for the same patient | Reference , code |
OperationOutcome |
Generate Immunization Summary | $generate-summary |
Produces a readable summary (e.g., printable immunization card) from a bundle | Bundle |
string (HTML/Text) |
Get Next Dose Schedule | $get-next-dose-schedule |
Retrieves next scheduled dose date from protocolApplied.nextDoseDate |
Bundle |
dateTime |
Remove Obsolete Bundles | $remove-obsolete-bundles |
Deletes bundles of patients older than 24 months and marked inactive | date |
integer (count) |
All create and update operations must conform to the NgImmPatient and NgImmImmunization profiles. Ten operations can be carried out on NgImmBundle Use validation tools to ensure submitted resources are profile-conformant. Delete operation is disabled to avoid accidental removal of patient records; use status or metadata flags if deactivation is needed. All RESTful interactions must be secured and comply with Nigeria’s health data protection policies. All operations use standard FHIR OperationDefinition resources and can be extended with implementation-specific behavior. Where applicable, operations should respect access control based on organization, LGA, or user role.