HL7 FHIR JP Core ImplementationGuide
1.1.0a - ci-build Japan flag

HL7 FHIR JP Core ImplementationGuide - Local Development build (v1.1.0a). See the Directory of published versions

Resource Profile: JP Core Immunization Profile

項目内容
定義URL http://jpfhir.jp/fhir/core/StructureDefinition/JP_Immunization
Version 1.1.0a
Name

JP_Immunization

Title

JP Core Immunization Profile

Status Active ( 2022-09-26 )
Copyright

FHIR Japanese implementation research working group in Japan Association of Medical Informatics (JAMI)

このプロファイルはImmunizationリソースに対して日本での予防接種データを送受信するための制約を加えたものである。


本プロファイルはワクチン接種情報をImmunizationリソースを使用して表現する。 以下、本プロファイルのImmunizationリソースを「JP Core Immunizationリソース」と呼ぶ。

ワクチン接種のFHIR仕様に関しては、先行事例としてはデジタル庁が公開している新型コロナワクチン接種証明書アプリがあるが、スマートフォンでQRコードとして表示できるデータサイズに納めるため、記述されている情報は極めて限定的である。そこで、国内で利用されているそれ以外のワクチン接種関係の文書やAPIなども参考にして記述すべき項目の洗い出しや記述方法の検討を行った。具体的には、母子手帳、Yellow Card、 市町村長が有する接種記録(予防接種台帳)、ワクチン接種記録システム(VRS)、マイナポータル自己情報取得APIを参考にした。既存のImmunizationの要素で記述できない項目については、新たに拡張を定義した。

背景および想定シナリオ

本プロファイルは、以下のようなユースケースを想定している。

  • ワクチン接種の記録を電子的に報告する
  • ポータルサイトから自分自身のワクチン接種の記録を取得する
  • 個人の各種ワクチン接種の記録をEHR/PHRに記録する

スコープ

対象

本プロファイルの対象は各種ワクチンの接種情報を電子的に連携するためのメッセージを記述することである。

対象としないこと

本プロファイルはワクチン以外の一般的な注射薬剤については対象としない。一般的な注射薬剤は、JP Core MedicationRequest Injectionプロファイルで記述することとする。

Usage:

プロファイル詳細

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..*Immunization予防接種
... id 0..1idこのResourceに対する論理ID
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... dueDateOfNextDose 0..1date次回接種予定日
URL: http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_DueDateOfNextDose
... manufacturedDate 0..1date製造年月日
URL: http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_ManufacturedDate
... certificatedDate 0..1date検定年月日
URL: http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_CertificatedDate
... status 1..1codecompleted | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required): 予防接種の現在の状態を表すコード

... statusReason 0..1CodeableConcept実施しなかった理由
... vaccineCode 1..1CodeableConcept接種されたワクチン製剤
Binding: JP Core MedicationCode Immunization ValueSet (preferred)
... patient 1..1Reference(JP Core Patient Profile)予防接種を受けた人
... encounter 0..1Reference(JP Core Encounter Profile)予防接種を受けた診察
... occurrence[x] 1..1dateTime, stringワクチンを接種した日時
... recorded 0..1dateTime予防接種を受けた対象者の記録として最初に記載された日
... reportOrigin 0..1CodeableConcept二次的に報告された記録の発生源を示す
... location 0..1Reference(JP Core Location Profile)ワクチンを接種した場所
... manufacturer 0..1Reference(JP Core Organization Profile)ワクチンメーカー
... lotNumber 0..1stringワクチンのロット番号
... expirationDate 0..1dateワクチンの使用期限
... site 0..1CodeableConceptワクチンが接種された身体部位
... route 0..1CodeableConceptワクチンを接種した経路
... doseQuantity 0..1JP_MedicationSimpleQuantityワクチンの投与量
... performer 0..*BackboneElementワクチン接種を実施した人
.... actor 1..1Reference(JP Core Practitioner Profile | JP Core PractitionerRole Profile | JP Core Organization Profile)Individual or organization who was performing
... note 0..*Annotation予防接種についての補足的記録
... reasonCode 0..*CodeableConcept予防接種を接種した理由
... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)予防接種を実施した理由
... isSubpotent 0..1boolean効力量
... subpotentReason 0..*CodeableConcept効力が減弱する理由
... education 0..*BackboneElement患者に提示された教材
... programEligibility 0..*CodeableConceptワクチン接種計画での患者適格性
... fundingSource 0..1CodeableConceptワクチン接種計画のの資金源
... reaction 0..*BackboneElement予防接種後に起こった反応についての詳細な記録
... protocolApplied 0..*BackboneElement提供者が実施したプロトコール

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..*Immunization予防接種
... id Σ0..1idこのResourceに対する論理ID
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... dueDateOfNextDose 0..1date次回接種予定日
URL: http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_DueDateOfNextDose
... manufacturedDate 0..1date製造年月日
URL: http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_ManufacturedDate
... certificatedDate 0..1date検定年月日
URL: http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_CertificatedDate
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierBusiness identifier
... status ?!Σ1..1codecompleted | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required): 予防接種の現在の状態を表すコード

