🔥

DosageInstructionで不均等投与を表現する方法【HL7-FHIR】

2024/01/01に公開

MedOps Technologiesの杉田です。弊社では医療情報の標準規格としてHL7-FHIR®︎を積極的に採用しており、FHIRサーバの実装にも取り組んでいます。

今回はHL7-FHIR実装時に迷う「不均等投与」の取り扱いに関して、医療現場でのユースケース、FHIRに関する先行事例などから、弊社のFHIRサーバの仕様について解説します。

そもそも完全には整備されていない領域ですから、適用できないエッジケースが存在するかもしれません。何かご意見があればコメントの方でご指摘頂けますと幸いです。

不均等投与の意味と現場でのユースケース

そもそも「不均等投与」とは何か、一度確認しておきます。

代表的なものとしては、

  • インスリン皮下注射
    • ヒューマログ: 朝8単位-昼6単位-夕7単位, グラルギン: 眠前8単位
  • プレドニン内服
    • プレドニン5mg 朝食後6錠 昼食後2錠
      といった形です。

通常内服薬は「アモキシシリン250mg 1回2錠 1日3回(1日6錠)」のように、1日量を均等に分割して処方されます。他方、一部の薬剤は、必然的あるいは慣用的に、1日量を不均等に分割する場合があり、その手法を「不均等投与」と言います。

MedicationRequest.dosageInstructionと不均等投与

不均等投与が関係するFHIRリソースは、薬剤オーダを記録するMedicationRequestリソースです。そのうち、薬剤投与方法の詳細はdosageInstructionエレメントに格納されます。

MedicationRequest.dosageInstructionDosageタイプで定義されています。

均等投与であれば一般的に以下のような表現方法になります。

{
  "sequence": 1,
  "text": "アモキシシリン250mg 1回2錠 1日3回 毎食後",
  "timing": {
    "repeat": {
      "frequency": 3,
      "period": 1,
      "periodUnit": "日",
      "when": ["PCM", "PCD", "PCV"], //["PC"] = 食後 でもよいが私は一々指定するのが良いと考えます。
    }
  },
  "asNeeded": false,
  "doseAndRate": [
    {
      "doseQuantity": {
        "value": 2,
        "unit": "錠",
	"system": "urn:oid:1.2.392.100495.20.2.101",
	"code": "TAB",
      },
    }
  ],  
}

上記は、まずtimingで1日3回 毎食後投与を表現しています。そしてdoseQuantityで1回量を定義しています。ちなみにPCM=朝食後、PCD=昼食後、PCV=夕食後(参考)です。

このように均等投与であれば、1回量と単位時間あたりの投与タイミングを指定すれば用法用量が一意に決定するので簡単です。しかし不均等投与ではこの方法が使えません。

先行文献の解決法

日本医療情報学会のHL7-FHIR日本実装検討WGの資料(処方情報HL7-FHIR記述仕様 第1版)では、不均等投与を1回用法と1日用法での記述方法に分けて例示しています。

例えば「プレドニン錠5mg 朝食後4錠 昼食後2錠 夕食後1錠」を表現する場合を考えましょう。

1回用法(日本医療情報学会)

医療情報学会の提唱する方法では、1回用法の場合、朝食後・昼食後・夕食後の投与をそれぞれ個別のMedicationRequestリソースに分解して表現します。言い換えると、

  • プレドニン5mg 1回4錠 1日1回 朝食後
  • プレドニン5mg 1回2錠 1日1回 昼食後
  • プレドニン5mg 1回1錠 1日1回 夕食後

の3つの処方に分解し、それぞれのMedicationRequestリソースに分解するということです。しかしこれでは一つの処方に対してボイラープレートが多くなってしまうようにも感じます。例示しようにもあまりにも長いので、気になる方は原文を参照してください。

1日用法(日本医療情報学会)

1日用法の場合、dosageInstruction.additionalInstrutionを用い以下のように表現しています。

{
  "dosageInstruction": [
    {
      "additionalInstruction": [
        {
          "coding": [
            {
              "system": "urn:oid:1.2.392.200250.2.2.20.22",
              "code": "V14NNNNN",
              "display": "不均等・1回目・4錠"
            }
          ]
        },
        {
          "coding": [
            {
              "system": "urn:oid:1.2.392.200250.2.2.20.22",
              "code": "V22NNNNN",
              "display": "不均等・2回目・2錠"
            }
          ]
        },
        {
          "coding": [
            {
              "system": "urn:oid:1.2.392.200250.2.2.20.22",
              "code": "V31NNNNN",
              "display": "不均等・3回目・1錠"
            }
          ]
        }
      ],
      ...
    }
  ]
}

