For a full list of available versions, see the Directory of published versions
The Submit Immunization interaction is used to transfer immunization records to the IR. This encompasses both Create and Update.
This transaction involves a request by a Point of Service system to transfer an Immunization Bundle, including a Composition and other linked resources to the IR Solution. The request is received by the IR which stores the received Bundle and returns an HTTP response code and an OperationOutcome resource if applicable.
For example, a user at a HIC site records an Immunization in a Point of Care System. The Point of Care System will extract and assemble the immunization record as per the Ontario Immunization Repository HL7 FHIR Implementation Guide specification and submit it to the IR, where it is available for viewing by other IR Consumers.
Actor: Client Application
Role: Submits an immunization document bundle containing a Composition and linked resources that may be populated with data to the IR Solution.
Actor: IR Solution
Role: Receives and stores Immunization document Bundles from the Client Application.
The FHIR IR specification is based on the HL7 FHIR R4 Create operation.
Immunization Create Request
The Create Request will create a new immunization record based upon information available from the immunization source, if one does not already exist in the repository. If there is already an existing record, the newly submitted version will replace the existing version in the repository.
The Immunization Document Bundle Create Request creates a new resource in a server-assigned location. The create interaction is performed by an HTTP POST command as shown:
POST [base-submit]/Bundle/
Immunization Create Response
Immunization Conditional Update Request
The Conditional Update Request will update an existing immunization record based upon information available from the immunization record source.
PUT [base-submit]/Bundle?[search parameters]
The following parameters shall be used for conditional update:
identifier (Source Submitter ID + Immunization Record ID)Immunization Conditional Updated Response
Example Create Bundle Message
HTTP Method:
POST
Headers:
Content-Type: application/fhir+json
Address:
[base-submit]/Bundle/
Message Body:
[Link to Example Bundle]
| Profile | Immunization Scenario |
|---|---|
| Bundle (Document) | ✓ |
| Composition | ✓ |
| Immunization (Submission) | ✓ |
| Patient (Submission) | ✓ |
| Practitioner (Submission) | ✓ |
| PractitionerRole (Submission) | ✓ |
| Organization (Submission) | ✓ |
| Location (Submission) | ✓ |
| OperationOutcome | ✓ |
| Extension URL | Element | Description |
|---|---|---|
| basedON | Immunization.extension |
References to the MedicationRequest profile on which the immunization is based. |
| Legend |
|---|
| code = OperationOutcome.issue.code |
| severity = OperationOutcome.issue.severity |
| details.coding.code=OperationOutcome.issue.details.coding.code |
| details.coding.display=OperationOutcome.issue.details.coding.display |
| details.text = OperationOutcome.issue.details.coding.text |
| diagnostics = OperationOutcome.issue.diagnostics |
| HTTP Status | Scenario Description | severity | code | details.coding.code | details.coding.display | details.text/diagnostics |
|---|---|---|---|---|---|---|
| 200 OK | Resource successfully updated | |||||
| 201 Created | Resource successfully created (there might be informational or warning findings) | |||||
| 201 Created | Ontario HCN existence in provincial registry | warning | business-rule | FHIR_PTNT_2002 | HCN does not exist in PCR | |
| 201 Created | Ontario HCN validity | warning | business-rule | FHIR_PTNT_2003 | Multiple patients for provided HCN | |
| 201 Created | Hospital MRN existence in provincial registry | warning | business-rule | FHIR_PTNT_2007 | Hospital MRN does not exist in PCR | |
| 201 Created | Hospital MRN validity | warning | business-rule | FHIR_PTNT_2008 | Multiple patients found for hospital MRN | |
| 201 Created | Provider status in provincial registry | warning | business-rule | FHIR_PROV_2002 | Provider is not active in PPR | |
| 201 Created | Contributed provider first or middle name validity | warning | business-rule | FHIR_PROV_2006 | submitted provider first or middle name %s does not match the provider first or middle name in provincial provider registry %s | |
| 400 Bad Request | Missing security token | error | required | Missing required security token: PIN | ||
| 401 Unauthorized | Failed authentication | error | security | Authorization is required for the interaction that was attempted | ||
| 409 Conflict | Conflict with the current state of a resource | error | processing | Can not create resource of type [X] as it would create a duplicate unique index matching query [X] | ||
| 412 Precondition Failed | Access to the target resource has been denied | error | processing | Failed to UPDATE resource with match URL [X] because this search matched [X] resources | ||
| 422 Content validation | Ontario HCN format validation | error | business-rule | FHIR_PTNT_2001 | Invalid Ontario HCN | |
| 422 Content validation | PCR DOB existence in provincial registry | error | business-rule | FHIR_PTNT_2004 | PCR DOB does not exist | |
| 422 Content validation | Contributed patient DOB validity | error | business-rule | FHIR_PTNT_2005 | Patient DOB does not match PCR DOB | |
| 422 Content validation | Hospital MRN format validity | error | business-rule | FHIR_PTNT_2006 | Hospital MRN format invalid | |
| 422 Content validation | Pharmacy MRN format validity | error | business-rule | FHIR_PTNT_2009 | Pharmacy MRN format invalid | |
| 422 Content validation | Anonymous records not accepted | error | business-rule | FHIR_PTNT_2010 | Anonymous records for Harm Reduction are not accepted by IR. No action required. | |
| 422 Content validation | DOB existence in provincial registry | error | business-rule | FHIR_PTNT_2011 | DOB does not exist in PCR for provided MRN | |
| 422 Content validation | Contributed patient DOB for the MRN validity | error | business-rule | FHIR_PTNT_2012 | Patient DOB provided does not match DOB in PCR for this MRN | |
| 422 Content validation | Patient DOB present in contributed record | error | business-rule | FHIR_PTNT_1001 | Medication administration patient does not have DOB | |
| 422 Content validation | Patient has up to three phone numbers | error | business-rule | FHIR_PTNT_1002 | Patient cannot have more than three phone numbers | |
| 422 Content validation | Patient has one to three addresses | error | business-rule | FHIR_PTNT_1003 | Patient must have at least one address and a maximum of three | |
| 422 Content validation | Provider existence in provincial registry | error | business-rule | FHIR_PROV_2001 | Provider does not exist in PPR | |
| 422 Content validation | Organization status in provincial registry | error | business-rule | FHIR_PROV_2003 | Organization.identifier: <> Pharmacy is inactive in PPR | |
| 422 Content validation | Contributed provider last name validity | error | business-rule | FHIR_PROV_2005 | submitted provider last name, %s, does not match the provider last name in the provincial provider registry, %s | |
| 422 Content validation | Organization contact mandatory | error | business-rule | FHIR_ORG_1001 | Organization phone and fax mandatory for medication dispenses | |
| 422 Content validation | Organization address mandatory | error | business-rule | FHIR_ORG_1002 | Organization address mandatory for medication dispenses | |
| 422 Content validation | Organization submitted not allowed for contributor | error | business-rule | FHIR_ORG_2001 | Organization submitted not allowed for contributor | |
| 422 Content validation | Missing required attribute | error | business-rule | FHIR_IG_1000 | Determined by IG $validate operation | |
| 422 Content validation | Missing required attribute | error | business-rule | IN_0048 | When $validate does not return 200 ok in cdf_datain_fhir_ig_validation_processor | |
| 429 Too Many Requests | Rate Limit | error | throttled | Too Many Requests | ||
| 500 Internal Server Error | Unhandled Exception | fatal | exception | Internal Error |