-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathimmunisation-fhir-api.yaml
More file actions
5968 lines (5590 loc) · 269 KB
/
immunisation-fhir-api.yaml
File metadata and controls
5968 lines (5590 loc) · 269 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
openapi: 3.0.0
info:
title: Immunization-fhir-api
version: 1.0.0
license:
name: MIT
url: https://opensource.org/licenses/MIT
description: >
## Overview
Use this API to access a patient's immunisation record. It is part of the
[Vaccinations Data Flow
Management](https://digital.nhs.uk/services/vaccinations-data-flow-management).
It is intended to extend and replace [Immunisation History - FHIR
API](https://digital.nhs.uk/developer/api-catalogue/immunisation-history-fhir)
and existing
[Vaccination](https://digital.nhs.uk/developer/api-catalogue/vaccination)
flows.
You can use this API to:
- create and record a patient immunisation
- search for a patient's immunisation records
- get the details of an immunisation record
- update an immunisation record
- identify an immunisation record as entered in error
You cannot use this API to:
- retrieve the immunisation record of multiple patients at once
- record or update a patient's demographic details
You can create, read, update and delete events for the following vaccination
types:
- coronavirus (`COVID`)
- human papillomavirus (`HPV`)
- herpes zoster (`SHINGLES`)
- influenza (`FLU`)
- measles, mumps and rubella (`MMR`)
- measles, mumps, rubella and varicella (`MMRV`)
- meningococcal infectious disease (`MENACWY`)
- pertussis (`PERTUSSIS`)
- pneumococcal infectious disease (`PNEUMOCOCCAL`)
- respiratory syncytial virus infection (`RSV`)
- tetanus, diphtheria and polio (`3IN1`)
### Data availability, timing and quality
This is a real-time service, constrained by the time taken for providers to
transfer vaccination events. In most cases, a record will become available
within 48 hours of the immunisation event.
The API search interaction will only return immunisation records based on a
traced NHS number. Other interactions require the use of the immunisation ID
assigned by the API to interact with individual records for read, update and
delete.
The vaccination events for all disease types are limited to vaccinations
administered on behalf of NHS England.
There is a limited scope of data validation upon receipt of the data. Whilst
the data is generally of a good, reliable quality, consumers must be aware
that data is shared as received, and users should consider the risk of
potential absences or inaccuracies of the data.
## Who can use this API
This API can only be used where there is a commercial, legal and clinical
basis to do so. Make sure you have a valid use case before you go too far
with your development.
You must demonstrate you have a valid use case as part of digital
onboarding.
You must do this before you can go live (see
[Onboarding](https://digital.nhs.uk/developer/api-catalogue/immunisation-fhir-api#overview--onboarding)
below).
### Who can access immunisation event records
Health and care organisations in England can access immunisation event
records.
Legitimate direct care examples include NHS organisations delivering
healthcare, local authorities delivering care, third sector and private
sector health and care organisations, and developers delivering systems to
health and care organisations.
## API status and roadmap
The current roadmap includes enhancements to support all vaccines covered by
the national Section 7a immunisation programme.
This API is in
[Beta](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#statuses)
for the following vaccine types:
- respiratory syncytial virus (RSV)
- influenza
- human papillomavirus (HPV)
This API is in development for the following vaccine types:
- Measles, Mumps and Rubella (MMR)
- MenACWY
- diphtheria, tetanus and polio (3-in-1)
This API will be configured to support all other section 7a vaccines from
early 2026 onwards, adding support for the following vaccine types:
- pneumococcal
- shingles
- pertussis
- coronavirus (COVID-19) vaccinations
- MMRV
- diphtheria / tetanus / acellular pertussis / inactivated polio vaccine /
haemophilus influenzae type b / hepatitis B (6-in-1)
- rotavirus
- meningococcal (MenB)
- diphtheria / tetanus / acellular pertussis / inactivated polio vaccine
(4-in-1)
- haemophilus influenzae type b / meningococcal group C (Hib/MenC)
- Bacillus Calmette-Guérin (BCG)
- hepatitis B
To suggest new features, comment, or if you have any other queries, [contact
us](https://digital.nhs.uk/developer/help-and-support).
## Service level
This API will be a platinum service, meaning it is operational and supported
24 x 7 x 365.
For more details, see [service
levels](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#service-levels).
## Technology
This API is
[RESTful](https://digital.nhs.uk/developer/guides-and-documentation/our-api-technologies#basic-rest).
It conforms to the
[FHIR](https://digital.nhs.uk/developer/guides-and-documentation/our-api-technologies#fhir)
global standard for health care data exchange, specifically to [FHIR R4
(v4.0.1)](https://hl7.org/fhir/r4/), except that it does not support the
[capabilities](http://hl7.org/fhir/R4/http.html#capabilities) interaction.
It includes some country-specific FHIR extensions, which conform to [FHIR UK
Core](https://digital.nhs.uk/services/fhir-uk-core), specifically
[fhir.r4.ukcore.stu2](https://simplifier.net/packages/fhir.r4.ukcore.stu2).
You do not need to know much about FHIR to use this API - FHIR APIs are just
RESTful APIs that follow specific rules.
In particular:
- resource names are capitalised and singular, and use US spellings, for
example `/Immunization` not `/immunisations`
- array names are singular, for example `entry` not `entries` for address
lines
- data items that are country-specific and thus not included in the FHIR
global base resources are usually wrapped in an `extension` object
There are [libraries and SDKs
available](https://digital.nhs.uk/developer/guides-and-documentation/api-technologies-at-nhs-digital#fhir-libraries-and-sdks)
to help with FHIR API integration.
## Network access
This API is available on the internet and, indirectly, on the [Health and
Social Care Network
(HSCN)](https://digital.nhs.uk/services/health-and-social-care-network).
For more details see [Network access for
APIs](https://digital.nhs.uk/developer/guides-and-documentation/network-access-for-apis).
## Security and authorisation
This API currently has a single access mode: [application-restricted
access](https://digital.nhs.uk/developer/guides-and-documentation/security-and-authorisation#application-restricted-apis),
meaning we authenticate the calling application but not the end user.
To use this access mode, use the following security pattern:
- [Application-restricted RESTful API - signed JWT
authentication](https://digital.nhs.uk/developer/guides-and-documentation/security-and-authorisation/application-restricted-restful-apis-signed-jwt-authentication)
## Errors
We use standard HTTP status codes to show whether an API request succeeded
or not. They are usually in the range:
* 200 to 299 if it succeeded, including code 202 if it was accepted by an
API that needs to wait for further action
* 400 to 499 if it failed because of a client error by your application
* 500 to 599 if it failed because of an error on our server
Errors specific to each API are shown in the Endpoints section, under
Response. See our [reference
guide](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#http-status-codes)
for more on errors.
## Open source
You might find the following [open
source](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#open-source)
resources useful:
| Resource |
Description |
Links
|
|---------------------------|----------------------------------------------------------------------|--------------------------------------------------------------------------------|
| Immunisation FHIR API | Source code for the API proxy, sandbox and
specification. | [GitHub
repo](https://github.dev/NHSDigital/immunisation-fhir-api/) |
| FHIR libraries and SDKs | Various open source libraries for integrating
with FHIR APIs. | [FHIR libraries and
SDKs](https://digital.nhs.uk/developer/guides-and-documentation/api-technologies-at-nhs-digital#fhir-libraries-and-sdks)
|
| nhs-number | Python package containing utilities for NHS
numbers including validity checks, normalisation and generation. | [GitHub
repo](https://github.com/uk-fci/nhs-number) \| [Python Package
index](https://pypi.org/project/nhs-number/) \|
[Docs](https://nhs-number.uk-fci.tech/) |
## Environments and Testing
| Environment | Base
URL |
| ----------------- |
--------------------------------------------------------------------- |
| Sandbox |
`https://sandbox.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4`
|
| Integration |
`https://int.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4`
|
| Production |
`https://api.service.nhs.uk/immunisation-fhir-api/FHIR/R4`
|
### Sandbox testing
Our [sandbox
environment](https://digital.nhs.uk/developer/guides-and-documentation/testing#sandbox-testing):
* is for early developer testing
* only covers a limited set of scenarios
* is stateless, so does not actually persist any updates
* is open access, so does not allow you to test authorisation
For details of sandbox test scenarios, or to try out the sandbox using our
'Try this API' feature, see the documentation for each endpoint.
### Integration testing
Our [integration test
environment](https://digital.nhs.uk/developer/guides-and-documentation/testing#integration-testing):
* is for formal integration testing
* is stateful, so persists updates
* includes authorisation, with options for application-restricted
access
For read-only testing, we will provide an Immunisation records test pack
soon.
To test creating, updating and deleting patient vaccination events, you must
set up your own test data.
For more details see [integration testing with our RESTful
APIs](https://digital.nhs.uk/developer/guides-and-documentation/testing#integration-testing-with-our-restful-apis).
## Onboarding
You need to get your software approved by us before it can go live with this
API.
We call this onboarding.
The onboarding process can sometimes be quite long, so it's worth planning
well ahead.
This API is currently in private Beta, but we expect to open it to new
consumers soon. As part of this process, you need to demonstrate that you
can manage risks and that your software conforms technically with the
requirements for this API. Information on this page might impact the design
of your software.
To understand how our online digital onboarding process works, see [digital
onboarding](https://digital.nhs.uk/developer/guides-and-documentation/digital-onboarding#using-the-digital-onboarding-portal).
## Contact us
For help and support connecting to our APIs and to join our developer
community, see [Help and support building healthcare
software](https://digital.nhs.uk/developer/help-and-support).
servers:
- url: "https://sandbox.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4"
description: Sandbox Server
- url: "https://int.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4"
description: Integration Server
paths:
/Immunization:
post:
summary: Record a vaccination given to a patient
operationId: createImmunization
description: >
## Overview
Use this interaction to record the administration of a vaccination. The
immunization resource must include a targetDisease(s) matching the
disease types enabled in this interaction and represented by the correct
SNOMED concept(s) for that disease type. A [code list](https://digital.nhs.uk/developer/guides-and-documentation/building-healthcare-software/vaccinations/coding-for-vaccination-disease-types#how-this-applies-to-vaccinations-submitted-to-the-api)
is provided for supported disease types.
You must be authorised for the create interaction and the disease type
associated with the vaccination event in order to submit a new record.
## Sandbox testing
You can test the following scenarios in our sandbox environment:
| Scenario |
Request
|
Response
|
| ----------------------------------------|
----------------------------------------------------------------------------------------------------------------------------------------------------------------|
------------------------------------------------------------------------|
|
|
|
|
| Record a vaccination event | Valid request as per schema | HTTP Status 201 with immunisation id in response header (location) |
| Bad Request (missing/invalid required element in request body) |
Didn't pass `resourceType` in request body |
HTTP Status 400 Bad Request |
parameters:
- $ref: "#/components/parameters/CorrelationID"
- $ref: "#/components/parameters/RequestID"
requestBody:
content:
application/fhir+json:
schema:
description: A FHIR Immunization resource.
type: object
required:
- resourceType
- contained
- extension
- identifier
- status
- vaccineCode
- patient
- occurrenceDateTime
- recorded
- primarySource
- location
- performer
- protocolApplied
properties:
resourceType:
description: FHIR resource type. Always `Immunization`.
type: string
example: Immunization
meta:
type: object
description: Metadata about the resource.
properties:
versionId:
type: string
pattern: '[A-Za-z0-9\-\.]{1,64}'
description: >-
The version specific identifier, as it appears in the
version portion of the URL. This value changes when the
resource is created, updated, or deleted.
lastUpdated:
type: string
pattern: >-
([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))
description: >-
When the resource last changed - e.g. when the version
changed.
example: "2017-01-01T00:00:00Z"
source:
type: string
description: >-
A uri that identifies the source system of the resource.
This provides a minimal amount of
[Provenance](provenance.html#) information that can be
used to track or differentiate the source of information
in the resource. The source may identify another FHIR
server, document, message, database, etc.
profile:
type: array
items:
type: string
pattern: \S*
description: >-
A list of profiles (references to
[StructureDefinition](structuredefinition.html#)
resources) that this resource claims to conform to.
The URL is a reference to
[StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url).
security:
type: array
items:
$ref: "#/components/schemas/Coding"
tag:
type: array
items:
$ref: "#/components/schemas/Coding"
contained:
type: array
description: >-
Includes any relevant resources as defined within this
specification and referenced from within the resource. A
patient resource SHALL be included.
The schema for Practitioner & Patient are different.
minItems: 1
items:
oneOf:
- type: object
properties:
resourceType:
type: string
description: FHIR resource type. Always `Practitioner`.
enum:
- Practitioner
id:
type: string
description: Logical id of this artifact
name:
type: array
description: The name(s) associated with the practitioner
items:
type: object
properties:
family:
type: string
description: Family name (often called 'Surname')
given:
type: array
description: Given names (not always 'first').
items:
type: string
required:
- resourceType
- id
- type: object
properties:
resourceType:
type: string
description: FHIR resource type. Always `Patient`.
enum:
- Patient
id:
type: string
description: Logical id of this artifact
example: "#Pat1"
identifier:
type: array
description: An identifier for the patient
items:
type: object
properties:
system:
type: string
description: The namespace for the identifier value
value:
type: string
description: >-
The value that is unique.
This SHALL be populated if `system` is
https://fhir.nhs.uk/Id/nhs-number.
name:
type: array
description: >-
Patient name as registered, or as recorded by the
user where the patient record cannot be traced.
There SHOULD be only one instance of name. If more
than one name instance is provided additional
elements SHOULD be populated only so the current,
official name can be determined or otherwise the
current, official name SHALL be the first name
instance. There SHALL be at least one name
instance with both family and given elements
populated.
items:
type: object
properties:
family:
type: string
description: Family name (often called 'Surname')
given:
type: array
description: >-
Patient Forename. Middle names are not to be
included within this field.
There SHOULD only be one given name supplied
in this element.
items:
type: string
required:
- family
- given
gender:
type: string
description: male | female | other | unknown
birthDate:
type: string
description: The date of birth for the individual
address:
type: array
description: >-
There SHOULD be only one instance of address with
only the postalCode element populated. If more
than one address instance is provided the
additional elements SHOULD be populated only so
the current, home post code can be determined or
otherwise the current, home post code SHALL be the
first address instance.
items:
type: object
properties:
postalCode:
type: string
description: >-
Patient residential/home postcode. Value
should be divided into two parts separated
by a single space, e.g. EC1A 1BB
As well as actual post codes, the following
SHOULD be used in other scenarios.
*ZZ99 3VZ No Fixed Abode
*ZZ99 3WZ Address Not Known
*ZZ99 3CZ (England/UK) Address not otherwise specified
The full list is available here:
https://www.england.nhs.uk/wp-content/uploads/2020/04/cam-2021-guidance-v2.1.pdf
required:
- postalCode
required:
- resourceType
- id
- name
- gender
- birthDate
- address
extension:
description: >-
FHIR extension wrapper for the vaccination procedure
performed. Always contains exactly one object.
type: array
minItems: 1
maxItems: 1
items:
type: object
required:
- url
- valueCodeableConcept
properties:
url:
description: >-
URI for the type of extension -
https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure
type: string
example: >-
https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure
valueCodeableConcept:
description: >-
This SHALL be populated with the appropriate SNOMED CT
code (identified by system=http://snomed.info/sct).
This relates to the vaccine that was administered,
typically in the form of a procedure code. The UK Core
IG provides guidance on codes for this extension, but
the provider SHALL ensure the appropriate code and
term is provided.
Additional coding MAY be included provided it is
semantically equivalent to the SNOMED concept.
type: object
required:
- coding
properties:
coding:
description: Wrapper for the vaccination procedure coding.
type: array
items:
type: object
required:
- system
- code
properties:
system:
description: >-
The identification of the code system that
defines the meaning of the symbol in the
code.
type: string
example: "http://snomed.info/sct"
code:
description: A particular code in the system.
type: string
example: "1303503001"
display:
description: Representation defined by the system.
type: string
example: >-
Administration of RSV (respiratory syncytial
virus) vaccine
text:
description: Plain text representation of the concept.
type: string
identifier:
description: >-
A unique identifier assigned to this immunization record.
Only one identifier SHALL be provided.
type: array
minItems: 1
maxItems: 1
items:
type: object
required:
- system
- value
properties:
use:
description: >-
Identifier use as defined by
https://www.hl7.org/fhir/valueset-identifier-use.html.
type: string
enum:
- usual
- official
- temp
- secondary
- old
example: official
system:
description: >-
A URI for the system that has allocated the
vaccination identifier.
type: string
example: >-
https://supplierABC/identifiers/vacc `or`
https://supplierABC/ODSCode_NKO41/identifiers/vacc
value:
description: >-
A unique identifier value within `system`. Ideally
this would be a GUID / UUID.
The value in combination with the system SHALL be
globally unique.
type: string
example: e2154d29-1ead-4830-a513-0d59705078fa
status:
description: >-
Indicates the status of the immunization event.
Only administered vaccination records SHALL be supported:
status = completed.
type: string
enum:
- completed
example: completed
vaccineCode:
description: >-
Vaccine product administered.
Where the vaccine product is known, the dm+d / SNOMED CT
concept for the AMP form SHOULD be provided.
Where a meaningful vaccine code cannot be provided, use one
of the following NullFlavor codes,
NAVU - `Not available`
UNC - `Unencoded`
UNK - `Unknown`
NA - `Not Applicable`
From http://terminology.hl7.org/CodeSystem/v3-NullFlavor
type: object
properties:
coding:
description: Wrapper for the vaccine product details.
type: array
items:
type: object
properties:
system:
description: >-
The identification of the code system that defines
the meaning of the symbol in the code.
type: string
example: "http://snomed.info/sct"
code:
description: SNOMED code for the vaccine product.
type: string
example: "42605811000001109"
display:
description: Description of the vaccine product.
type: string
example: >-
Abrysvo vaccine powder and solvent for solution
for injection 0.5ml vials (Pfizer Ltd)
patient:
description: >-
The patient who received the immunization.
When providing records of a vaccination event (create /
update) and reading a record by its ID, this SHALL be a
reference to a contained patient resource.
type: object
required:
- reference
properties:
reference:
description: Reference of patient from contained section
type: string
example: "#Pat1"
occurrenceDateTime:
description: >-
A dateTime format SHALL be provided. It SHOULD be to the
level of precision as recorded within the source system,
subject to the FHIR rules for dateTime.
Only positive timezone offsets of '+00:00' (GMT) and '+01:00' (BST) are allowed. Where time zone information is required but is not available in the source system the time zone element can be a hardcoded static value of `+00:00`.
type: string
example: "2021-02-07T13:28:17.271000+00:00"
recorded:
description: >-
The date the occurrence of the immunization was first
captured in the record - potentially significantly after the
occurrence of the event.
type: string
example: "2021-02-07T13:28:17.271000+00:00"
primarySource:
description: >-
Set as `TRUE` when the content of the record is based on
information from the person performing the vaccine or who
has clinical responsibility for the vaccination, and the
system can be considered a primary source of the vaccination
event.
Set as `FALSE` when the content of the record is NOT based
on information from the person performing the vaccine or who
has clinical responsibility for the vaccination and the
system should not be treated as a primary source for this
record.
type: boolean
example: true
location:
type: object
description: >-
The service delivery location where the vaccine
administration occurred.
properties:
identifier:
type: object
description: An identifier for the service delivery location.
properties:
system:
description: >-
The system which defines the location. Typically
this will be
https://fhir.nhs.uk/Id/ods-organization-code for a
health setting (ODS use) or
https://fhir.hl7.org.uk/Id/urn-school-number for an
education setting (URN use).
type: string
example: "https://fhir.nhs.uk/Id/ods-organization-code"
value:
description: >-
The ODS or URN code of the location where the
vaccination was administered.
1. For occupational health vaccinations administered
in a hospital trust by an independent healthcare
provider, this SHALL be the ODS code of the hospital
trust.
2. For school vaccinations administered by a School
Aged Immunisation Service provider, this SHALL be
the URN of the school where the vaccination was
administered.
3. For roving teams on care home visits, this SHALL
be the ODS code of the care home, where known.
4. For any other vaccinations, populate with the
same code as provided for `performer` ODS code.
Where the ODS/URN code is unavailable, a default
value of `X99999` MUST be used.
type: string
example: X99999
required:
- system
- value
manufacturer:
description: >-
Manufacturer of vaccine product. This `SHOULD be populated`
where the data is available.
type: object
properties:
display:
description: >-
The free text name of the vaccine manufacturer. This
`SHOULD be populated` where the data is available.
type: string
example: AstraZeneca Ltd
lotNumber:
description: >-
Vaccine batch number. This should be captured at source
ideally via use of automated scanning technology (GS1 GTIN /
NTIN standard).
This `SHOULD be populated` where the data is available.
type: string
example: 4120Z001
expirationDate:
description: >-
Manufacturer expiry date or defrost expiry date of the
vaccine, whichever is earliest. This `SHOULD be populated`
where the data is available.
type: string
example: "2021-04-29"
site:
description: >-
Body site where vaccine was administered. This `SHOULD be
populated` where the data is available.
A SNOMED-CT Concept ID value from UK published reference set
Vaccine body site of administration simple reference set
(1127941000000100) should be used.
type: object
properties:
coding:
description: Wrapper for the vaccination body site details.
type: array
items:
type: object
properties:
system:
description: >-
Coding system used to describe vaccination body
site.
type: string
example: "http://snomed.info/sct"
code:
description: Code for the vaccination body site.
type: string
example: "368208006"
display:
description: Description of the vaccination body site.
type: string
example: Left upper arm structure (body structure)
route:
description: >-
The path by which the vaccine product is taken into the
body. This `SHOULD be populated` where the data is
available.
A SNOMED-CT concept ID value from UK “ePrescribing route of
administration simple reference set (foundation metadata
concept)” (999000051000001100) should be used.
type: object
properties:
coding:
description: Wrapper for the vaccination route details.
type: array
items:
type: object
properties:
system:
description: Coding system used to describe vaccination route.
type: string
example: "http://snomed.info/sct"
code:
description: Code for the vaccination route.
type: string
example: "78421000"
display:
description: Description of the vaccination route.
type: string
example: Intramuscular route (qualifier value)
doseQuantity:
description: >-
The quantity of vaccine product that was administered. This
`SHOULD be populated` where the data is available.
A SNOMED-CT Concept ID value representing the unit of
measure used SHOULD be provided.
type: object
properties:
value:
description: >-
The actual value of the dose amount administered. This
`SHOULD be populated` where the data is available.
For Example,
Comirnaty ® (Pfizer BioNTech):
Full Dose (Primary Course or booster) = 0.3
Fractional Dose (Primary Course) = 0.1
type: number
example: 1
unit:
description: >-
A human-readable form of the unit. This `SHOULD be
populated` where the data is available.
type: string
example: milliliter