NPHCDA Immunization FHIR IG
1.0.0 - ci-build Nigeria flag

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

: NG-Imm Server CapabilityStatement - XML Representation

Active as of 2025-08-03

Raw xml | Download


<CapabilityStatement xmlns="http://hl7.org/fhir">
  <id value="NgImmCapabilityStatementServer"/>
  <text>
    <status value="extensions"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: CapabilityStatement NgImmCapabilityStatementServer</b></p><a name="NgImmCapabilityStatementServer"> </a><a name="hcNgImmCapabilityStatementServer"> </a><h2 id="title">NG-Imm Server CapabilityStatement</h2><ul><li>Implementation Guide Version: 1.0.0 </li><li>FHIR Version: 4.0.1 </li><li>Supported Formats: <code>xml</code></li><li>Supported Patch Formats: </li><li>Published on: 2025-08-03 </li><li>Published by: https://nphcda.gov.ng </li></ul><blockquote class="impl-note"><p><strong>Note to Implementers: FHIR Capabilities</strong></p><p>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.</p></blockquote><h2 id="rest">FHIR RESTful Capabilities</h2><div class="panel panel-default"><div class="panel-heading"><h3 id="mode1" class="panel-title">Mode: <code>server</code></h3></div><div class="panel-body"><div><p>The server supports RESTful create, read, update, and search for immunization-related records using the Nigeria Immunization Implementation Guide (NG-IMM).</p>
