FHIR IG analytics| Package | ch.fhir.ig.ch-ekm |
| Resource Type | StructureDefinition |
| Id | StructureDefinition-ChEkmImmunizationForm.json |
| FHIR Version | R4 |
| Source | https://build.fhir.org/ig/ahdis/ch-ekm/StructureDefinition-ChEkmImmunizationForm.html |
| URL | http://fhir.ch/ig/ch-ekm/StructureDefinition/ChEkmImmunizationForm |
| Version | 0.0.1 |
| Status | draft |
| Date | 2026-09-01T15:00:14+00:00 |
| Name | ChEkmImmunizationForm |
| Title | CH EKM Form: Immunization |
| Realm | ch |
| Authority | hl7 |
| Description | Logical model for one row of the form section 'Impfstatus' (vaccination status): which vaccination, whether it was given, with how many doses, when the last dose was given and with which product. One element per form item. |
| Copyright | CC0-1.0 |
| Type | http://fhir.ch/ig/ch-ekm/StructureDefinition/ChEkmImmunizationForm |
| Kind | logical |
No resources found
| ValueSet | ||
| ch.fhir.ig.ch-ekm#current | ChEkmYesNoUnknown | CH EKM Yes No Unknown |
| ch.fhir.ig.ch-term#current | ch-vacd-targetdiseasesandillnessesundergoneforimmunization-vs | CH VACD Target disease and illnesses undergone for immunization |
| ch.fhir.ig.ch-term#current | ch-vacd-vaccines-vs | CH VACD All Swiss Vaccine Codes |
Note: links and images are rebased to the (stated) source
Generated Narrative: StructureDefinition ChEkmImmunizationForm
| Name | Flags | Card. | Type | Description & Constraints |
|---|---|---|---|---|
![]() | 0..* | Base | CH EKM Form: Immunization Instances of this type can be the target of a Reference | |
![]() ![]() | 1..1 | CodeableConcept | The vaccination this row asks about, named by the disease it protects against Binding: CH VACD Target disease and illnesses undergone for immunization (preferred) | |
![]() ![]() | 0..1 | CodeableConcept | Vaccinated? yes / no / unknown (Geimpft?) Binding: CH EKM Yes No Unknown (required) | |
![]() ![]() | 0..1 | positiveInt | Total number of doses received (mit total ___ Dosen) | |
![]() ![]() | 0..1 | dateTime | Date of the last dose (Letzte Dosis, Datum) | |
![]() ![]() | 0..1 | CodeableConcept | Vaccine product / brand name (mit Impfstoff: Markenname) Binding: CH VACD All Swiss Vaccine Codes (preferred) | |
{
"resourceType": "StructureDefinition",
"id": "ChEkmImmunizationForm",
"text": {
"status": "extensions",
"div": "<!-- snip (see above) -->"
},
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics",
"valueCode": "can-be-target"
}
],
"url": "http://fhir.ch/ig/ch-ekm/StructureDefinition/ChEkmImmunizationForm",
"version": "0.0.1",
"name": "ChEkmImmunizationForm",
"title": "CH EKM Form: Immunization",
"status": "draft",
"date": "2026-09-01T15:00:14+00:00",
"publisher": "Federal Office of Public Health FOPH",
"contact": [
{
"name": "Federal Office of Public Health FOPH",
"telecom": [
{
"system": "url",
"value": "https://www.bag.admin.ch/bag/en/home/das-bag/kontakt-standort.html"
}
]
}
],
"description": "Logical model for one row of the form section 'Impfstatus' (vaccination status): which vaccination, whether it was given, with how many doses, when the last dose was given and with which product. One element per form item.",
"jurisdiction": [
{
"coding": [
{
"system": "urn:iso:std:iso:3166",
"code": "CH"
}
]
}
],
"copyright": "CC0-1.0",
"fhirVersion": "4.0.1",
"mapping": [
{
"identity": "immunization-form-to-immunization",
"uri": "http://fhir.ch/ig/ch-ekm/StructureDefinition/ch-ekm-immunization",
"name": "Immunization Form to CH EKM Immunization"
},
{
"identity": "immunization-form-to-vaccination-status",
"uri": "http://fhir.ch/ig/ch-ekm/StructureDefinition/ch-ekm-observation-vaccination-status",
"name": "Immunization Form to CH EKM Vaccination Status Observation"
}
],
"kind": "logical",
"abstract": false,
"type": "http://fhir.ch/ig/ch-ekm/StructureDefinition/ChEkmImmunizationForm",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Base",
"derivation": "specialization",
"snapshot": {
"extension": [
{
"url": "http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version",
"valueString": "4.0.1"
}
],
"element": [
{
"id": "ChEkmImmunizationForm",
"path": "ChEkmImmunizationForm",
"short": "CH EKM Form: Immunization",
"definition": "Logical model for one row of the form section 'Impfstatus' (vaccination status): which vaccination, whether it was given, with how many doses, when the last dose was given and with which product. One element per form item.",
"min": 0,
"max": "*",
"base": {
"path": "Base",
"min": 0,
"max": "*"
},
"isModifier": false,
"mapping": [
{
"identity": "immunization-form-to-immunization",
"map": "Immunization",
"comment": "Maps a row of the 'Impfstatus' form section that was answered 'yes' to the ChEkmImmunization profile. 'no' and 'unknown' map to ChEkmObservationVaccinationStatus instead — see the ImmunizationFormToVaccinationStatus mapping"
},
{
"identity": "immunization-form-to-vaccination-status",
"map": "Observation",
"comment": "Maps a row of the 'Impfstatus' form section that was answered 'no' or 'unknown' to the ChEkmObservationVaccinationStatus profile. 'yes' maps to ChEkmImmunization instead"
}
]
},
{
"id": "ChEkmImmunizationForm.targetDisease",
"path": "ChEkmImmunizationForm.targetDisease",
"short": "The vaccination this row asks about, named by the disease it protects against",
"definition": "The vaccination this row asks about, named by the disease it protects against",
"min": 1,
"max": "1",
"base": {
"path": "ChEkmImmunizationForm.targetDisease",
"min": 1,
"max": "1"
},
"type": [
{
"code": "CodeableConcept"
}
],
"binding": {
"strength": "preferred",
"valueSet": "http://fhir.ch/ig/ch-vacd/ValueSet/ch-vacd-targetdiseasesandillnessesundergoneforimmunization-vs"
},
"mapping": [
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.protocolApplied.targetDisease",
"comment": "The vaccination the row asks about"
},
{
"identity": "immunization-form-to-vaccination-status",
"map": "Observation.component.valueCodeableConcept",
"comment": "The vaccination the row asks about, named by the disease it protects against"
}
]
},
{
"id": "ChEkmImmunizationForm.status",
"path": "ChEkmImmunizationForm.status",
"short": "Vaccinated? yes / no / unknown (Geimpft?)",
"definition": "Vaccinated? yes / no / unknown (Geimpft?)",
"min": 0,
"max": "1",
"base": {
"path": "ChEkmImmunizationForm.status",
"min": 0,
"max": "1"
},
"type": [
{
"code": "CodeableConcept"
}
],
"binding": {
"strength": "required",
"valueSet": "http://fhir.ch/ig/ch-ekm/ValueSet/ChEkmYesNoUnknown"
},
"mapping": [
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.status",
"comment": "Answered 'yes' (373066001): status = completed. This resource exists for no other answer"
},
{
"identity": "immunization-form-to-vaccination-status",
"map": "Observation.valueCodeableConcept",
"comment": "The answer itself: 'no' (373067005) or 'unknown' (261665006). 'yes' produces no Observation"
}
]
},
{
"id": "ChEkmImmunizationForm.doses",
"path": "ChEkmImmunizationForm.doses",
"short": "Total number of doses received (mit total ___ Dosen)",
"definition": "Total number of doses received (mit total ___ Dosen)",
"min": 0,
"max": "1",
"base": {
"path": "ChEkmImmunizationForm.doses",
"min": 0,
"max": "1"
},
"type": [
{
"code": "positiveInt"
}
],
"mapping": [
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.protocolApplied.doseNumberPositiveInt",
"comment": "Total number of doses; this resource describes the last dose of the series, so the last dose's number is the total"
},
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.protocolApplied.doseNumberPositiveInt.extension[dataabsentreason]",
"comment": "Vaccinated without a stated count: asked-unknown"
}
]
},
{
"id": "ChEkmImmunizationForm.lastDoseDate",
"path": "ChEkmImmunizationForm.lastDoseDate",
"short": "Date of the last dose (Letzte Dosis, Datum)",
"definition": "Date of the last dose (Letzte Dosis, Datum)",
"min": 0,
"max": "1",
"base": {
"path": "ChEkmImmunizationForm.lastDoseDate",
"min": 0,
"max": "1"
},
"type": [
{
"code": "dateTime"
}
],
"mapping": [
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.occurrenceDateTime",
"comment": "Date of the last dose"
},
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.occurrenceDateTime.extension[dataabsentreason]",
"comment": "Vaccinated without a stated date: asked-unknown"
}
]
},
{
"id": "ChEkmImmunizationForm.vaccine",
"path": "ChEkmImmunizationForm.vaccine",
"short": "Vaccine product / brand name (mit Impfstoff: Markenname)",
"definition": "Vaccine product / brand name (mit Impfstoff: Markenname)",
"min": 0,
"max": "1",
"base": {
"path": "ChEkmImmunizationForm.vaccine",
"min": 0,
"max": "1"
},
"type": [
{
"code": "CodeableConcept"
}
],
"binding": {
"strength": "preferred",
"valueSet": "http://fhir.ch/ig/ch-vacd/ValueSet/ch-vacd-vaccines-vs"
},
"mapping": [
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.vaccineCode",
"comment": "A picked Swiss vaccine code, or a typed brand name in vaccineCode.text; when nothing was answered, the SNOMED CT vaccine product concept for the target disease"
},
{
"identity": "immunization-form-to-vaccination-status",
"map": "Observation.component.code",
"comment": "The SNOMED CT vaccine product of the row. NOT the answered brand name: the product question is only asked when the answer is 'yes', so this is always the fixed product concept for the row"
}
]
}
]
},
"differential": {
"element": [
{
"id": "ChEkmImmunizationForm",
"path": "ChEkmImmunizationForm",
"short": "CH EKM Form: Immunization",
"definition": "Logical model for one row of the form section 'Impfstatus' (vaccination status): which vaccination, whether it was given, with how many doses, when the last dose was given and with which product. One element per form item.",
"mapping": [
{
"identity": "immunization-form-to-immunization",
"map": "Immunization",
"comment": "Maps a row of the 'Impfstatus' form section that was answered 'yes' to the ChEkmImmunization profile. 'no' and 'unknown' map to ChEkmObservationVaccinationStatus instead — see the ImmunizationFormToVaccinationStatus mapping"
},
{
"identity": "immunization-form-to-vaccination-status",
"map": "Observation",
"comment": "Maps a row of the 'Impfstatus' form section that was answered 'no' or 'unknown' to the ChEkmObservationVaccinationStatus profile. 'yes' maps to ChEkmImmunization instead"
}
]
},
{
"id": "ChEkmImmunizationForm.targetDisease",
"path": "ChEkmImmunizationForm.targetDisease",
"short": "The vaccination this row asks about, named by the disease it protects against",
"definition": "The vaccination this row asks about, named by the disease it protects against",
"min": 1,
"max": "1",
"type": [
{
"code": "CodeableConcept"
}
],
"binding": {
"strength": "preferred",
"valueSet": "http://fhir.ch/ig/ch-vacd/ValueSet/ch-vacd-targetdiseasesandillnessesundergoneforimmunization-vs"
},
"mapping": [
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.protocolApplied.targetDisease",
"comment": "The vaccination the row asks about"
},
{
"identity": "immunization-form-to-vaccination-status",
"map": "Observation.component.valueCodeableConcept",
"comment": "The vaccination the row asks about, named by the disease it protects against"
}
]
},
{
"id": "ChEkmImmunizationForm.status",
"path": "ChEkmImmunizationForm.status",
"short": "Vaccinated? yes / no / unknown (Geimpft?)",
"definition": "Vaccinated? yes / no / unknown (Geimpft?)",
"min": 0,
"max": "1",
"type": [
{
"code": "CodeableConcept"
}
],
"binding": {
"strength": "required",
"valueSet": "http://fhir.ch/ig/ch-ekm/ValueSet/ChEkmYesNoUnknown"
},
"mapping": [
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.status",
"comment": "Answered 'yes' (373066001): status = completed. This resource exists for no other answer"
},
{
"identity": "immunization-form-to-vaccination-status",
"map": "Observation.valueCodeableConcept",
"comment": "The answer itself: 'no' (373067005) or 'unknown' (261665006). 'yes' produces no Observation"
}
]
},
{
"id": "ChEkmImmunizationForm.doses",
"path": "ChEkmImmunizationForm.doses",
"short": "Total number of doses received (mit total ___ Dosen)",
"definition": "Total number of doses received (mit total ___ Dosen)",
"min": 0,
"max": "1",
"type": [
{
"code": "positiveInt"
}
],
"mapping": [
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.protocolApplied.doseNumberPositiveInt",
"comment": "Total number of doses; this resource describes the last dose of the series, so the last dose's number is the total"
},
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.protocolApplied.doseNumberPositiveInt.extension[dataabsentreason]",
"comment": "Vaccinated without a stated count: asked-unknown"
}
]
},
{
"id": "ChEkmImmunizationForm.lastDoseDate",
"path": "ChEkmImmunizationForm.lastDoseDate",
"short": "Date of the last dose (Letzte Dosis, Datum)",
"definition": "Date of the last dose (Letzte Dosis, Datum)",
"min": 0,
"max": "1",
"type": [
{
"code": "dateTime"
}
],
"mapping": [
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.occurrenceDateTime",
"comment": "Date of the last dose"
},
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.occurrenceDateTime.extension[dataabsentreason]",
"comment": "Vaccinated without a stated date: asked-unknown"
}
]
},
{
"id": "ChEkmImmunizationForm.vaccine",
"path": "ChEkmImmunizationForm.vaccine",
"short": "Vaccine product / brand name (mit Impfstoff: Markenname)",
"definition": "Vaccine product / brand name (mit Impfstoff: Markenname)",
"min": 0,
"max": "1",
"type": [
{
"code": "CodeableConcept"
}
],
"binding": {
"strength": "preferred",
"valueSet": "http://fhir.ch/ig/ch-vacd/ValueSet/ch-vacd-vaccines-vs"
},
"mapping": [
{
"identity": "immunization-form-to-immunization",
"map": "Immunization.vaccineCode",
"comment": "A picked Swiss vaccine code, or a typed brand name in vaccineCode.text; when nothing was answered, the SNOMED CT vaccine product concept for the target disease"
},
{
"identity": "immunization-form-to-vaccination-status",
"map": "Observation.component.code",
"comment": "The SNOMED CT vaccine product of the row. NOT the answered brand name: the product question is only asked when the answer is 'yes', so this is always the fixed product concept for the row"
}
]
}
]
}
}