1回用法よりだいぶスッキリしている印象です。しかしdosageInstruction.additionalInstructionに関して、HL7-FHIRの公式ドキュメントには、

Supplemental instructions to the patient on how to take the medication (e.g. "with meals" or"take half to one hour before food") or warnings for the patient about the medication (e.g. "may cause drowsiness" or "avoid exposure of skin to direct sunlight or sunlamps").

とあります。どうもこの記述からは、用法用量をダイレクトに表現するエレメントとしての想定ではないように読み取れます。

どちらかというと、

  • アセトアミノフェン頓用処方時の「6時間以上空けて1日3回まで
  • ビスホスホネート製剤処方時の「服用後少なくとも30分は横にならず水以外の飲食、他の薬の内服は避けてください

といった注意書きを書く場所のように思います。

HL7-FHIR公式ドキュメントの例が合理的

公式ドキュメントにはインスリン処方の例がありました。Novolog(超即効型インスリン)を朝食前10単位-昼食前15単位-夕食前20単位投与する例で、一部中略して引用します。

{
  "resourceType" : "MedicationRequest",
  "id" : "medrx0321",
  
  ...
  
  "dosageInstruction" : [{
    "sequence" : 2,
    "text" : "inject 10 units subcut 10 minutes before breakfast",
    "timing" : {
      "repeat" : {
        "frequency" : 1,
        "period" : 1,
        "periodUnit" : "d",
        "when" : ["ACM"],
        "offset" : 10
      }
    },
    "doseAndRate" : [{
      "type" : {
        "coding" : [{
          "system" : "http://terminology.hl7.org/CodeSystem/dose-rate-type",
          "code" : "ordered",
          "display" : "Ordered"
        }]
      },
      "doseQuantity" : {
        "value" : 10,
        "unit" : "U",
        "system" : "http://unitsofmeasure.org",
        "code" : "U"
      }
    }]
  },
  {
    "sequence" : 2,
    "text" : "15 units before lunch",
    "additionalInstruction" : [{
      "text" : "Before Lunch"
    }],
    "timing" : {
      "repeat" : {
        "frequency" : 1,
        "period" : 1,
        "periodUnit" : "d"
      }
    },
    "doseAndRate" : [{
      "type" : {
        "coding" : [{
          "system" : "http://terminology.hl7.org/CodeSystem/dose-rate-type",
          "code" : "ordered",
          "display" : "Ordered"
        }]
      },
      "doseQuantity" : {
        "value" : 15,
        "unit" : "U",
        "system" : "http://unitsofmeasure.org",
        "code" : "U"
      }
    }]
  },
  {
    "sequence" : 1,
    "text" : "20 units before dinner",
    "additionalInstruction" : [{
      "text" : "Before Dinner"
    }],
    "timing" : {
      "repeat" : {
        "frequency" : 1,
        "period" : 1,
        "periodUnit" : "d"
      }
    },
    "doseAndRate" : [{
      "type" : {
        "coding" : [{
          "system" : "http://terminology.hl7.org/CodeSystem/dose-rate-type",
          "code" : "ordered",
          "display" : "Ordered"
        }]
      },
      "doseQuantity" : {
        "value" : 20,
        "unit" : "U",
        "system" : "http://unitsofmeasure.org",
        "code" : "U"
      }
    }]
  }],
  
  ...
  
}

dosageInstructionをリスト化し、それぞれのリスト要素に朝食前・昼食前・夕食前の投与方法を格納しています。sequenceの扱いがかなり雑ですが、医療情報学会の1回用法よりボイラープレートは少ないし、1日用法のように新たなコード体系を導入する必要もありません。

dosageInstruction.sequenceについて

sequenceについて公式ドキュメントの説明を引用します。

Indicates the order in which the dosage instructions should be applied or interpreted.
If the sequence number of multiple Dosages is the same, then it is implied that the instructions are to be treated as concurrent. If the sequence number is different, then the Dosages are intended to be sequential.

「複数の用法用量が同一のsequenceの場合、その用法用量は同時に扱われるべきことを示唆する。sequenceが違う数字の場合は、連続的な用法を意図している」みたいなフワッとした説明になってます。

システムの仕様なのでwell-definedにして欲しいのですが、医療自体かっちりと定義できない営みなので、ある程度は空気を読まねばなりません。

