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

StructureMap: StructureMap: AdministerVaccine to FHIR Resources

Official URL: https://nphcda.gov.ng/immunizationIG/StructureMap/adminvaccine-to-immunization Version: 1.0.0
Active as of 2025-08-04 Computable Name: AdministerVaccineToFHIRResources

Map logical AdministerVaccine to NgImmImmunization, NgImmLocation, NgImmPractitioner, and NgImmEncounter profiles

map "https://nphcda.gov.ng/immunizationIG/StructureMap/adminvaccine-to-immunization" = "AdministerVaccineToFHIRResources"

// Map logical AdministerVaccine to NgImmImmunization, NgImmLocation, NgImmPractitioner, and NgImmEncounter profiles

uses "https://nphcda.gov.ng/immunizationIG/StructureDefinition/administervaccine" alias AV as source
uses "https://nphcda.gov.ng/immunizationIG/StructureDefinition/ng-imm-immunization" alias IMM as target
uses "https://nphcda.gov.ng/immunizationIG/StructureDefinition/ng-imm-location" alias LOC as target
uses "https://nphcda.gov.ng/immunizationIG/StructureDefinition/ng-imm-practitioner" alias PRAC as target
uses "https://nphcda.gov.ng/immunizationIG/StructureDefinition/ng-imm-encounter" alias ENC as target

group administerVaccineToImmunization(source AV, target IMM) {
  AV.vaccineType -> IMM.vaccineCode = copy() "vaccineCode";
  AV.contraindicated -> IMM.doNotPerform = copy();
  AV.contraindications -> IMM.reasonCode = copy();
  AV.vaccinationDateTime -> IMM.occurrenceDateTime = copy() "occurrenceDateTime";
  AV.vaccineBatchNumber -> IMM.lotNumber = copy() "lotNumber";
  AV.expirationDate -> IMM.expirationDate = copy();
  AV.siteAdministered -> IMM.site = copy() "site";
  AV.routeOfAdministration -> IMM.route = copy() "route";
  AV.doseQuantity -> IMM.doseQuantity = copy();
}

group administerVaccineToLocation(source AV, target LOC) {
  AV.nameOfHealthFacility -> LOC.name = copy() "locationName";
  AV.facilityType -> LOC.type = copy();
}

group administerVaccineToPractitioner(source AV, target PRAC) {
  AV.healthWorkerIdentifier -> PRAC.identifier.value = copy() "identifier";
}

group administerVaccineToEncounter(source AV, target ENC) {
  AV.sessionType -> ENC.class = copy();
  AV.vaccinationDateTime -> ENC.period.start = copy() "periodStartEnd";
  AV.vaccinationDateTime -> ENC.period.end = copy() "periodEnd";
  AV -> ENC.status = 'finished' "status";
}