Immunization Profile

This Immunization profile is part of the set of resource profiles supported by the API Server used with the athenaPractice 12.3 and athenaFlow 9.12 products. It further describes read, search, create and update capabilities of these products.

Overview

This resource captures an immunization event for a patient. It records both events where the vaccine is successfully administered and events where the a vaccine was not given.

Scope and Usage

This profile is used to define the content that will be returned by the API Server in response to requests to access Immunization resources. All elements listed in the differential profile view are Supported, which means that the API Server is capable of supplying these fields from the product database when they have been populated via the product or its APIs.

The profile also defines the content that must be supplied to the API Server in response to requests to populate Immunization resources. Fields which are marked as Mandatory in this profile are those that must be supplied to the API Server in content used to populate a resource.

Source

The Immunization resource is derived from the Immunization tables in athenaPractice and athenaFlow. Specific detail can be found in the Mappings section below.

Supported Operations

The operations supported by this resource are listed below.

Read Operation

Read operations are executed as specified in the HL7 FHIR RESTful API implementation definition. To read a Immunization, an application shall perform an HTTP GET, specifying the identifier of the resources being retrieved.

GET [base]/fhir/Immunization/[id]{?_format=[json|xml]&_summary=[true|data]}

Read Operation Parameters

ParameterDescription
[base]Specifies the base URL of the FHIR Server, e.g., https://cpsapisandbox.virenceaz.com:9443/demoAPIServer
[id]Specifies the identifier of the Immunization resource to retrieve
[_format]Specifies the format of the output and may be xml or json. When present, the _format value overrides the value of the Accept header in the request.
[_summary]Filters the output to include only summary elements (_summary=true) or to omit the generated narrative (_summary=data). Note: If the generated html narrative for the resource is not going to be used by the call, using _summary=data provides slightly improved API response times.

Read Operation HTTP Response Codes

Response CodeDescription
200 OKThe requested resource was found and is contained within the body of the HTTP response.
401 UnauthorizedAuthorization is required for this request, and either the Authorization header is missing or the supplied user credentials in the Authorization header are not valid or have expired. The body of the HTTP response will contain an OperationOutcome resource that indicates that Authorization is required.
404 Not FoundThe requested resource does not exist. The body of the HTTP response will contain an OperationOutcome resource that indicates that the resource could not be found.
500 Server ErrorThe server may return other error codes to indicate other error conditions. The body of the HTTP response will contain an OperationOutcome resource that indicates the nature of the error.

Search Operation

Search operations are executed as specified in the HL7 FHIR RESTful API implementation definition. To search for Immunization resources, an application shall perform an HTTP GET, specifying the query parameters associated with the resource.

GET [base]/fhir/Immunization?{search-parameters}{&_count=[max-results]&_format=[json|xml]&_summary=[true|text|data]}

Search Operation Parameters

ParameterDescription
[base]Specifies the base URL of the FHIR Server, e.g., https://cpsapisandbox.virenceaz.com:9443/demoAPIServer
[_count]Specifies the maximum number of search results to return in a single query. Note: The count of results does not limit the number of additional resources returned via the _include parameter. No more than max-results Immunization resources which match the search criteria will be returned. The API Server has default and maximum limits for the value that can be specified for this parameter. These limits may vary depending upon the client application vendors participation level in the AthenaHealth Partner program. Note: The API Server support the HL7 FHIR Paging capability.
[_format]Specifies the format of the output and may be xml or json. When present, the _format value overrides the value of the Accept header in the request.
[_summary]Filters the output to include only narrative elements (_summary=text), summary elements (_summary=true) or to omit the generated narrative (_summary=data). Note: If the generated html narrative for the resource is not going to be used by the call, using _summary=data provides improved API response times, especially when returning larger result sets.
_id (token )The ID of the resource
_lastUpdated (date )
_lastUpdated-fromnow (quantity )Like _lastUpdated except expressed as a positive or negative offset from the current time in units of time , e.g. _lastUpdated-fromnow=ge7||d for more than seven days in the future or =le-2||mo for less than two months in the past. The unit must be specified.
_security (token )
_tag (token )
date (date )Vaccination (non)-Administration Date
date-fromnow (quantity )Like date except expressed as a positive or negative offset from the current time in units of time , e.g. date-fromnow=ge7||d for more than seven days in the future or =le-2||mo for less than two months in the past. The unit must be specified.
dose-sequence (number )Dose number within series
encounter (reference )
encounter-or-historical (reference )
identifier (token )Business identifier
location (reference )The service delivery location or facility in which the vaccine was / was to be administered
lot-number (string )Vaccine Lot Number
notgiven (token )Administrations which were not given
patient (reference )The patient for the vaccination record
performer (reference )The practitioner who administered the vaccination
reaction (reference )Additional information on reaction
reaction-date (date )When reaction started
reaction-date-fromnow (quantity )Like reaction-date except expressed as a positive or negative offset from the current time in units of time , e.g. reaction-date-fromnow=ge7||d for more than seven days in the future or =le-2||mo for less than two months in the past. The unit must be specified.
reason (token )Why immunization occurred
reason-not-given (token )Explanation of reason vaccination was not administered
status (token )Immunization event status
vaccine-code (token )Vaccine Product Administered