... statusReason 0..1CodeableConcept実施しなかった理由
Binding: ImmunizationStatusReasonCodes (example): The reason why a vaccine was not administered.

... vaccineCode Σ1..1CodeableConcept接種されたワクチン製剤
Binding: JP Core MedicationCode Immunization ValueSet (preferred)
... patient Σ1..1Reference(JP Core Patient Profile)予防接種を受けた人
... encounter 0..1Reference(JP Core Encounter Profile)予防接種を受けた診察
... occurrence[x] Σ1..1ワクチンを接種した日時
.... occurrenceDateTimedateTime
.... occurrenceStringstring
... recorded 0..1dateTime予防接種を受けた対象者の記録として最初に記載された日
... primarySource Σ0..1booleanIndicates context the data was recorded in
... reportOrigin 0..1CodeableConcept二次的に報告された記録の発生源を示す
Binding: ImmunizationOriginCodes (example): The source of the data for a record which is not from a primary source.

... location 0..1Reference(JP Core Location Profile)ワクチンを接種した場所
... manufacturer 0..1Reference(JP Core Organization Profile)ワクチンメーカー
... lotNumber 0..1stringワクチンのロット番号
... expirationDate 0..1dateワクチンの使用期限
... site 0..1CodeableConceptワクチンが接種された身体部位
Binding: CodesForImmunizationSiteOfAdministration (example): The site at which the vaccine was administered.

... route 0..1CodeableConceptワクチンを接種した経路
Binding: ImmunizationRouteCodes (example): The route by which the vaccine was administered.

... doseQuantity C0..1JP_MedicationSimpleQuantityワクチンの投与量
... performer Σ0..*BackboneElementワクチン接種を実施した人
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function Σ0..1CodeableConceptWhat type of performance was done
Binding: ImmunizationFunctionCodes (extensible): The role a practitioner or organization plays in the immunization event.

.... actor Σ1..1Reference(JP Core Practitioner Profile | JP Core PractitionerRole Profile | JP Core Organization Profile)Individual or organization who was performing
... note Σ0..*Annotation予防接種についての補足的記録
... reasonCode 0..*CodeableConcept予防接種を接種した理由
Binding: ImmunizationReasonCodes (example): The reason why a vaccine was administered.


... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)予防接種を実施した理由
... isSubpotent ?!Σ0..1boolean効力量
... subpotentReason 0..*CodeableConcept効力が減弱する理由
Binding: ImmunizationSubpotentReason (example): The reason why a dose is considered to be subpotent.


... education C0..*BackboneElement患者に提示された教材
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... documentType 0..1stringEducational material document identifier
.... reference 0..1uriEducational material reference pointer
.... publicationDate 0..1dateTimeEducational material publication date
.... presentationDate 0..1dateTimeEducational material presentation date
... programEligibility 0..*CodeableConceptワクチン接種計画での患者適格性
Binding: ImmunizationProgramEligibility (example): The patient's eligibility for a vaccation program.


... fundingSource 0..1CodeableConceptワクチン接種計画のの資金源
Binding: ImmunizationFundingSource (example): The source of funding used to purchase the vaccine administered.

... reaction 0..*BackboneElement予防接種後に起こった反応についての詳細な記録
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... date 0..1dateTimeWhen reaction started
.... detail 0..1Reference(Observation)Additional information on reaction
.... reported 0..1booleanIndicates self-reported reaction
... protocolApplied 0..*BackboneElement提供者が実施したプロトコール
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... series 0..1stringName of vaccine series
.... authority 0..1Reference(Organization)Who is responsible for publishing the recommendations
.... targetDisease 0..*CodeableConceptVaccine preventatable disease being targetted
Binding: ImmunizationTargetDiseaseCodes (example): The vaccine preventable disease the dose is being administered for.