公式ドキュメントからなんとか読み取れる範囲として、「プレドニゾロンの漸減」が___sequencial___ なものとして想定されている気がします。病気にもよりますがステロイドはある程度の量から開始し、3日ごとなり2週間ごとなり、一定間隔で漸減していく薬です。以下の例ではプレドニゾン5mg錠を1日4錠から開始し、一週間ごとに2錠→1錠→終了、と漸減していく処方例です。sequenceが1→2→3と増えていっているのが分かると思います。おそらくこれが、sequenceのど真ん中の想定と思われます。

{
  "resourceType" : "MedicationRequest",
  "id" : "medrx0303",
  "contained" : [{
    "resourceType" : "Medication",
    "id" : "med0311",
    "code" : {
      "coding" : [{
        "system" : "http://snomed.info/sct",
        "code" : "373994007",
        "display" : "Prednisone 5mg tablet (Product)"
      }]
    }
  }],
  "dosageInstruction" : [{
    "sequence" : 1,
    "text" : "Take 4 tablets daily for 7 days starting January 16, 2015",
    "timing" : {
      "repeat" : {
        "boundsPeriod" : {
          "start" : "2015-01-16",
          "end" : "2015-01-22"
        },
        "frequency" : 1,
        "period" : 1,
        "periodUnit" : "d"
      }
    },
    "route" : {
      "coding" : [{
        "system" : "http://snomed.info/sct",
        "code" : "26643006",
        "display" : "Oral Route"
      }]
    },
    "method" : {
      "coding" : [{
        "system" : "http://snomed.info/sct",
        "code" : "421521009",
        "display" : "Swallow - dosing instruction imperative (qualifier value)"
      }]
    },
    "doseAndRate" : [{
      "type" : {
        "coding" : [{
          "system" : "http://terminology.hl7.org/CodeSystem/dose-rate-type",
          "code" : "ordered",
          "display" : "Ordered"
        }]
      },
      "doseQuantity" : {
        "value" : 4,
        "unit" : "TAB",
        "system" : "http://terminology.hl7.org/CodeSystem/v3-orderableDrugForm",
        "code" : "TAB"
      }
    }]
  },
  {
    "sequence" : 2,
    "text" : "Take 2 tablets daily for 7 days starting January 23, 2015",
    "timing" : {
      "repeat" : {
        "boundsPeriod" : {
          "start" : "2015-01-23",
          "end" : "2015-01-29"
        },
        "frequency" : 1,
        "period" : 1,
        "periodUnit" : "d"
      }
    },
    "route" : {
      "coding" : [{
        "system" : "http://snomed.info/sct",
        "code" : "26643006",
        "display" : "Oral Route"
      }]
    },
    "method" : {
      "coding" : [{
        "system" : "http://snomed.info/sct",
        "code" : "421521009",
        "display" : "Swallow - dosing instruction imperative (qualifier value)"
      }]
    },
    "doseAndRate" : [{
      "type" : {
        "coding" : [{
          "system" : "http://terminology.hl7.org/CodeSystem/dose-rate-type",
          "code" : "ordered",
          "display" : "Ordered"
        }]
      },
      "doseQuantity" : {
        "value" : 2,
        "unit" : "TAB",
        "system" : "http://terminology.hl7.org/CodeSystem/v3-orderableDrugForm",
        "code" : "TAB"
      }
    }]
  },
  {
    "sequence" : 3,
    "text" : "Take 1 tablets daily for 7 days starting January 30, 2015",
    "timing" : {
      "repeat" : {
        "boundsPeriod" : {
          "start" : "2015-01-30",
          "end" : "2015-02-05"
        },
        "frequency" : 1,
        "period" : 1,
        "periodUnit" : "d"
      }
    },
    "route" : {
      "coding" : [{
        "system" : "http://snomed.info/sct",
        "code" : "26643006",
        "display" : "Oral Route"
      }]
    },
    "method" : {
      "coding" : [{
        "system" : "http://snomed.info/sct",
        "code" : "421521009",
        "display" : "Swallow - dosing instruction imperative (qualifier value)"
      }]
    },
    "doseAndRate" : [{
      "type" : {
        "coding" : [{
          "system" : "http://terminology.hl7.org/CodeSystem/dose-rate-type",
          "code" : "ordered",
          "display" : "Ordered"
        }]
      },
      "doseQuantity" : {
        "value" : 1,
        "unit" : "TAB",
        "system" : "http://terminology.hl7.org/CodeSystem/v3-orderableDrugForm",
        "code" : "TAB"
      }
    }]
  }],

...

不均等投与においてsequenceをどうするか

結論としては、不均等投与ではsequence番号は同一とする、が現段階の解と考えます。

一つの根拠として、イギリスNHSが運営しているdeveloper.nhs.ukというサイトに掲載されているdosageInstruction.sequenceの解説および使用例をご紹介します。

A multi-sequence would be required where a dosage instruction changes over a given time schedule, where a dosage instruction includes optional follow-up doses or where a concurrent dosage instruction is required for the same medication at a different dose.

XMLですが、「フロセミド40mg錠 朝2錠、昼1錠」の不均等投与の例があります。ここでもHL7-FHIRの公式ドキュメントと同様、dosageInstructionをリスト化し、同一sequence番号で朝食後と昼食後の処方を格納しています。

<!-- "file": "examples-dosage-parallel-sequence.xml" -->
<!-- Example use of the FHIR STU3 Dosage using multiple parallel sequences -->
<!-- Furosemide 40mg tablets, take two in the morning and one at midday for one week -->
<!-- Using a contained Medication resource -->
<MedicationRequest>
	<id value="a8ca980c-72aa-11e7-8cf7-a6006ad3dba0"/>
	<meta>
		<profile value="https://fhir.hl7.org.uk/STU3/StructureDefinition/CareConnect-MedicationRequest-1"/>
	</meta>
	<contained>
		<Medication>
			<id value="med1"/>
			<code>
				<coding>
					<system value="http://snomed.info/sct"/>
					<code value="317972000 "/>
					<display value="Furosemide 40mg tablets"/>
				</coding>
			</code>
		</Medication>
	</contained>
	<intent value="order"/>
	<medicationReference>
		<reference value="#med1"/>
	</medicationReference>
	<subject>
		<identifier>
			<system value="https://fhir.nhs.uk/Id/nhs-number"/>
			<value value="9999999999"/>
		</identifier>
	</subject>
	<dosageInstruction>
		<sequence value="1"/>
		<timing>
			<repeat>
				<boundsDuration>
					<value value="1"/>
					<unit value="week"/>
					<system value="http://unitsofmeasure.org"/>
					<code value="wk"/>
				</boundsDuration>
				<frequency value="1"/>
				<period value="1"/>
				<periodUnit value="d"/>
				<when value="MORN"/>
			</repeat>
		</timing>
		<doseQuantity>
			<value value="2"/>
			<unit value="tablet"/>
			<system value="http://snomed.info/sct"/>
			<code value="428673006"/>
		</doseQuantity>
	</dosageInstruction>
	<dosageInstruction>
		<sequence value="1"/>
		<timing>
			<repeat>
				<boundsDuration>
					<value value="1"/>
					<unit value="week"/>
					<system value="http://unitsofmeasure.org"/>
					<code value="wk"/>
				</boundsDuration>
				<frequency value="1"/>
				<period value="1"/>
				<periodUnit value="d"/>
				<timeOfDay value="12:00:00"/>
			</repeat>
		</timing>
		<doseQuantity>
			<value value="1"/>
			<unit value="tablet"/>
			<system value="http://snomed.info/sct"/>
			<code value="428673006"/>
		</doseQuantity>
	</dosageInstruction>
</MedicationRequest>

version STU3の情報ですが、現在のバージョンでも特に大きな仕様変更がないためこのまま適用可能と考えます。

結論と弊社FHIRサーバの仕様

以下が結論です。

HL7-FHIRの公式ドキュメントにほぼ準拠した形式ですし、理にかなった表現方法であると考えます。

弊社仕様では、「プレドニン5mg 朝食後6錠 昼食後2錠」は以下のように表現します。

{
  "resourceType": "MedicationRequest",
  "medicationCodeableConcept": {
    "coding": [
      {
        "system": "urn:oid:1.2.392.100495.20.1.73",
        "code": "2456001F1310",
        "display": "プレドニン5mg"
      }
    ]
  },
  "dosageInstruction": [
    {
      "text": "朝食後6錠",
      "timing": {
        "repeat": {
          "frequency": 1,
          "period": 1,
          "periodUnit": "d",
          "when": ["PCM"],
        }
      },
      "doseAndRate": {
        "doseQuantity": {
          "value": 6,
          "unit": "錠",
          "system": "urn:oid:1.2.392.100495.20.2.101",
	  "code": "TAB",
        }
      }
    },
    {
      "text": "昼食後2錠",
      "timing": {
        "repeat": {
          "frequency": 1,
          "period": 1,
          "periodUnit": "d",
          "when": ["PCD"],
        }
      },
      "doseAndRate": {
        "doseQuantity": {
          "value": 2,
          "unit": "錠",
          "system": "urn:oid:1.2.392.100495.20.2.101",
	  "code": "TAB",
        }
      }
    }
  ]
}

ここまで読んでいただきありがとうございます。何かご指摘やご意見がありましたら、気軽にコメント頂ければ幸いです。

Discussion