Search Operation HTTP Response Codes

Response CodeDescription
200 OKThe query was performed and any results found are contained within the body of the HTTP response. Note: The search API will return 200 OK when the query itself is successful, regardless of whether or not any matching results were found.
401 UnauthorizedAuthorization is required for this request, and either the Authorization header is missing or the supplied user credentials in the Authorization header are not valid or have expired. The body of the HTTP response will contain an OperationOutcome resource that indicates that Authorization is required.
500 Server ErrorThe server may return other error codes to indicate other error conditions. The body of the HTTP response will contain an OperationOutcome resource that indicates the nature of the error.

Create Operation

Create operations are executed as specified in the HL7 FHIR RESTful API implementation definition. To create a new Immunization resource, an application must perform an HTTP POST, specifying the content of the resource in the body of the request.

POST [base]/fhir/Immunization?{_format=[json|xml]}

Create Operation Parameters

ParameterDescription
[_format]Specifies the format of the output and may be xml or json. When present, the _format value overrides the value of the Accept header in the request.

Create Operation HTTP Response Codes

Response CodeDescription
201 CreatedThe resource was created at the location specified in the HTTP Location header. Note: Unsupported fields will be accepted in a request but will not be persisted to the database. Some fields may be mapped to database specific codes which closely but not perfectly match the input. See the HL7 FHIR specification for more detail on server permitted changes.
400 Bad RequestThe resource could not be parsed, or failed basic validation rules. The body of the HTTP response will contain an OperationOutcome resource that provide more detail about the reason for the failure.
401 UnauthorizedAuthorization is required for this request, and either the Authorization header is missing or the supplied user credentials in the Authorization header are not valid or have expired. The body of the HTTP response will contain an OperationOutcome resource that indicates that Authorization is required.
422 Unprocessable EntityThe proposed resource violated server business rules. For example, a required field may be missing or a field may contain a value that is not supported by the API Server. The body of the HTTP response will contain an OperationOutcome resource that provide more detail about the reason for the failure.
500 Server ErrorThe server may return other error codes to indicate other error conditions. The body of the HTTP response will contain an OperationOutcome resource that indicates the nature of the error.

Update Operation

Update operations are executed as specified in the HL7 FHIR RESTful API implementation definition. To create a new Immunization resource, an application must perform an HTTP PUT, specifying the content of the resource in the body of the request.

PUT [base]/fhir/Immunization/[id]?{_format=[json|xml]}

Update Operation Parameters

ParameterDescription
[_format]Specifies the format of the output and may be xml or json. When present, the _format value overrides the value of the Accept header in the request.

Update Operation HTTP Response Codes

