| Package | ng.gov.nphcda.immunization |
| Resource Type | CapabilityStatement |
| Id | NgImmCapabilityStatementServer |
| FHIR Version | R4 |
| Source | http://nphcda.gov.ng/ig/immunization/https://build.fhir.org/ig/Nigeria-FHIR-Community/ImmunizationIG/CapabilityStatement-NgImmCapabilityStatementServer.html |
| URL | http://nphcda.gov.ng/ig/immunization/CapabilityStatement/NgImmCapabilityStatementServer |
| Version | 1.0.0 |
| Status | active |
| Date | 2025-08-03 |
| Title | NG-Imm Server CapabilityStatement |
| Description | This CapabilityStatement describes the expected behavior of FHIR servers implementing Nigeria’s Immunization Implementation Guide (NG-IMM). It includes full RESTful support for key profiles (`NgImmPatient`, `NgImmImmunization`, and `NgImmBundle`) and logical model transformations. The server also supports data submission, export, and validation via custom operations, as well as tracking updates through `Provenance`. #### Use of HTTP Methods: - **POST**: Used to create a new resource. The server assigns the resource ID. - **PUT**: Used to fully replace an existing resource identified by a known ID. - **PATCH**: Used for partial updates to existing resources. #### Provenance: Clients MUST include a `Provenance` resource when performing GET, PUT, or PATCH on Server Resources (`NgImmPatient`, `NgImmImmunization`, and `NgImmBundle`) to ensure traceability and support audit trails. |
| Kind | requirements |
No resources found
| StructureDefinition | |
| NgImmBundle | Nigeria Immunization Bundle |
| NgImmImmunization | NG-Imm Immunization |
| NgImmPatient | NG-Imm Patient |
Note: links and images are rebased to the (stated) source
Generated Narrative: CapabilityStatement NgImmCapabilityStatementServer
xmlNote to Implementers: FHIR Capabilities
Any FHIR capability may be 'allowed' by the system unless explicitly marked as 'SHALL NOT'. A few items are marked as MAY in the Implementation Guide to highlight their potential relevance to the use case.
serverThe server supports RESTful create, read, update, and search for immunization-related records using the Nigeria Immunization Implementation Guide (NG-IMM).
The summary table lists the resources that are part of this configuration, and for each resource it lists:
_include_revinclude| Resource Type | Profile | R | S | U | P | C | Searches | _include | _revinclude | Operations |
|---|---|---|---|---|---|---|---|---|---|---|
| Patient | http://nphcda.gov.ng/ig/immunization/StructureDefinition/NgImmPatient | y | y | y | y | y | identifier, firstname, lastname, birthdate, gender, state | $submit, $export, $validate | ||
| Immunization | http://nphcda.gov.ng/ig/immunization/StructureDefinition/NgImmImmunization | y | y | y | y | y | patient, status, vaccine-code, date | $submit, $export, $validate | ||
| Bundle | http://nphcda.gov.ng/ig/immunization/StructureDefinition/NgImmBundle | y | y | y | y | type, timestamp, identifier | $submit, $export, $validate | |||
| Provenance | y | y | y | target |
read, search-type, create, update, patch.The
NgImmPatientprofile is used for managing client demographic data.
- POST: Creates a new patient record.
- PUT: Replaces an existing patient record.
- PATCH: Updates specific fields.
Clients MUST include a corresponding
Provenanceresource with updates for audit and traceability.
| Conformance | Parameter | Type | Documentation |
|---|---|---|---|
| SHALL | identifier | token | |
| SHALL | firstname | string | |
| SHALL | lastname | string | |
| SHALL | birthdate | date | |
| SHALL | gender | token | |
| SHALL | state | token |
| Conformance | Operation | Documentation |
|---|---|---|
| SHALL | $submit | |
| SHALL | $export | |
| SHALL | $validate |
read, search-type, create, update, patch.The
NgImmImmunizationprofile is used to record administered vaccine doses.
- POST: Submits a new immunization event.
- PUT: Replaces an existing record, e.g. to correct a mistake.
- PATCH: Updates specific fields such as status or encounter.
Provenance SHOULD be included for automated or third-party updates.
| Conformance | Parameter | Type | Documentation |
|---|---|---|---|
| SHALL | patient | reference | |
| SHALL | status | token | |
| SHALL | vaccine-code | token | |
| SHALL | date | date |
| Conformance | Operation | Documentation |
|---|---|---|
| SHALL | $submit | |
| SHALL | $export | |
| SHALL | $validate |
read, search-type, create, update.The
NgImmBundleprofile is used to group Patient, Immunization, and related resources into a single package.
- POST: Submits a new Bundle (e.g. during mobile sync).
- PUT: Replaces the entire bundle for corrected batch uploads.
PATCH is not supported on Bundles.
| Conformance | Parameter | Type | Documentation |
|---|---|---|---|
| SHALL | type | token | |
| SHALL | timestamp | date | |
| SHALL | identifier | token |
| Conformance | Operation | Documentation |
|---|---|---|
| SHALL | $submit | |
| SHALL | $export | |
| SHALL | $validate |
Used to track and audit updates made to Patient or Immunization resources. Clients are expected to include this when submitting PUT or PATCH requests for sensitive records.
| Conformance | Parameter | Type | Documentation |
|---|---|---|---|
| SHALL | target | reference |
{
"resourceType": "CapabilityStatement",
"id": "NgImmCapabilityStatementServer",
"text": {
"status": "extensions",
"div": "<!-- snip (see above) -->"
},
"url": "http://nphcda.gov.ng/ig/immunization/CapabilityStatement/NgImmCapabilityStatementServer",
"version": "1.0.0",
"title": "NG-Imm Server CapabilityStatement",
"status": "active",
"date": "2025-08-03",
"publisher": "https://nphcda.gov.ng",
"contact": [
{
"name": "https://nphcda.gov.ng",
"telecom": [
{
"system": "url",
"value": "https://nphcda.gov.ng"
},
{
"system": "email",
"value": "kasim.sani@nphcda.gov.ng"
}
]
},
{
"name": "Nigeria Primary Healthcare Development Agency.",
"telecom": [
{
"system": "email",
"value": "ig@nphcda.gov.ng",
"use": "work"
}
]
}
],
"description": "This CapabilityStatement describes the expected behavior of FHIR servers implementing Nigeria’s Immunization Implementation Guide (NG-IMM).\n\nIt includes full RESTful support for key profiles (`NgImmPatient`, `NgImmImmunization`, and `NgImmBundle`) and logical model transformations. The server also supports data submission, export, and validation via custom operations, as well as tracking updates through `Provenance`.\n\n#### Use of HTTP Methods:\n- **POST**: Used to create a new resource. The server assigns the resource ID.\n- **PUT**: Used to fully replace an existing resource identified by a known ID.\n- **PATCH**: Used for partial updates to existing resources.\n\n#### Provenance:\nClients MUST include a `Provenance` resource when performing GET, PUT, or PATCH on Server Resources (`NgImmPatient`, `NgImmImmunization`, and `NgImmBundle`) to ensure traceability and support audit trails.",
"jurisdiction": [
{
"coding": [
{
"system": "urn:iso:std:iso:3166",
"code": "NG",
"display": "Nigeria"
}
]
}
],
"kind": "requirements",
"implementation": {
"description": "NG-IMM Immunization Server Implementation",
"url": "https://nphcda.gov.ng/IG"
},
"fhirVersion": "4.0.1",
"format": [
"xml"
],
"rest": [
{
"mode": "server",
"documentation": "The server supports RESTful create, read, update, and search for immunization-related records using the Nigeria Immunization Implementation Guide (NG-IMM).",
"resource": [
{
"type": "Patient",
"profile": "http://nphcda.gov.ng/ig/immunization/StructureDefinition/NgImmPatient",
"documentation": "The `NgImmPatient` profile is used for managing client demographic data.\n\n- **POST**: Creates a new patient record.\n- **PUT**: Replaces an existing patient record.\n- **PATCH**: Updates specific fields.\n\nClients MUST include a corresponding `Provenance` resource with updates for audit and traceability.",
"interaction": [
{
"code": "read"
},
{
"code": "search-type"
},
{
"code": "create"
},
{
"code": "update"
},
{
"code": "patch"
}
],
"searchParam": [
{
"name": "identifier",
"definition": "SearchParameter/Patient-identifier",
"type": "token"
},
{
"name": "firstname",
"definition": "SearchParameter/Patient-firstname",
"type": "string"
},
{
"name": "lastname",
"definition": "SearchParameter/Patient-lastname",
"type": "string"
},
{
"name": "birthdate",
"definition": "SearchParameter/Patient-birthdate",
"type": "date"
},
{
"name": "gender",
"definition": "SearchParameter/Patient-gender",
"type": "token"
},
{
"name": "state",
"definition": "SearchParameter/Patient-state",
"type": "token"
}
],
"operation": [
{
"name": "submit",
"definition": "OperationDefinition/submit-ngimm-patient"
},
{
"name": "export",
"definition": "OperationDefinition/export-ngimm-patient"
},
{
"name": "validate",
"definition": "OperationDefinition/validate-ngimm-patient"
}
]
},
{
"type": "Immunization",
"profile": "http://nphcda.gov.ng/ig/immunization/StructureDefinition/NgImmImmunization",
"documentation": "The `NgImmImmunization` profile is used to record administered vaccine doses.\n\n- **POST**: Submits a new immunization event.\n- **PUT**: Replaces an existing record, e.g. to correct a mistake.\n- **PATCH**: Updates specific fields such as status or encounter.\n\nProvenance SHOULD be included for automated or third-party updates.",
"interaction": [
{
"code": "read"
},
{
"code": "search-type"
},
{
"code": "create"
},
{
"code": "update"
},
{
"code": "patch"
}
],
"searchParam": [
{
"name": "patient",
"definition": "SearchParameter/Immunization-patient",
"type": "reference"
},
{
"name": "status",
"definition": "SearchParameter/Immunization-status",
"type": "token"
},
{
"name": "vaccine-code",
"definition": "SearchParameter/Immunization-vaccine-code",
"type": "token"
},
{
"name": "date",
"definition": "SearchParameter/Immunization-date",
"type": "date"
}
],
"operation": [
{
"name": "submit",
"definition": "OperationDefinition/submit-ngimm-immunization"
},
{
"name": "export",
"definition": "OperationDefinition/export-ngimm-immunization"
},
{
"name": "validate",
"definition": "OperationDefinition/validate-ngimm-immunization"
}
]
},
{
"type": "Bundle",
"profile": "http://nphcda.gov.ng/ig/immunization/StructureDefinition/NgImmBundle",
"documentation": "The `NgImmBundle` profile is used to group Patient, Immunization, and related resources into a single package.\n\n- **POST**: Submits a new Bundle (e.g. during mobile sync).\n- **PUT**: Replaces the entire bundle for corrected batch uploads.\n\nPATCH is not supported on Bundles.",
"interaction": [
{
"code": "read"
},
{
"code": "search-type"
},
{
"code": "create"
},
{
"code": "update"
}
],
"searchParam": [
{
"name": "type",
"definition": "SearchParameter/Bundle-type",
"type": "token"
},
{
"name": "timestamp",
"definition": "SearchParameter/Bundle-timestamp",
"type": "date"
},
{
"name": "identifier",
"definition": "SearchParameter/Bundle-identifier",
"type": "token"
}
],
"operation": [
{
"name": "submit",
"definition": "OperationDefinition/submit-ngimm-bundle"
},
{
"name": "export",
"definition": "OperationDefinition/export-ngimm-bundle"
},
{
"name": "validate",
"definition": "OperationDefinition/validate-ngimm-bundle"
}
]
},
{
"type": "Provenance",
"documentation": "Used to track and audit updates made to Patient or Immunization resources. Clients are expected to include this when submitting PUT or PATCH requests for sensitive records.",
"interaction": [
{
"code": "create"
},
{
"code": "read"
},
{
"code": "search-type"
}
],
"searchParam": [
{
"name": "target",
"definition": "http://hl7.org/fhir/SearchParameter/Provenance-target",
"type": "reference"
}
]
}
],
"operation": [
{
"name": "transformRegisterClientModelToNgImmPatient",
"definition": "OperationDefinition/transform-ngimm-patient"
},
{
"name": "transformAdministerVaccineToImmunization",
"definition": "OperationDefinition/transform-administervaccine-to-immunization"
},
{
"name": "transformAdministerVaccineToAllergy",
"definition": "OperationDefinition/transform-administervaccine-to-allergyintolerance"
},
{
"name": "getMetadata",
"definition": "http://hl7.org/fhir/OperationDefinition/CapabilityStatement"
}
]
}
]
}