.... doseNumber[x] 1..1Dose number within series
..... doseNumberPositiveIntpositiveInt
..... doseNumberStringstring
.... seriesDoses[x] 0..1Recommended number of doses for immunity
..... seriesDosesPositiveIntpositiveInt
..... seriesDosesStringstring

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Immunization.languagepreferredCommonLanguages
Max Binding: AllLanguages
Immunization.statusrequiredImmunizationStatusCodes
Immunization.statusReasonexampleImmunizationStatusReasonCodes
Immunization.vaccineCodepreferredJP_MedicationCode_Immunization_VS
Immunization.reportOriginexampleImmunizationOriginCodes
Immunization.siteexampleCodesForImmunizationSiteOfAdministration
Immunization.routeexampleImmunizationRouteCodes
Immunization.performer.functionextensibleImmunizationFunctionCodes
Immunization.reasonCodeexampleImmunizationReasonCodes
Immunization.subpotentReasonexampleImmunizationSubpotentReason
Immunization.programEligibilityexampleImmunizationProgramEligibility
Immunization.fundingSourceexampleImmunizationFundingSource
Immunization.protocolApplied.targetDiseaseexampleImmunizationTargetDiseaseCodes

Constraints

IdGradePathDetailsRequirements
dom-2errorImmunizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorImmunizationIf 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-4errorImmunizationIf 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-5errorImmunizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Best PracticeImmunizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1errorImmunization.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.extension:dueDateOfNextDoseAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.extension:dueDateOfNextDoseMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.extension:manufacturedDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.extension:manufacturedDateMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.extension:certificatedDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.extension:certificatedDateMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.statusReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.vaccineCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.patientAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.occurrence[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.recordedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.primarySourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reportOriginAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.locationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.manufacturerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.lotNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.expirationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.siteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.routeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.doseQuantityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
qty-3errorImmunization.doseQuantityIf a code for the unit is present, the system SHALL also be present
: code.empty() or system.exists()
sqty-1errorImmunization.doseQuantityThe comparator is not used on a SimpleQuantity
: comparator.empty()
ele-1errorImmunization.performerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.performer.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.performer.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.performer.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.performer.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.performer.functionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.performer.actorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reasonCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reasonReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.isSubpotentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.subpotentReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.educationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
imm-1errorImmunization.educationOne of documentType or reference SHALL be present
: documentType.exists() or reference.exists()
ele-1errorImmunization.education.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.education.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.education.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.education.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.education.documentTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.education.referenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.education.publicationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.education.presentationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.programEligibilityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.fundingSourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reactionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reaction.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.reaction.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.reaction.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.reaction.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.reaction.dateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reaction.detailAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reaction.reportedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.protocolAppliedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.protocolApplied.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.protocolApplied.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.protocolApplied.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.protocolApplied.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.protocolApplied.seriesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.protocolApplied.authorityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.protocolApplied.targetDiseaseAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.protocolApplied.doseNumber[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.protocolApplied.seriesDoses[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..*Immunization予防接種
... id 0..1idこのResourceに対する論理ID
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... dueDateOfNextDose 0..1date次回接種予定日
URL: http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_DueDateOfNextDose
... manufacturedDate 0..1date製造年月日
URL: http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_ManufacturedDate
... certificatedDate 0..1date検定年月日
URL: http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_CertificatedDate
... status 1..1codecompleted | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required): 予防接種の現在の状態を表すコード

... statusReason 0..1CodeableConcept実施しなかった理由
... vaccineCode 1..1CodeableConcept接種されたワクチン製剤
Binding: JP Core MedicationCode Immunization ValueSet (preferred)
... patient 1..1Reference(JP Core Patient Profile)予防接種を受けた人
... encounter 0..1Reference(JP Core Encounter Profile)予防接種を受けた診察
... occurrence[x] 1..1dateTime, stringワクチンを接種した日時
... recorded 0..1dateTime予防接種を受けた対象者の記録として最初に記載された日
... reportOrigin 0..1CodeableConcept二次的に報告された記録の発生源を示す
... location 0..1Reference(JP Core Location Profile)ワクチンを接種した場所
... manufacturer 0..1Reference(JP Core Organization Profile)ワクチンメーカー
... lotNumber 0..1stringワクチンのロット番号
... expirationDate 0..1dateワクチンの使用期限
... site 0..1CodeableConceptワクチンが接種された身体部位
... route 0..1CodeableConceptワクチンを接種した経路
... doseQuantity 0..1JP_MedicationSimpleQuantityワクチンの投与量
... performer 0..*BackboneElementワクチン接種を実施した人
.... actor 1..1Reference(JP Core Practitioner Profile | JP Core PractitionerRole Profile | JP Core Organization Profile)Individual or organization who was performing
... note 0..*Annotation予防接種についての補足的記録
... reasonCode 0..*CodeableConcept予防接種を接種した理由
... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)予防接種を実施した理由
... isSubpotent 0..1boolean効力量
... subpotentReason 0..*CodeableConcept効力が減弱する理由
... education 0..*BackboneElement患者に提示された教材
... programEligibility 0..*CodeableConceptワクチン接種計画での患者適格性
... fundingSource 0..1CodeableConceptワクチン接種計画のの資金源
... reaction 0..*BackboneElement予防接種後に起こった反応についての詳細な記録
... protocolApplied 0..*BackboneElement提供者が実施したプロトコール

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..*Immunization予防接種
... id Σ0..1idこのResourceに対する論理ID
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... dueDateOfNextDose 0..1date次回接種予定日
URL: http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_DueDateOfNextDose
... manufacturedDate 0..1date製造年月日
URL: http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_ManufacturedDate
... certificatedDate 0..1date検定年月日
URL: http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_CertificatedDate
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierBusiness identifier
... status ?!Σ1..1codecompleted | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required): 予防接種の現在の状態を表すコード