Response CodeDescription
200 OKThe resource was updated at the location specified in the HTTP Location header. Note: Unsupported fields will be accepted in a request but will not be persisted to the database. Some fields may be mapped to database specific codes which closely but not perfectly match the input. See the HL7 FHIR specification for more detail on server permitted changes.
400 Bad RequestThe resource could not be parsed, or failed basic validation rules. The body of the HTTP response will contain an OperationOutcome resource that provide more detail about the reason for the failure.
401 UnauthorizedAuthorization is required for this request, and either the Authorization header is missing or the supplied user credentials in the Authorization header are not valid or have expired. The body of the HTTP response will contain an OperationOutcome resource that indicates that Authorization is required.
422 Unprocessable EntityThe proposed resource violated server business rules. For example, a required field may be missing or a field may contain a value that is not supported by the API Server. The body of the HTTP response will contain an OperationOutcome resource that provide more detail about the reason for the failure.
500 Server ErrorThe server may return other error codes to indicate other error conditions. The body of the HTTP response will contain an OperationOutcome resource that indicates the nature of the error.

Profile Content

The official URL for this profile is:

http://hl7.org/fhir/StructureDefinition/immunization-profile

Immunization event information

Name Flags Card. Type Description & Constraints
.. ImmunizationI0..*Immunization Immunization event information

imm-2: If immunization was administered (wasNotGiven=false) then explanation.reasonNotGiven SHALL be absent.

imm-1: If immunization was not administred (wasNotGiven=true) then there SHALL be no reaction nor explanation.reason present
... metaS 0..1Meta Metadata about the resource
... implicitRules?! 0..1uri A set of rules under which this content was created
... language0..1code Language of the resource content

