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 Client CapabilityStatement - XML Representation

Active as of 2025-08-03

Raw xml | Download


<CapabilityStatement xmlns="http://hl7.org/fhir">
  <id value="NgImmCapabilityStatementClient"/>
  <text>
    <status value="extensions"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: CapabilityStatement NgImmCapabilityStatementClient</b></p><a name="NgImmCapabilityStatementClient"> </a><a name="hcNgImmCapabilityStatementClient"> </a><h2 id="title">NG-Imm Client 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>client</code></h3></div><div class="panel-body"><div><p>Client systems consuming NG-IMM immunization APIs must support reading, creating, updating, and transforming immunization-related resources via REST and custom operations.</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></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>Clients use the <code>NgImmPatient</code> profile to register new patients or update existing records.</p>
<ul>
<li><strong>POST</strong>: Create new patient.</li>
<li><strong>PUT</strong>: Full replacement of a known patient.</li>
<li><strong>PATCH</strong>: Partial updates (e.g., birthDate, address).</li>
</ul>
<p>Clients should also submit <code>Provenance</code> to attribute responsibility for 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>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>Clients use <code>NgImmImmunization</code> to record or correct vaccine administration events.</p>
<ul>
<li><strong>POST</strong>: Create new immunization record.</li>
<li><strong>PUT</strong>: Replace an existing immunization resource.</li>
<li><strong>PATCH</strong>: Targeted update, e.g. status or performer.</li>
</ul>
<p>Clients may include <code>Provenance</code> if updates are made on behalf of health workers.</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>Used by clients for bulk data sync or submission, e.g. client + doses + allergy info.</p>
<ul>
<li><strong>POST</strong>: Create and submit new bundled data.</li>
<li><strong>PUT</strong>: Replace an existing bundle submission.</li>
<li>PATCH is not supported for bundles.</li>
</ul>
</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><h3 id="operationsCap1">Operations</h3><h4 id="operationsSummary1">Use</h4></div>
  </text>
  <url
       value="http://nphcda.gov.ng/ig/immunization/CapabilityStatement/NgImmCapabilityStatementClient"/>
  <version value="1.0.0"/>
  <title value="NG-Imm Client 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 defines the expected behavior of client systems that interact with NG-IMM FHIR servers in Nigeria’s immunization ecosystem.

Clients must support standard RESTful interactions with NG-IMM-compliant FHIR APIs and use appropriate operations to submit, export, and validate structured data. 
They are also expected to initiate transformation of logical models (e.g. RegisterClientModel, AdministerVaccine) into formal FHIR resources using `$transform`.

#### Use of HTTP Methods:
- **POST**: Used by clients to create new Patient, Immunization, or Bundle resources.
- **PUT**: Used to fully replace an existing resource with updated data.
- **PATCH**: Used to update only specific elements of a resource."/>
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166"/>
      <code value="NG"/>
      <display value="Nigeria"/>
    </coding>
  </jurisdiction>
  <kind value="requirements"/>
  <fhirVersion value="4.0.1"/>
  <format value="xml"/>
  <rest>
    <mode value="client"/>
    <documentation
                   value="Client systems consuming NG-IMM immunization APIs must support reading, creating, updating, and transforming immunization-related resources via REST and custom operations."/>
    <resource>
      <type value="Patient"/>
      <profile
               value="http://nphcda.gov.ng/ig/immunization/StructureDefinition/NgImmPatient"/>
      <documentation
                     value="Clients use the `NgImmPatient` profile to register new patients or update existing records.

- **POST**: Create new patient.
- **PUT**: Full replacement of a known patient.
- **PATCH**: Partial updates (e.g., birthDate, address).

Clients should also submit `Provenance` to attribute responsibility for 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="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="Clients use `NgImmImmunization` to record or correct vaccine administration events.

- **POST**: Create new immunization record.
- **PUT**: Replace an existing immunization resource.
- **PATCH**: Targeted update, e.g. status or performer.

Clients may include `Provenance` if updates are made on behalf of health workers."/>
      <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="Used by clients for bulk data sync or submission, e.g. client + doses + allergy info.

- **POST**: Create and submit new bundled data.
- **PUT**: Replace an existing bundle submission.
- PATCH is not supported for 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>
    <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>