... statusReason 0..1CodeableConcept実施しなかった理由
Binding: ImmunizationStatusReasonCodes (example): The reason why a vaccine was not administered.

... vaccineCode Σ1..1CodeableConcept接種されたワクチン製剤
Binding: JP Core MedicationCode Immunization ValueSet (preferred)
... patient Σ1..1Reference(JP Core Patient Profile)予防接種を受けた人
... encounter 0..1Reference(JP Core Encounter Profile)予防接種を受けた診察
... occurrence[x] Σ1..1ワクチンを接種した日時
.... occurrenceDateTimedateTime
.... occurrenceStringstring
... recorded 0..1dateTime予防接種を受けた対象者の記録として最初に記載された日
... primarySource Σ0..1booleanIndicates context the data was recorded in
... reportOrigin 0..1CodeableConcept二次的に報告された記録の発生源を示す
Binding: ImmunizationOriginCodes (example): The source of the data for a record which is not from a primary source.

... location 0..1Reference(JP Core Location Profile)ワクチンを接種した場所
... manufacturer 0..1Reference(JP Core Organization Profile)ワクチンメーカー
... lotNumber 0..1stringワクチンのロット番号
... expirationDate 0..1dateワクチンの使用期限
... site 0..1CodeableConceptワクチンが接種された身体部位
Binding: CodesForImmunizationSiteOfAdministration (example): The site at which the vaccine was administered.

... route 0..1CodeableConceptワクチンを接種した経路
Binding: ImmunizationRouteCodes (example): The route by which the vaccine was administered.

... doseQuantity C0..1JP_MedicationSimpleQuantityワクチンの投与量
... performer Σ0..*BackboneElementワクチン接種を実施した人
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function Σ0..1CodeableConceptWhat type of performance was done
Binding: ImmunizationFunctionCodes (extensible): The role a practitioner or organization plays in the immunization event.

.... actor Σ1..1Reference(JP Core Practitioner Profile | JP Core PractitionerRole Profile | JP Core Organization Profile)Individual or organization who was performing
... note Σ0..*Annotation予防接種についての補足的記録
... reasonCode 0..*CodeableConcept予防接種を接種した理由
Binding: ImmunizationReasonCodes (example): The reason why a vaccine was administered.


... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)予防接種を実施した理由
... isSubpotent ?!Σ0..1boolean効力量
... subpotentReason 0..*CodeableConcept効力が減弱する理由
Binding: ImmunizationSubpotentReason (example): The reason why a dose is considered to be subpotent.