Binding: IETF BCP-47 (required )
... textI0..1Narrative Text summary of the resource, for human interpretation
... contained0..*Resource Contained, inline Resources
... extension0..1?? [UriType[http://hl7.org/fhir/StructureDefinition/immunization-VFCEligibility]]Extensionhttp://hl7.org/fhir/StructureDefinition/immunization-VFCEligibility
.... extension0..*Extension Additional Content defined by implementations
.... url1..1uri "http://hl7.org/fhir/StructureDefinition/immunization-VFCEligibility"
.... valueString1..1string Value of extension
... modifierExtension?!0..*Extension Extensions that cannot be ignored
... identifierS0..*Identifier External ids for this item
... status?! S1..1code in-progress | on-hold | completed | entered-in-error | stopped

Binding: MedicationAdministrationStatus (required )
... date0..1dateTime Vaccination administration date
... vaccineCode1..1CodeableConcept Vaccine product administered

Binding: Vaccine Administered Value Set (example )
.... extension0..*Extension Additional Content defined by implementations
.... codingCoding Code defined by a terminology system

Slice: Unordered, Closed, by system
.... coding0..2Coding Code defined by a terminology system
.... coding0..1Coding Code defined by a terminology system
.... coding0..1Coding Code defined by a terminology system
.... text0..1string Plain text representation of the concept
... patient1..1Reference (Patient )Who was immunized
... wasNotGiven?!1..1boolean Flag for whether immunization was given
... reported1..1boolean Indicates a self-reported record
... performer0..1Reference (Practitioner )Who administered vaccine
... requester0..1Reference (Practitioner )Who ordered vaccination
... encounter0..1Reference (Encounter )Encounter administered as part of
... manufacturer0..1Reference (Organization )Vaccine manufacturer
... location0..1Reference (Location )Where vaccination occurred
... lotNumber0..1string Vaccine lot number
... expirationDate0..1date Vaccine expiration date
... site0..1CodeableConcept Body site vaccine was administered

Binding: Codes for Immunization Site of Administration (example )
... route0..1CodeableConcept How vaccine entered body

Binding: Immunization Route Codes (example )
... doseQuantityI0..1SimpleQuantity Amount of vaccine administered

qty-3: If a code for the unit is present, the system SHALL also be present

sqty-1: The comparator is not used on a SimpleQuantity
... note0..*Annotation Vaccination notes
... explanation0..1BackboneElement Administration/non-administration reasons
.... extension0..*Extension Additional Content defined by implementations
.... modifierExtension?!0..*Extension Extensions that cannot be ignored
.... reason0..*CodeableConcept Why immunization occurred

Binding: Immunization Reason Codes (example )
.... reasonNotGiven0..*CodeableConcept Why immunization did not occur

Binding: Immunization Reasons for Not Immunizing Codes (example )
... reaction0..*BackboneElement Details of a reaction that follows immunization
.... extension0..*Extension Additional Content defined by implementations
.... modifierExtension?!0..*Extension Extensions that cannot be ignored
.... date0..1dateTime When reaction started
.... detail0..1Reference (Observation )Additional information on reaction
.... reported0..1boolean Indicates self-reported reaction
... vaccinationProtocol0..*BackboneElement What protocol was followed
.... extension0..*Extension Additional Content defined by implementations
.... modifierExtension?!0..*Extension Extensions that cannot be ignored
.... doseSequence1..1positiveInt Dose number within series
.... description0..1string Details of vaccine protocol
.... authority0..1Reference (Organization )Who is responsible for protocol
.... series0..1string Name of vaccine series
.... seriesDoses0..1positiveInt Recommended number of doses for immunity
.... targetDisease1..*CodeableConcept Disease immunized against

Binding: Vaccination Protocol Dose Target Codes (example )
.... doseStatus1..1CodeableConcept Indicates if dose counts towards immunity

Binding: Vaccination Protocol Dose Status codes (example )
.... doseStatusReason0..1CodeableConcept Why dose does (not) count

Binding: Vaccination Protocol Dose Status Reason codes (example )


 

athenaFlow Mapping

The mappings in this section represent the how data stored within athenaFlow is served through the product's APIs. Use of this information is subject to the the API Server Terms and Conditions.

Immunization Profile
ImmunizationImmunization-ProfileFHIR_IMMUNIZATIONVIEW
 ├ id%IMMUNIZATIONGROUPID%
 ├ extensionVFCEligibility
  │ └ valueString%VFCELIGIBILITY%
 ├ identifierExternal Immunization IdentifierMakeIdentifier("U",getSiteSystem("ImmunizationId"),%IMMUNIZATIONGROUPID%)
 ├ statusMapCode(%GIVENSTATUS%, "IMMUNIZATIONGIVENSTATUS")
 ├ dateMakeDateToPrecision(%ADMINISTEREDDATE%,%ADMINISTEREDDATETYPE%)
  │ ├ codingVaccine codes
  │ ├ codingCVX CodeMakeCoding(%CVXCODE%,"http://hl7.org/fhir/sid/cvx", %VACCINENAME%)
  │ └ codingMVX CodeMakeCoding(%MANUFACTURERCODE%,"http://hl7.org/fhir/sid/mvx", %MANUFACTURER%)
 ├ patientMakeReference("PATIENT",%PID%,"Patient")
 ├ wasNotGivenEquals("N",%WASGIVEN%)
 ├ reportedEquals("Y",%HISTORICAL%)
 ├ performerMakeReference("USR",%ADMINISTEREDBYPVID%,"Practitioner")
 ├ encounterMakeReference("DOCUMENT",%SDID%,"Encounter")
 ├ locationMakeReference("LOCREG",%DOCLOCATIONID%,"Location")
 ├ lotNumber%LOTNUMBER%
 ├ expirationDate%EXPIRATIONDATE%
 ├ siteMapConcept(%SITECODE%,"IMMUNIZATIONSITE")
 ├ routeMakeConcept(%ROUTECODE%,"http://ncimeta.nci.nih.gov",%ROUTE%)
 ├ doseQuantityMakeNonZeroQuantity(%ADMINISTEREDDOSE%,%ADMINISTEREDDOSEUNITS%)
 └ noteIfEqual( %WASGIVEN%,"N").Then(MakeAnnotation(%ADMINISTEREDCOMMENTS%))
   ├ reasonIfEqual( %WASGIVEN%,"Y").Then(MakeTextConcept(%ADMINISTEREDCOMMENTS%))
   ├ reasonNotGivenIfEqual( %WASGIVEN%,"N").Then(MakeTextConcept(%REASONNOTGIVEN%))
   ├ dateMakeDateToPrecision(%ADVREACTIONDATETIME%, %ADVREACTIONDATETIMETYPE%)
   ├ detailMakeTextReference(%ADVREACTIONCOMMENTS%)
   ├ doseSequence%SERIES%
   └ description%VACCINEGROUPNAME%