NZ Shared Digital Health Record API
1.1.0 - release
NZ Shared Digital Health Record API - Local Development build (v1.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Official URL: https://fhir-ig.digital.health.nz/sdhr/StructureDefinition/SDHRImmunization | Version: 1.1.0 | |||
| Draft as of 2026-07-22 | Computable Name: SDHRImmunization | |||
DRAFT PROFILE: Immunization resource for Shared Digital Health Record. This profile constrains Immunization to the SDHR subset of AIR immunization content. AIR reference: https://healthnz-prm.gitlab.io/air/air-api-fhir-ig/StructureDefinition-air-immunization.html
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | AIRImmunization | Immunization event information Constraints: nz-status-reason-1, nz-status-reason-2, nz-site-1, nz-site-2, nz-route-1, nz-route-2, nz-performer-function-1, nz-performer-function-2, nz-reasonCode-1, nz-reasonCode-2, air-resched-1 |
![]() ![]() |
Σ | 1..1 | id | Unique ID for the immunisation event provided by ImmSOT. |
![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() |
0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required) | |
![]() ![]() ![]() |
0..1 | string | Immunization Facility Mobile Site URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site Constraints: ext-1 | |
![]() ![]() ![]() |
0..1 | (Complex) | AIR Age Given Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-age-given | |
![]() ![]() ![]() |
0..* | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-prf) | AIR Related Person URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension Constraints: ext-1 | |
![]() ![]() ![]() |
0..1 | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-profile) | AIR Serology Report Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension Constraints: ext-1 | |
![]() ![]() ![]() |
0..* | date | AIR Reschedule Date Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date Constraints: ext-1 | |
![]() ![]() ![]() |
0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required) | |
![]() ![]() |
?!Σ | 1..1 | code | completed | entered-in-error | not-done Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization. |
![]() ![]() |
Σ | 1..1 | CodeableConcept | Vaccine product administered Binding: AIR Vaccine Product (preferred) |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system |
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Symbol in syntax defined by the system |
![]() ![]() |
Σ | 1..1 | Reference(Patient) | Who was immunized |
![]() ![]() |
Σ | 1..1 | dateTime | Vaccine administration date |
![]() ![]() |
0..1 | BackboneElement | Protocol followed by the provider | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
1..1 | positiveInt | Dose number within series | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Immunization.status | Base | required | Immunization Status Codes | 📍4.0.1 | FHIR Std. |
| Immunization.vaccineCode | Base | preferred |
AIR Vaccine Product
|
⏿2.0.1 | nzhts.digital.health.nz |
| Id | Grade | Path(s) | Description | Expression |
| air-resched-1 | error | Immunization | Only allow a reschedule date if status NOT DONE and statusReason related to rescheduling. |
extension.where(url = 'https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date').exists() implies status.value = 'not-done' and statusReason.coding.where(code = 'RESCHO' | 'RESREF' | 'RESTC').allTrue()
|
| dom-2 | error | Immunization | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Immunization | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | Immunization | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | Immunization | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Immunization | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| nz-performer-function-1 | error | Immunization | If the performer function has a system, then it must have a code. |
performer.function.coding.system.exists() implies performer.function.coding.code.exists()
|
| nz-performer-function-2 | error | Immunization | If the performer function has a code, then it must have a system. |
performer.function.coding.code.exists() implies performer.function.coding.system.exists()
|
| nz-reasonCode-1 | error | Immunization | If the reasonCode aka indication has a system, then it must have a code. |
reasonCode.coding.system.exists() implies reasonCode.coding.code.exists()
|
| nz-reasonCode-2 | error | Immunization | If the reasonCode aka indication has a code, then it must have a system. |
reasonCode.coding.code.exists() implies reasonCode.coding.system.exists()
|
| nz-route-1 | error | Immunization | If the route of admin has a system, then it must have a code. |
route.coding.system.exists() implies route.coding.code.exists()
|
| nz-route-2 | error | Immunization | if the route of admin has a code, then it must have a system. |
route.coding.code.exists() implies route.coding.system.exists()
|
| nz-site-1 | error | Immunization | If the body site has a system, then it must have a code. |
site.coding.system.exists() implies site.coding.code.exists()
|
| nz-site-2 | error | Immunization | If the body site has a code, then it must have a system. |
site.coding.code.exists() implies site.coding.system.exists()
|
| nz-status-reason-1 | error | Immunization | If the status reason has a system, then it must have a code. |
statusReason.coding.system.exists() implies statusReason.coding.code.exists()
|
| nz-status-reason-2 | error | Immunization | If the status reason has a code, then it must have a system. |
statusReason.coding.code.exists() implies statusReason.coding.system.exists()
|
This structure is derived from AIRImmunization
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | AIRImmunization | Immunization event information | |
![]() ![]() |
1..1 | id | Unique ID for the immunisation event provided by ImmSOT. | |
![]() ![]() |
||||
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
0..1 | AIRPlannedEventMatch | Planned Event Match | |
![]() ![]() ![]() ![]() |
0..1 | AIRPlannedEventMatchQuality | Planned Event Match Quality | |
![]() ![]() ![]() |
0..0 | Identifies where the resource comes from | ||
![]() ![]() ![]() |
0..0 | Profiles this resource claims to conform to | ||
![]() ![]() ![]() |
0..0 | Tags applied to this resource | ||
![]() ![]() |
0..0 | A set of rules under which this content was created | ||
![]() ![]() |
0..0 | Language of the resource content | ||
![]() ![]() |
0..0 | Text summary of the resource, for human interpretation | ||
![]() ![]() |
0..0 | Contained, inline Resources | ||
![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() |
0..0 | Immunization Diluent | ||
![]() ![]() ![]() |
0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required) | |
![]() ![]() ![]() |
0..0 | string | Immunization Facility Mobile Site URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site | |
![]() ![]() ![]() |
0..0 | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-prf) | AIR Related Person URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension | |
![]() ![]() ![]() |
0..0 | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-profile) | AIR Serology Report Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension | |
![]() ![]() ![]() |
0..0 | date | AIR Reschedule Date Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date | |
![]() ![]() |
0..0 | Extension | ||
![]() ![]() |
0..0 | Business identifier | ||
![]() ![]() |
0..0 | When the immunization was first captured in the subject's record | ||
![]() ![]() |
||||
![]() ![]() ![]() |
0..0 | Recommended number of doses for immunity | ||
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | AIRImmunization | Immunization event information Constraints: nz-status-reason-1, nz-status-reason-2, nz-site-1, nz-site-2, nz-route-1, nz-route-2, nz-performer-function-1, nz-performer-function-2, nz-reasonCode-1, nz-reasonCode-2, air-resched-1 |
![]() ![]() |
Σ | 1..1 | id | Unique ID for the immunisation event provided by ImmSOT. |
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() |
0..1 | (Complex) | Data Quality Assessment URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-data-quality-assessment | |
![]() ![]() ![]() ![]() |
0..1 | (Complex) | Planned Event Match URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match | |
![]() ![]() ![]() ![]() |
0..1 | (Complex) | Planned Event Match Quality URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match-quality | |
![]() ![]() ![]() ![]() |
0..1 | string | AIR Created Source System URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-source-system | |
![]() ![]() ![]() ![]() |
0..1 | string | AIR Created By User URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-by | |
![]() ![]() ![]() ![]() |
0..1 | string | AIR Modified Source System URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-source-system | |
![]() ![]() ![]() ![]() |
0..1 | string | AIR Modified By User URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-by | |
![]() ![]() ![]() ![]() |
0..1 | instant | The instant when this resource ID was first associated with content on this server URL: http://hl7.org/fhir/StructureDefinition/firstCreated | |
![]() ![]() ![]() |
Σ | 0..1 | id | Version specific identifier |
![]() ![]() ![]() |
Σ | 0..1 | instant | When the resource version last changed |
![]() ![]() ![]() |
Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System. |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required) | |
![]() ![]() ![]() |
0..1 | string | Immunization Facility Mobile Site URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site Constraints: ext-1 | |
![]() ![]() ![]() |
0..1 | (Complex) | AIR Age Given Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-age-given | |
![]() ![]() ![]() |
0..* | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-prf) | AIR Related Person URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension Constraints: ext-1 | |
![]() ![]() ![]() |
0..1 | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-profile) | AIR Serology Report Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension Constraints: ext-1 | |
![]() ![]() ![]() |
0..* | date | AIR Reschedule Date Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date Constraints: ext-1 | |
![]() ![]() ![]() |
0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required) | |
![]() ![]() |
?!Σ | 1..1 | code | completed | entered-in-error | not-done Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization. |
![]() ![]() |
0..1 | CodeableConcept | Reason not done Binding: AIR Status Reason Code (preferred) | |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept |
![]() ![]() |
Σ | 1..1 | CodeableConcept | Vaccine product administered Binding: AIR Vaccine Product (preferred) |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system |
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Version of the system - if relevant |
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Symbol in syntax defined by the system |
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system |
![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | If this coding was chosen directly by the user |
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept |
![]() ![]() |
Σ | 1..1 | Reference(Patient) | Who was immunized |
![]() ![]() |
Σ | 1..1 | dateTime | Vaccine administration date |
![]() ![]() |
0..1 | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-location) | The location where the immunisation was administered. | |
![]() ![]() |
0..1 | string | Vaccine lot number | |
![]() ![]() |
0..1 | date | Vaccine expiration date | |
![]() ![]() |
0..1 | CodeableConcept | The body site of the vaccine administration (SNOMED code). Binding: AIR Body Site (preferred) | |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept |
![]() ![]() |
0..1 | CodeableConcept | The route of administation of the vaccine. Binding: AIR Route of Administration (preferred) | |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept |
![]() ![]() |
Σ | 0..* | BackboneElement | Who performed event |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | What type of performance was done Binding: AIR Performer Health Worker Function (extensible) |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept |
![]() ![]() ![]() |
Σ | 1..1 | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-practitioner) | Individual or organization who was performing |
![]() ![]() |
0..* | CodeableConcept | Why immunization occurred Binding: AIR Indication Code (preferred) | |
![]() ![]() |
0..* | Reference(Condition | Observation | DiagnosticReport) | Why immunization occurred | |
![]() ![]() |
0..1 | BackboneElement | Protocol followed by the provider | |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
0..1 | string | Name of vaccine series | |
![]() ![]() ![]() |
0..1 | Reference(Organization) | Who is responsible for publishing the recommendations | |
![]() ![]() ![]() |
0..* | CodeableConcept | Vaccine preventatable disease being targetted Binding: ImmunizationTargetDiseaseCodes (example): The vaccine preventable disease the dose is being administered for. | |
![]() ![]() ![]() |
1..1 | positiveInt | Dose number within series | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Immunization.meta.security | Base | extensible | SecurityLabels | 📍4.0.1 | FHIR Std. |
| Immunization.status | Base | required | Immunization Status Codes | 📍4.0.1 | FHIR Std. |
| Immunization.statusReason | Base | preferred |
AIR Status Reason Code
|
⏿2.0.0 | nzhts.digital.health.nz |
| Immunization.vaccineCode | Base | preferred |
AIR Vaccine Product
|
⏿2.0.1 | nzhts.digital.health.nz |
| Immunization.site | Base | preferred |
AIR Body Site
|
⏿2.0.0 | nzhts.digital.health.nz |
| Immunization.route | Base | preferred |
AIR Route of Administration
|
⏿2.0.0 | nzhts.digital.health.nz |
| Immunization.performer.function | Base | extensible |
AIR Performer Health Worker Function
|
⏿2.0.2 | nzhts.digital.health.nz |
| Immunization.reasonCode | Base | preferred |
AIR Indication Code
|
⏿2.0.1 | nzhts.digital.health.nz |
| Immunization.protocolApplied.targetDisease | Base | example | Immunization Target Disease Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| air-resched-1 | error | Immunization | Only allow a reschedule date if status NOT DONE and statusReason related to rescheduling. |
extension.where(url = 'https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date').exists() implies status.value = 'not-done' and statusReason.coding.where(code = 'RESCHO' | 'RESREF' | 'RESTC').allTrue()
|
| dom-2 | error | Immunization | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Immunization | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | Immunization | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | Immunization | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Immunization | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| nz-performer-function-1 | error | Immunization | If the performer function has a system, then it must have a code. |
performer.function.coding.system.exists() implies performer.function.coding.code.exists()
|
| nz-performer-function-2 | error | Immunization | If the performer function has a code, then it must have a system. |
performer.function.coding.code.exists() implies performer.function.coding.system.exists()
|
| nz-reasonCode-1 | error | Immunization | If the reasonCode aka indication has a system, then it must have a code. |
reasonCode.coding.system.exists() implies reasonCode.coding.code.exists()
|
| nz-reasonCode-2 | error | Immunization | If the reasonCode aka indication has a code, then it must have a system. |
reasonCode.coding.code.exists() implies reasonCode.coding.system.exists()
|
| nz-route-1 | error | Immunization | If the route of admin has a system, then it must have a code. |
route.coding.system.exists() implies route.coding.code.exists()
|
| nz-route-2 | error | Immunization | if the route of admin has a code, then it must have a system. |
route.coding.code.exists() implies route.coding.system.exists()
|
| nz-site-1 | error | Immunization | If the body site has a system, then it must have a code. |
site.coding.system.exists() implies site.coding.code.exists()
|
| nz-site-2 | error | Immunization | If the body site has a code, then it must have a system. |
site.coding.code.exists() implies site.coding.system.exists()
|
| nz-status-reason-1 | error | Immunization | If the status reason has a system, then it must have a code. |
statusReason.coding.system.exists() implies statusReason.coding.code.exists()
|
| nz-status-reason-2 | error | Immunization | If the status reason has a code, then it must have a system. |
statusReason.coding.code.exists() implies statusReason.coding.system.exists()
|
This structure is derived from AIRImmunization
Summary
Mandatory: 1 element
Prohibited: 16 elements
Extensions
This structure refers to these extensions:
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | AIRImmunization | Immunization event information Constraints: nz-status-reason-1, nz-status-reason-2, nz-site-1, nz-site-2, nz-route-1, nz-route-2, nz-performer-function-1, nz-performer-function-2, nz-reasonCode-1, nz-reasonCode-2, air-resched-1 |
![]() ![]() |
Σ | 1..1 | id | Unique ID for the immunisation event provided by ImmSOT. |
![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() |
0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required) | |
![]() ![]() ![]() |
0..1 | string | Immunization Facility Mobile Site URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site Constraints: ext-1 | |
![]() ![]() ![]() |
0..1 | (Complex) | AIR Age Given Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-age-given | |
![]() ![]() ![]() |
0..* | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-prf) | AIR Related Person URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension Constraints: ext-1 | |
![]() ![]() ![]() |
0..1 | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-profile) | AIR Serology Report Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension Constraints: ext-1 | |
![]() ![]() ![]() |
0..* | date | AIR Reschedule Date Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date Constraints: ext-1 | |
![]() ![]() ![]() |
0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required) | |
![]() ![]() |
?!Σ | 1..1 | code | completed | entered-in-error | not-done Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization. |
![]() ![]() |
Σ | 1..1 | CodeableConcept | Vaccine product administered Binding: AIR Vaccine Product (preferred) |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system |
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Symbol in syntax defined by the system |
![]() ![]() |
Σ | 1..1 | Reference(Patient) | Who was immunized |
![]() ![]() |
Σ | 1..1 | dateTime | Vaccine administration date |
![]() ![]() |
0..1 | BackboneElement | Protocol followed by the provider | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
1..1 | positiveInt | Dose number within series | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Immunization.status | Base | required | Immunization Status Codes | 📍4.0.1 | FHIR Std. |
| Immunization.vaccineCode | Base | preferred |
AIR Vaccine Product
|
⏿2.0.1 | nzhts.digital.health.nz |
| Id | Grade | Path(s) | Description | Expression |
| air-resched-1 | error | Immunization | Only allow a reschedule date if status NOT DONE and statusReason related to rescheduling. |
extension.where(url = 'https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date').exists() implies status.value = 'not-done' and statusReason.coding.where(code = 'RESCHO' | 'RESREF' | 'RESTC').allTrue()
|
| dom-2 | error | Immunization | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Immunization | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | Immunization | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | Immunization | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Immunization | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| nz-performer-function-1 | error | Immunization | If the performer function has a system, then it must have a code. |
performer.function.coding.system.exists() implies performer.function.coding.code.exists()
|
| nz-performer-function-2 | error | Immunization | If the performer function has a code, then it must have a system. |
performer.function.coding.code.exists() implies performer.function.coding.system.exists()
|
| nz-reasonCode-1 | error | Immunization | If the reasonCode aka indication has a system, then it must have a code. |
reasonCode.coding.system.exists() implies reasonCode.coding.code.exists()
|
| nz-reasonCode-2 | error | Immunization | If the reasonCode aka indication has a code, then it must have a system. |
reasonCode.coding.code.exists() implies reasonCode.coding.system.exists()
|
| nz-route-1 | error | Immunization | If the route of admin has a system, then it must have a code. |
route.coding.system.exists() implies route.coding.code.exists()
|
| nz-route-2 | error | Immunization | if the route of admin has a code, then it must have a system. |
route.coding.code.exists() implies route.coding.system.exists()
|
| nz-site-1 | error | Immunization | If the body site has a system, then it must have a code. |
site.coding.system.exists() implies site.coding.code.exists()
|
| nz-site-2 | error | Immunization | If the body site has a code, then it must have a system. |
site.coding.code.exists() implies site.coding.system.exists()
|
| nz-status-reason-1 | error | Immunization | If the status reason has a system, then it must have a code. |
statusReason.coding.system.exists() implies statusReason.coding.code.exists()
|
| nz-status-reason-2 | error | Immunization | If the status reason has a code, then it must have a system. |
statusReason.coding.code.exists() implies statusReason.coding.system.exists()
|
Differential View
This structure is derived from AIRImmunization
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | AIRImmunization | Immunization event information | |
![]() ![]() |
1..1 | id | Unique ID for the immunisation event provided by ImmSOT. | |
![]() ![]() |
||||
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
0..1 | AIRPlannedEventMatch | Planned Event Match | |
![]() ![]() ![]() ![]() |
0..1 | AIRPlannedEventMatchQuality | Planned Event Match Quality | |
![]() ![]() ![]() |
0..0 | Identifies where the resource comes from | ||
![]() ![]() ![]() |
0..0 | Profiles this resource claims to conform to | ||
![]() ![]() ![]() |
0..0 | Tags applied to this resource | ||
![]() ![]() |
0..0 | A set of rules under which this content was created | ||
![]() ![]() |
0..0 | Language of the resource content | ||
![]() ![]() |
0..0 | Text summary of the resource, for human interpretation | ||
![]() ![]() |
0..0 | Contained, inline Resources | ||
![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() |
0..0 | Immunization Diluent | ||
![]() ![]() ![]() |
0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required) | |
![]() ![]() ![]() |
0..0 | string | Immunization Facility Mobile Site URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site | |
![]() ![]() ![]() |
0..0 | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-prf) | AIR Related Person URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension | |
![]() ![]() ![]() |
0..0 | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-profile) | AIR Serology Report Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension | |
![]() ![]() ![]() |
0..0 | date | AIR Reschedule Date Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date | |
![]() ![]() |
0..0 | Extension | ||
![]() ![]() |
0..0 | Business identifier | ||
![]() ![]() |
0..0 | When the immunization was first captured in the subject's record | ||
![]() ![]() |
||||
![]() ![]() ![]() |
0..0 | Recommended number of doses for immunity | ||
Documentation for this format | ||||
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | AIRImmunization | Immunization event information Constraints: nz-status-reason-1, nz-status-reason-2, nz-site-1, nz-site-2, nz-route-1, nz-route-2, nz-performer-function-1, nz-performer-function-2, nz-reasonCode-1, nz-reasonCode-2, air-resched-1 |
![]() ![]() |
Σ | 1..1 | id | Unique ID for the immunisation event provided by ImmSOT. |
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() |
0..1 | (Complex) | Data Quality Assessment URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-data-quality-assessment | |
![]() ![]() ![]() ![]() |
0..1 | (Complex) | Planned Event Match URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match | |
![]() ![]() ![]() ![]() |
0..1 | (Complex) | Planned Event Match Quality URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match-quality | |
![]() ![]() ![]() ![]() |
0..1 | string | AIR Created Source System URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-source-system | |
![]() ![]() ![]() ![]() |
0..1 | string | AIR Created By User URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-by | |
![]() ![]() ![]() ![]() |
0..1 | string | AIR Modified Source System URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-source-system | |
![]() ![]() ![]() ![]() |
0..1 | string | AIR Modified By User URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-by | |
![]() ![]() ![]() ![]() |
0..1 | instant | The instant when this resource ID was first associated with content on this server URL: http://hl7.org/fhir/StructureDefinition/firstCreated | |
![]() ![]() ![]() |
Σ | 0..1 | id | Version specific identifier |
![]() ![]() ![]() |
Σ | 0..1 | instant | When the resource version last changed |
![]() ![]() ![]() |
Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System. |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required) | |
![]() ![]() ![]() |
0..1 | string | Immunization Facility Mobile Site URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site Constraints: ext-1 | |
![]() ![]() ![]() |
0..1 | (Complex) | AIR Age Given Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-age-given | |
![]() ![]() ![]() |
0..* | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-prf) | AIR Related Person URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension Constraints: ext-1 | |
![]() ![]() ![]() |
0..1 | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-profile) | AIR Serology Report Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension Constraints: ext-1 | |
![]() ![]() ![]() |
0..* | date | AIR Reschedule Date Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date Constraints: ext-1 | |
![]() ![]() ![]() |
0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required) | |
![]() ![]() |
?!Σ | 1..1 | code | completed | entered-in-error | not-done Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization. |
![]() ![]() |
0..1 | CodeableConcept | Reason not done Binding: AIR Status Reason Code (preferred) | |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept |
![]() ![]() |
Σ | 1..1 | CodeableConcept | Vaccine product administered Binding: AIR Vaccine Product (preferred) |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system |
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Version of the system - if relevant |
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Symbol in syntax defined by the system |
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system |
![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | If this coding was chosen directly by the user |
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept |
![]() ![]() |
Σ | 1..1 | Reference(Patient) | Who was immunized |
![]() ![]() |
Σ | 1..1 | dateTime | Vaccine administration date |
![]() ![]() |
0..1 | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-location) | The location where the immunisation was administered. | |
![]() ![]() |
0..1 | string | Vaccine lot number | |
![]() ![]() |
0..1 | date | Vaccine expiration date | |
![]() ![]() |
0..1 | CodeableConcept | The body site of the vaccine administration (SNOMED code). Binding: AIR Body Site (preferred) | |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept |
![]() ![]() |
0..1 | CodeableConcept | The route of administation of the vaccine. Binding: AIR Route of Administration (preferred) | |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept |
![]() ![]() |
Σ | 0..* | BackboneElement | Who performed event |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | What type of performance was done Binding: AIR Performer Health Worker Function (extensible) |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept |
![]() ![]() ![]() |
Σ | 1..1 | Reference(https://standards.digital.health.nz/fhir/air/StructureDefinition/air-practitioner) | Individual or organization who was performing |
![]() ![]() |
0..* | CodeableConcept | Why immunization occurred Binding: AIR Indication Code (preferred) | |
![]() ![]() |
0..* | Reference(Condition | Observation | DiagnosticReport) | Why immunization occurred | |
![]() ![]() |
0..1 | BackboneElement | Protocol followed by the provider | |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
0..1 | string | Name of vaccine series | |
![]() ![]() ![]() |
0..1 | Reference(Organization) | Who is responsible for publishing the recommendations | |
![]() ![]() ![]() |
0..* | CodeableConcept | Vaccine preventatable disease being targetted Binding: ImmunizationTargetDiseaseCodes (example): The vaccine preventable disease the dose is being administered for. | |
![]() ![]() ![]() |
1..1 | positiveInt | Dose number within series | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Immunization.meta.security | Base | extensible | SecurityLabels | 📍4.0.1 | FHIR Std. |
| Immunization.status | Base | required | Immunization Status Codes | 📍4.0.1 | FHIR Std. |
| Immunization.statusReason | Base | preferred |
AIR Status Reason Code
|
⏿2.0.0 | nzhts.digital.health.nz |
| Immunization.vaccineCode | Base | preferred |
AIR Vaccine Product
|
⏿2.0.1 | nzhts.digital.health.nz |
| Immunization.site | Base | preferred |
AIR Body Site
|
⏿2.0.0 | nzhts.digital.health.nz |
| Immunization.route | Base | preferred |
AIR Route of Administration
|
⏿2.0.0 | nzhts.digital.health.nz |
| Immunization.performer.function | Base | extensible |
AIR Performer Health Worker Function
|
⏿2.0.2 | nzhts.digital.health.nz |
| Immunization.reasonCode | Base | preferred |
AIR Indication Code
|
⏿2.0.1 | nzhts.digital.health.nz |
| Immunization.protocolApplied.targetDisease | Base | example | Immunization Target Disease Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| air-resched-1 | error | Immunization | Only allow a reschedule date if status NOT DONE and statusReason related to rescheduling. |
extension.where(url = 'https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date').exists() implies status.value = 'not-done' and statusReason.coding.where(code = 'RESCHO' | 'RESREF' | 'RESTC').allTrue()
|
| dom-2 | error | Immunization | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Immunization | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | Immunization | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | Immunization | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Immunization | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| nz-performer-function-1 | error | Immunization | If the performer function has a system, then it must have a code. |
performer.function.coding.system.exists() implies performer.function.coding.code.exists()
|
| nz-performer-function-2 | error | Immunization | If the performer function has a code, then it must have a system. |
performer.function.coding.code.exists() implies performer.function.coding.system.exists()
|
| nz-reasonCode-1 | error | Immunization | If the reasonCode aka indication has a system, then it must have a code. |
reasonCode.coding.system.exists() implies reasonCode.coding.code.exists()
|
| nz-reasonCode-2 | error | Immunization | If the reasonCode aka indication has a code, then it must have a system. |
reasonCode.coding.code.exists() implies reasonCode.coding.system.exists()
|
| nz-route-1 | error | Immunization | If the route of admin has a system, then it must have a code. |
route.coding.system.exists() implies route.coding.code.exists()
|
| nz-route-2 | error | Immunization | if the route of admin has a code, then it must have a system. |
route.coding.code.exists() implies route.coding.system.exists()
|
| nz-site-1 | error | Immunization | If the body site has a system, then it must have a code. |
site.coding.system.exists() implies site.coding.code.exists()
|
| nz-site-2 | error | Immunization | If the body site has a code, then it must have a system. |
site.coding.code.exists() implies site.coding.system.exists()
|
| nz-status-reason-1 | error | Immunization | If the status reason has a system, then it must have a code. |
statusReason.coding.system.exists() implies statusReason.coding.code.exists()
|
| nz-status-reason-2 | error | Immunization | If the status reason has a code, then it must have a system. |
statusReason.coding.code.exists() implies statusReason.coding.system.exists()
|
This structure is derived from AIRImmunization
Summary
Mandatory: 1 element
Prohibited: 16 elements
Extensions
This structure refers to these extensions:
Other representations of profile: CSV, Excel, Schematron