... education C0..*BackboneElement患者に提示された教材
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... documentType 0..1stringEducational material document identifier
.... reference 0..1uriEducational material reference pointer
.... publicationDate 0..1dateTimeEducational material publication date
.... presentationDate 0..1dateTimeEducational material presentation date
... programEligibility 0..*CodeableConceptワクチン接種計画での患者適格性
Binding: ImmunizationProgramEligibility (example): The patient's eligibility for a vaccation program.


... fundingSource 0..1CodeableConceptワクチン接種計画のの資金源
Binding: ImmunizationFundingSource (example): The source of funding used to purchase the vaccine administered.

... reaction 0..*BackboneElement予防接種後に起こった反応についての詳細な記録
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... date 0..1dateTimeWhen reaction started
.... detail 0..1Reference(Observation)Additional information on reaction
.... reported 0..1booleanIndicates self-reported reaction
... protocolApplied 0..*BackboneElement提供者が実施したプロトコール
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... series 0..1stringName of vaccine series
.... authority 0..1Reference(Organization)Who is responsible for publishing the recommendations
.... targetDisease 0..*CodeableConceptVaccine preventatable disease being targetted
Binding: ImmunizationTargetDiseaseCodes (example): The vaccine preventable disease the dose is being administered for.


.... doseNumber[x] 1..1Dose number within series
..... doseNumberPositiveIntpositiveInt
..... doseNumberStringstring
.... seriesDoses[x] 0..1Recommended number of doses for immunity
..... seriesDosesPositiveIntpositiveInt
..... seriesDosesStringstring

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Immunization.languagepreferredCommonLanguages
Max Binding: AllLanguages
Immunization.statusrequiredImmunizationStatusCodes
Immunization.statusReasonexampleImmunizationStatusReasonCodes
Immunization.vaccineCodepreferredJP_MedicationCode_Immunization_VS
Immunization.reportOriginexampleImmunizationOriginCodes
Immunization.siteexampleCodesForImmunizationSiteOfAdministration
Immunization.routeexampleImmunizationRouteCodes
Immunization.performer.functionextensibleImmunizationFunctionCodes
Immunization.reasonCodeexampleImmunizationReasonCodes
Immunization.subpotentReasonexampleImmunizationSubpotentReason
Immunization.programEligibilityexampleImmunizationProgramEligibility
Immunization.fundingSourceexampleImmunizationFundingSource
Immunization.protocolApplied.targetDiseaseexampleImmunizationTargetDiseaseCodes

Constraints