</div><div class="lead"><em>Summary of System-wide Interactions</em></div></div></div><h3 id="resourcesCap1">Capabilities by Resource/Profile</h3><h4 id="resourcesSummary1">Summary</h4><p>The summary table lists the resources that are part of this configuration, and for each resource it lists:</p><ul><li>The relevant profiles (if any)</li><li>The interactions supported by each resource (<b><span class="bg-info">R</span></b>ead, <b><span class="bg-info">S</span></b>earch, <b><span class="bg-info">U</span></b>pdate, and <b><span class="bg-info">C</span></b>reate, are always shown, while <b><span class="bg-info">VR</span></b>ead, <b><span class="bg-info">P</span></b>atch, <b><span class="bg-info">D</span></b>elete, <b><span class="bg-info">H</span></b>istory on <b><span class="bg-info">I</span></b>nstance, or <b><span class="bg-info">H</span></b>istory on <b><span class="bg-info">T</span></b>ype are only present if at least one of the resources has support for them.</li><li><span>The required, recommended, and some optional search parameters (if any). </span></li><li>The linked resources enabled for <code>_include</code></li><li>The other resources enabled for <code>_revinclude</code></li><li>The operations on the resource (if any)</li></ul><div class="table-responsive"><table class="table table-condensed table-hover"><thead><tr><th><b>Resource Type</b></th><th><b>Profile</b></th><th class="text-center"><b title="GET a resource (read interaction)">R</b></th><th class="text-center"><b title="GET all set of resources of the type (search interaction)">S</b></th><th class="text-center"><b title="PUT a new resource version (update interaction)">U</b></th><th class="text-center"><b title="PATCH a new resource version (patch interaction)">P</b></th><th class="text-center"><b title="POST a new resource (create interaction)">C</b></th><th><b title="Required and recommended search parameters">Searches</b></th><th><code><b>_include</b></code></th><th><code><b>_revinclude</b></code></th><th><b>Operations</b></th></tr></thead><tbody><tr><td><a href="#Patient1-1">Patient</a></td><td><a href="StructureDefinition-NgImmPatient.html">http://nphcda.gov.ng/ig/immunization/StructureDefinition/NgImmPatient</a></td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center">y</td><td>identifier, firstname, lastname, birthdate, gender, state</td><td/><td/><td><code>$submit</code>, <code>$export</code>, <code>$validate</code></td></tr><tr><td><a href="#Immunization1-2">Immunization</a></td><td><a href="StructureDefinition-NgImmImmunization.html">http://nphcda.gov.ng/ig/immunization/StructureDefinition/NgImmImmunization</a></td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center">y</td><td>patient, status, vaccine-code, date</td><td/><td/><td><code>$submit</code>, <code>$export</code>, <code>$validate</code></td></tr><tr><td><a href="#Bundle1-3">Bundle</a></td><td><a href="StructureDefinition-NgImmBundle.html">http://nphcda.gov.ng/ig/immunization/StructureDefinition/NgImmBundle</a></td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center"/><td class="text-center">y</td><td>type, timestamp, identifier</td><td/><td/><td><code>$submit</code>, <code>$export</code>, <code>$validate</code></td></tr><tr><td><a href="#Provenance1-4">Provenance</a></td><td> </td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center"/><td class="text-center"/><td class="text-center">y</td><td>target</td><td/><td/><td/></tr></tbody></table></div><hr/><div class="panel panel-default"><div class="panel-heading"><h4 id="Patient1-1" class="panel-title"><span style="float: right;">Resource Conformance: supported </span>Patient</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-6"><span class="lead">Base System Profile</span><br/><a href="StructureDefinition-NgImmPatient.html">NG-Imm Patient</a></div><div class="col-lg-3"><span class="lead">Profile Conformance</span><br/><b>SHALL</b></div><div class="col-lg-3"><span class="lead">Reference Policy</span><br/></div></div><p/><div class="row"><div class="col-lg-6"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>read</code>, <code>search-type</code>, <code>create</code>, <code>update</code>, <code>patch</code>.</li></ul></div></div><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>The <code>NgImmPatient</code> profile is used for managing client demographic data.</p>
<ul>
<li><strong>POST</strong>: Creates a new patient record.</li>
<li><strong>PUT</strong>: Replaces an existing patient record.</li>
<li><strong>PATCH</strong>: Updates specific fields.</li>
</ul>
<p>Clients MUST include a corresponding <code>Provenance</code> resource with updates for audit and traceability.</p>
</div></blockquote></div></div><div class="row"><div class="col-lg-7"><span class="lead">Search Parameters</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Parameter</th><th>Type</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td>identifier</td><td><code>token</code></td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>firstname</td><td><code>string</code></td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>lastname</td><td><code>string</code></td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>birthdate</td><td><code>date</code></td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>gender</td><td><code>token</code></td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>state</td><td><code>token</code></td><td><div/></td></tr></tbody></table></div><div class="col-lg-5"> </div></div><div class="row"><div class="col-12"><span class="lead">Extended Operations</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Operation</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td>$submit</td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>$export</td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>$validate</td><td><div/></td></tr></tbody></table></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="Immunization1-2" class="panel-title"><span style="float: right;">Resource Conformance: supported </span>Immunization</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-6"><span class="lead">Base System Profile</span><br/><a href="StructureDefinition-NgImmImmunization.html">NG-Imm Immunization</a></div><div class="col-lg-3"><span class="lead">Profile Conformance</span><br/><b>SHALL</b></div><div class="col-lg-3"><span class="lead">Reference Policy</span><br/></div></div><p/><div class="row"><div class="col-lg-6"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>read</code>, <code>search-type</code>, <code>create</code>, <code>update</code>, <code>patch</code>.</li></ul></div></div><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>The <code>NgImmImmunization</code> profile is used to record administered vaccine doses.</p>
<ul>
<li><strong>POST</strong>: Submits a new immunization event.</li>
<li><strong>PUT</strong>: Replaces an existing record, e.g. to correct a mistake.</li>
<li><strong>PATCH</strong>: Updates specific fields such as status or encounter.</li>
</ul>
<p>Provenance SHOULD be included for automated or third-party updates.</p>
</div></blockquote></div></div><div class="row"><div class="col-lg-7"><span class="lead">Search Parameters</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Parameter</th><th>Type</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td>patient</td><td><code>reference</code></td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>status</td><td><code>token</code></td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>vaccine-code</td><td><code>token</code></td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>date</td><td><code>date</code></td><td><div/></td></tr></tbody></table></div><div class="col-lg-5"> </div></div><div class="row"><div class="col-12"><span class="lead">Extended Operations</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Operation</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td>$submit</td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>$export</td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>$validate</td><td><div/></td></tr></tbody></table></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="Bundle1-3" class="panel-title"><span style="float: right;">Resource Conformance: supported </span>Bundle</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-6"><span class="lead">Base System Profile</span><br/><a href="StructureDefinition-NgImmBundle.html">Nigeria Immunization Bundle</a></div><div class="col-lg-3"><span class="lead">Profile Conformance</span><br/><b>SHALL</b></div><div class="col-lg-3"><span class="lead">Reference Policy</span><br/></div></div><p/><div class="row"><div class="col-lg-6"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>read</code>, <code>search-type</code>, <code>create</code>, <code>update</code>.</li></ul></div></div><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>The <code>NgImmBundle</code> profile is used to group Patient, Immunization, and related resources into a single package.</p>
<ul>
<li><strong>POST</strong>: Submits a new Bundle (e.g. during mobile sync).</li>
<li><strong>PUT</strong>: Replaces the entire bundle for corrected batch uploads.</li>
</ul>
<p>PATCH is not supported on Bundles.</p>
</div></blockquote></div></div><div class="row"><div class="col-lg-7"><span class="lead">Search Parameters</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Parameter</th><th>Type</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td>type</td><td><code>token</code></td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>timestamp</td><td><code>date</code></td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>identifier</td><td><code>token</code></td><td><div/></td></tr></tbody></table></div><div class="col-lg-5"> </div></div><div class="row"><div class="col-12"><span class="lead">Extended Operations</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Operation</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td>$submit</td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>$export</td><td><div/></td></tr><tr><td><b>SHALL</b></td><td>$validate</td><td><div/></td></tr></tbody></table></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="Provenance1-4" class="panel-title"><span style="float: right;">Resource Conformance: supported </span>Provenance</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-4"><span class="lead">Core FHIR Resource</span><br/><a href="http://hl7.org/fhir/R4/provenance.html">Provenance</a></div><div class="col-lg-4"><span class="lead">Reference Policy</span><br/></div><div class="col-lg-4"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>create</code>, <code>read</code>, <code>search-type</code>.</li></ul></div></div><p/><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>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.</p>
</div></blockquote></div></div><div class="row"><div class="col-lg-7"><span class="lead">Search Parameters</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Parameter</th><th>Type</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td><a href="http://hl7.org/fhir/R4/provenance.html#search">target</a></td><td><code>reference</code></td><td><div/></td></tr></tbody></table></div><div class="col-lg-5"> </div></div></div></div></div><h3 id="operationsCap1">Operations</h3><h4 id="operationsSummary1">Use</h4></div>
  </text>
  <url
       value="http://nphcda.gov.ng/ig/immunization/CapabilityStatement/NgImmCapabilityStatementServer"/>
  <version value="1.0.0"/>
  <title value="NG-Imm Server CapabilityStatement"/>
  <status value="active"/>
  <date value="2025-08-03"/>
  <publisher value="https://nphcda.gov.ng"/>
  <contact>
    <name value="https://nphcda.gov.ng"/>
    <telecom>
      <system value="url"/>
      <value value="https://nphcda.gov.ng"/>
    </telecom>
    <telecom>
      <system value="email"/>
      <value value="kasim.sani@nphcda.gov.ng"/>
    </telecom>
  </contact>
  <contact>
    <name value="Nigeria Primary Healthcare Development Agency."/>
    <telecom>
      <system value="email"/>
      <value value="ig@nphcda.gov.ng"/>
      <use value="work"/>
    </telecom>
  </contact>
  <description
               value="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."/>
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166"/>
      <code value="NG"/>
      <display value="Nigeria"/>
    </coding>
  </jurisdiction>
  <kind value="requirements"/>
  <implementation>
    <description value="NG-IMM Immunization Server Implementation"/>
    <url value="https://nphcda.gov.ng/IG"/>
  </implementation>
  <fhirVersion value="4.0.1"/>
  <format value="xml"/>
  <rest>
    <mode value="server"/>
    <documentation
                   value="The server supports RESTful create, read, update, and search for immunization-related records using the Nigeria Immunization Implementation Guide (NG-IMM)."/>
    <resource>
      <type value="Patient"/>
      <profile
               value="http://nphcda.gov.ng/ig/immunization/StructureDefinition/NgImmPatient"/>
      <documentation
                     value="The `NgImmPatient` profile 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 `Provenance` resource with updates for audit and traceability."/>
      <interaction>
        <code value="read"/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
      <interaction>
        <code value="create"/>
      </interaction>
      <interaction>
        <code value="update"/>
      </interaction>
      <interaction>
        <code value="patch"/>
      </interaction>
      <searchParam>
        <name value="identifier"/>
        <definition value="SearchParameter/Patient-identifier"/>
        <type value="token"/>
      </searchParam>
      <searchParam>
        <name value="firstname"/>
        <definition value="SearchParameter/Patient-firstname"/>
        <type value="string"/>
      </searchParam>
      <searchParam>
        <name value="lastname"/>
        <definition value="SearchParameter/Patient-lastname"/>
        <type value="string"/>
      </searchParam>
      <searchParam>
        <name value="birthdate"/>
        <definition value="SearchParameter/Patient-birthdate"/>
        <type value="date"/>
      </searchParam>
      <searchParam>
        <name value="gender"/>
        <definition value="SearchParameter/Patient-gender"/>
        <type value="token"/>
      </searchParam>
      <searchParam>
        <name value="state"/>
        <definition value="SearchParameter/Patient-state"/>
        <type value="token"/>
      </searchParam>
      <operation>
        <name value="submit"/>
        <definition value="OperationDefinition/submit-ngimm-patient"/>
      </operation>
      <operation>
        <name value="export"/>
        <definition value="OperationDefinition/export-ngimm-patient"/>
      </operation>
      <operation>
        <name value="validate"/>
        <definition value="OperationDefinition/validate-ngimm-patient"/>
      </operation>
    </resource>
    <resource>
      <type value="Immunization"/>
      <profile
               value="http://nphcda.gov.ng/ig/immunization/StructureDefinition/NgImmImmunization"/>
      <documentation
                     value="The `NgImmImmunization` profile 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."/>
      <interaction>
        <code value="read"/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
      <interaction>
        <code value="create"/>
      </interaction>
      <interaction>
        <code value="update"/>
      </interaction>
      <interaction>
        <code value="patch"/>
      </interaction>
      <searchParam>
        <name value="patient"/>
        <definition value="SearchParameter/Immunization-patient"/>
        <type value="reference"/>
      </searchParam>
      <searchParam>
        <name value="status"/>
        <definition value="SearchParameter/Immunization-status"/>
        <type value="token"/>
      </searchParam>
      <searchParam>
        <name value="vaccine-code"/>
        <definition value="SearchParameter/Immunization-vaccine-code"/>
        <type value="token"/>
      </searchParam>
      <searchParam>
        <name value="date"/>
        <definition value="SearchParameter/Immunization-date"/>
        <type value="date"/>
      </searchParam>
      <operation>
        <name value="submit"/>
        <definition value="OperationDefinition/submit-ngimm-immunization"/>
      </operation>
      <operation>
        <name value="export"/>
        <definition value="OperationDefinition/export-ngimm-immunization"/>
      </operation>
      <operation>
        <name value="validate"/>
        <definition value="OperationDefinition/validate-ngimm-immunization"/>
      </operation>
    </resource>
    <resource>
      <type value="Bundle"/>
      <profile
               value="http://nphcda.gov.ng/ig/immunization/StructureDefinition/NgImmBundle"/>
      <documentation
                     value="The `NgImmBundle` profile 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."/>
      <interaction>
        <code value="read"/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
      <interaction>
        <code value="create"/>
      </interaction>
      <interaction>
        <code value="update"/>
      </interaction>
      <searchParam>
        <name value="type"/>
        <definition value="SearchParameter/Bundle-type"/>
        <type value="token"/>
      </searchParam>
      <searchParam>
        <name value="timestamp"/>
        <definition value="SearchParameter/Bundle-timestamp"/>
        <type value="date"/>
      </searchParam>
      <searchParam>
        <name value="identifier"/>
        <definition value="SearchParameter/Bundle-identifier"/>
        <type value="token"/>
      </searchParam>
      <operation>
        <name value="submit"/>
        <definition value="OperationDefinition/submit-ngimm-bundle"/>
      </operation>
      <operation>
        <name value="export"/>
        <definition value="OperationDefinition/export-ngimm-bundle"/>
      </operation>
      <operation>
        <name value="validate"/>
        <definition value="OperationDefinition/validate-ngimm-bundle"/>
      </operation>
    </resource>
    <resource>
      <type value="Provenance"/>
      <documentation
                     value="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 value="create"/>
      </interaction>
      <interaction>
        <code value="read"/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
      <searchParam>
        <name value="target"/>
        <definition
                    value="http://hl7.org/fhir/SearchParameter/Provenance-target"/>
        <type value="reference"/>
      </searchParam>
    </resource>
    <operation>
      <name value="transformRegisterClientModelToNgImmPatient"/>
      <definition value="OperationDefinition/transform-ngimm-patient"/>
    </operation>
    <operation>
      <name value="transformAdministerVaccineToImmunization"/>
      <definition
                  value="OperationDefinition/transform-administervaccine-to-immunization"/>
    </operation>
    <operation>
      <name value="transformAdministerVaccineToAllergy"/>
      <definition
                  value="OperationDefinition/transform-administervaccine-to-allergyintolerance"/>
    </operation>
    <operation>
      <name value="getMetadata"/>
      <definition
                  value="http://hl7.org/fhir/OperationDefinition/CapabilityStatement"/>
    </operation>
  </rest>
</CapabilityStatement>