IdGradePathDetailsRequirements
dom-2errorImmunizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorImmunizationIf 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-4errorImmunizationIf 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-5errorImmunizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Best PracticeImmunizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1errorImmunization.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.extension:dueDateOfNextDoseAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.extension:dueDateOfNextDoseMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.extension:manufacturedDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.extension:manufacturedDateMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.extension:certificatedDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.extension:certificatedDateMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.statusReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.vaccineCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.patientAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.occurrence[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.recordedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.primarySourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reportOriginAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.locationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.manufacturerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.lotNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.expirationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.siteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.routeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.doseQuantityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
qty-3errorImmunization.doseQuantityIf a code for the unit is present, the system SHALL also be present
: code.empty() or system.exists()
sqty-1errorImmunization.doseQuantityThe comparator is not used on a SimpleQuantity
: comparator.empty()
ele-1errorImmunization.performerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.performer.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.performer.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.performer.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.performer.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.performer.functionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.performer.actorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reasonCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reasonReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.isSubpotentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.subpotentReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.educationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
imm-1errorImmunization.educationOne of documentType or reference SHALL be present
: documentType.exists() or reference.exists()
ele-1errorImmunization.education.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.education.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.education.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.education.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.education.documentTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.education.referenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.education.publicationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.education.presentationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.programEligibilityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.fundingSourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reactionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reaction.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.reaction.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.reaction.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.reaction.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.reaction.dateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reaction.detailAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.reaction.reportedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.protocolAppliedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.protocolApplied.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.protocolApplied.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.protocolApplied.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorImmunization.protocolApplied.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorImmunization.protocolApplied.seriesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.protocolApplied.authorityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.protocolApplied.targetDiseaseAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.protocolApplied.doseNumber[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorImmunization.protocolApplied.seriesDoses[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())

 

Other representations of profile: CSV, Excel, Schematron

必須要素

JP Core Immunization リソースは、次の要素を持たなければならない。

  • status
  • vaccineCode
  • patient
  • occurrence[x]

Extensions定義

JP Core Immunization リソースで使用される拡張は次の通りである。

JP Core Immunization独自で追加されたExtension

拡張 説明 定義 値型
DueDateOfNextDose 次回接種予定日 JP_Immunization_DueDateOfNextDose dateTime
ManufacturedDate 製造年月日 JP_Immunization_ManufacturedDate dateTime
CertificatedDate 検定年月日 JP_Immunization_CertificatedDate dateTime

既存のExtensionの利用

既存のExtensionの利用はない。

用語定義

HL7 FHIRの基底規格では、ワクチンコードとして CVX コードが使われているが、日本ではHOTコードやYJコードで一通り使用されているワクチンが定義されているため、国内で利用する際の用語集としては HOTコードとYJコードを採用した。それ以外の用語集の利用を妨げるものではない。

分類 名称 URI
ワクチン HOT9 urn:oid:1.2.392.200119.4.403.1
ワクチン HOT13 urn:oid:1.2.392.100495.20.2.75
ワクチン YJコード urn:oid:1.2.392.100495.20.1.73
対象疾患 MEDIS標準病名マスター病名交換用コード urn:oid:1.2.392.200119.4.101.6

項目の追加

参考にしたワクチン関係の文書やAPIで扱われている項目に合わせ、以下の項目を追加した。

  • 次回接種予定日(拡張「JP_Immunization_DueDateOfNextDose」を使用)
  • 製造年月日(拡張「JP_Immunization_ManufacturedDate」を使用)
  • 検定年月日(拡張「JP_Immunization_CertificatedDate」を使用)

利用方法

Interaction一覧

Search Parameter一覧

コンフォーマンス パラメータ
SHALL identifier token GET [base]/Immunization?identifier=http://myhospital.com/fhir/immunization|1234567890
SHOULD patient reference GET [base]/Immunization?patient=123456
SHOULD patient,date reference,date GET [base]/Immunization?patient=123456&date=eq2013-01-14
MAY date,lot-number date,string GET [base]/Immunization?date=eq2013-01-14
必須検索パラメータ

次の検索パラメータは必須でサポートされなければならない。

  1. identifier 検索パラメータを使用して、オーダIDなどの識別子によるMedicationRequestの検索をサポートしなければならない(SHALL

    GET [base]/Immunization?identifier={system|}[code]
    

    例:

    GET [base]/Immunization?identifier=http://myhospital.com/fhir/medication|1234567890
    

    指定された識別子に一致するImmunizationリソースを含むBundleを検索する。

推奨検索パラメータ

次の検索パラメータをサポートすることが望ましい。

  1. patient 検索パラメータを使用して、患者のリファレンス情報によるImmunizationの検索をサポートすることが望ましい(SHOULD

    GET [base]/Immunization?patient=[id]
    GET [base]/Immunization?patient=[url]
    

    例:

    GET [base]/Immunization?patient=123456
    

    リソースIDが123456の患者のImmunizationリソースを含むBundleを検索する。

  2. patient,date 検索パラメータを使用して、患者のリファレンス情報と接種日によるImmunizationの検索をサポートすることが望ましい(SHOULD

    GET [base]/Immunization?patient=[id]&date=[date]
    GET [base]/Immunization?patient=[url]&date=[date]
    

    例:

    GET [base]/Immunization?patient=123456&date=eq2013-01-14
    

    リソースIDが123456の患者の2013-01-14に服用するImmunizationリソースを含むBundleを検索する。

Operation一覧

JP Immunization リソースに対して使用される操作は次の通りである。

  • $everything:[base]/Immunization/[id]/$everything

    • この操作が呼び出された特定のImmunizationに関連する全ての情報を返す

Operation 詳細

$everything 操作

この操作は、この操作が呼び出された特定のImmunizationリソースに関連する全ての情報を返す。応答は “searchset” タイプのBundleリソースである。サーバは、少なくとも、識別されたImmunizationコンパートメントに含まれる全てのリソースと、それらから参照されるすべてのリソースを返すことが望ましい。

この操作の公式なURLは以下である。

http://hl7.jp/fhir/OperationDefinition/Immunization-everything

URL: [base]/Immunization/[id]/$everything

本操作は、べき等な操作である。

入力パラメータ
名前 多重度 説明
start 0..1 date 特定の日付範囲で提供されたケアに関連する全ての記録を意味する。開始日が指定されていない場合、終了日以前のすべてのレコードが対象に含まれる。
end 0..1 date 特定の日付範囲で提供されたケアに関連する全ての記録を意味する。終了日が指定されていない場合、開始日以降のすべてのレコードが対象に含まれる。
_since 0..1 instant 指定された日時以降に更新されたリソースのみが応答に含まれる。
_type 0..* code 応答に含むFHIRリソース型を、カンマ区切りで指定する。指定されない場合は、サーバは全てのリソース型を対象とする。
_count 0..1 integer Bundleの1ページに含まれるリソース件数を指定。
出力パラメータ
名前 多重度 説明
return 1..1 Bundle バンドルのタイプは”searchset”である。この操作の結果は、リソースとして直接返される。

リクエスト:単一のImmunizationに関連する全てのリソースを取得する。

GET [base]/Immunization/1234567890/$everything
[some headers]

レスポンス:指定されたImmunizationに関連する全てのリソースを返す。

HTTP/1.1 200 OK
[other headers]

{
  "resourceType": "Bundle",
  "id": "example",
  "meta": {
    "lastUpdated": "2014-08-18T01:43:33Z"
  },
  "type": "searchset",
  "entry": [
    {
      "fullUrl": "http://example.org/fhir/Immunization/1234567890",
      "resource": {
        "resourceType": "Immunization",

          ・・・

       },
    }
  ]
}  

サンプル

このワクチン接種例では下記の内容をFHIRで表現する場合について解説する。

項目名 項目値 備考
接種ワクチン コミナティ筋注 (182110901)  
対象疾患 COVID-19 (S9VN)  
接種量 0.45mL  
接種部位 Left arm (LA)  
接種実施者 大阪 一郎  
接種日時 2021/07/01 10:30  
ロット番号 12345678  

注意事項

記述の単位について

Immunizationはワクチンを vaccineCodeとして1つまでしか持つことしかできないので、ワクチン単位でImmunizationリソースを作成する。

ワクチンの種類や製剤名の記述方法について

ワクチンの種類や製剤名は Immunization.vaccineCode要素にCodeableConcept型で記述する。ワクチンを識別するコードは、HOTコード(HOT13を推奨)ないしYJコードを使用する。

"vaccineCode": {
  "coding":  [
    {
      "system": "urn:oid:1.2.392.100495.20.2.75",
      "code": "1820201040101",
      "display": "インフルエンザHAワクチン「第一三共」1mL"
    }
  ]
}

接種年月日の記述方法について

ワクチンを接種した日は Immunization.occurrenceDateTime要素にdateTime型で記述する。日付での記述が難しい場合は、Immunization.occurrenceString要素にテキストで記述してもよい。

Immunization.occurrenceDateTime要素を使用した例:

"occurrenceDateTime": "2022-03-02"

Immunization.occurrenceString要素を使用した例:

"occurrenceString": "6才頃"

記録日時の記述方法について

ワクチン接種の情報を記録した日時は Immunization.recorded要素にdateTime型で記述する。

"recorded": "2022-03-02T10:45:23+09:00"

接種場所の記述方法について

ワクチンの接種場所は Immunization.location要素にReference型でLocationリソースの参照情報を記述する。

"location" : {
  "reference" : "Location/1234"
}

製造会社の記述方法について

ワクチンの製造会社は Immunization.manufacturer要素にReference型でOrganizationリソースの参照情報を記述する。

"manufacturer" : {
  "reference" : "Organization/1234"
}

ワクチンのロット番号の記述方法について

ワクチンのロット番号は Immunization.lotNumber要素にstring型で記述する。

"lotNumber" : "FF3620"

接種部位の記述方法について

ワクチンの接種部位は Immunization.site要素に CodeableConcept型で記述する。部位を識別するコードにはJAMI処方・注射オーダ標準用法規格(外用部位コード) を推奨する

"site": {
  "coding":  [
    {
      "system": "urn:oid:1.2.392.200250.2.2.20.32"
      "code": "74L",
      "display": "左上腕"
    }
  ]
}

摂取量の記述方法について

ワクチンの接種量は Immunization.doseQuantity要素にSimpleQuantity型で記述する。全体の容量をUCUM(“http://unitsofmeasure.org”)を使用してmL単位で指定する。

"doseQuantity": {
  "value": 1,
  "unit": "mL",
  "system": "http://unitsofmeasure.org",
  "code": "mL"
}

接種実施者の記述方法について

ワクチンの接種実施者 Immunization.performer.actor要素にReference型でPractitionerリソースの参照情報を記述する。Immunization.performer.functionにはValueSet “http://hl7.org/fhir/ValueSet/immunization-function”から”AP” (Administering Provider)を指定する。

"performer": [
  {
    "function": {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/v2-0443",
          "code": "AP",
          "display": "Administering Provider"
        }
      ]
    },
    "actor": {
      "reference": "Practitioner/1234"
    }
  }
]

接種を行わなかった理由の記述方法について

ワクチン接種を行わなかった理由を記述したい場合は、Immunization.reasonCode要素にCodeableConcept型で記述する。適当な標準コードが整備されていないため、ローカルコードを定義するか、CodeableConcept.text要素にテキストとして記述する。

"reasonCode": [
  {
    "text": "37.5℃以上の発熱があったため。"
  }
]

予防接種の種類、効果のある疾患の記述方法について

ワクチン接種により感染や重症化を予防できる疾患(記録によっては「予防接種の種類」と呼ばれることもある)は、Immunization.protocolApplied.targetDisease要素にCodeableConcept型で記述する。使用する用語集としては、「診療情報提供書HL7FHIR記述仕様 第1版」などでも採用されている MEDIS標準病名マスターの病名交換用コード(“urn:oid:1.2.392.200119.4.101.6”)を推奨する。

"protocolApplied": [
  {
    "targetDisease": [
      {
        "coding": [
          {
            "system": "urn:oid:1.2.392.200119.4.101.6",
            "code": "ES0L",
            "display": "インフルエンザ"
          }
        ]
      }
    ] 
  }
]

ワクチン接種の回数の記述方法について

ワクチン接種の回数はImmunization.protocolApplied.doseNumberPositiveInt要素にpositiveInt型で記述する。

"protocolApplied": [
  {
    "doseNumberPositiveInt": 2
  }
]

次回接種予定日の記述方法について

次回のワクチン接種予定日は既存のImmunization要素では記述ができないため、Immunizationリソースに対する拡張「DueDateOfNextDose」を使用してdate型で記述する。extension.urlには”http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_DueDateOfNextDose”を指定する。

"extension": [
  {
    "url": "http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_DueDateOfNextDose",
    "valueDate": "2022-04-02"
  }
]

製造年月日、検定年月日

ワクチンの製造年月日、検定年月日はいずれも既存のImmunization要素では記述ができないため、Immunizationリソースに対する拡張「ManufacturedDate」「CertificatedDate」をそれぞれ使用してdate型で記述する。extension.urlにはそれぞれ”http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_ManufacturedDate”、”http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_CertificatedDate”を指定する。

"extension": [
  {
    "url": "http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_ManufacturedDate",
    "valueDate": "2021-10-14"
  },
  {
    "url": "http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Immunization_CertificatedDate",
    "valueDate": "2021-10-18"
  }
]

その他、参考文献・リンク等

  1. HL7, FHIR Immunization Resource, https://hl7.org/fhir/R4/Immunization.html
  2. 母子手帳(厚生労働省令,P51), https://www.mhlw.go.jp/content/000622161.pdf
  3. ワクチン接種記録システム(VRS), https://cio.go.jp/sites/default/files/uploads/documents/vrs_announcement_210430a_att1.pdf
  4. 予防接種台帳, https://www.mhlw.go.jp/content/10906000/000588379.pdf
  5. マイナポータル, https://myna.go.jp/html/api/selfinfo/R4-6/B-084_R4-6.xlsx
  6. 新型コロナワクチン接種証明書アプリ, https://www.digital.go.jp/policies/vaccinecert/faq_06
  7. Mike Henderson, 日本HL7協会監修、「HL7メッセージ交換」、第2版、インナービジョン社、2013年
  8. 一般社団法人医療情報システム開発センター, 医薬品HOT コードマスター, http://www2.medis.or.jp/hcode/
  9. 日本医療情報学会、SS-MIX2仕様書・ガイドライン, http://www.jami.jp/jamistd/ssmix2.php