<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="jp-medicationtiming" />
  <url value="http://jpfhir.jp/fhir/core/StructureDefinition/JP_MedicationTiming" />
  <version value="1.1.1" />
  <name value="JP_MedicationTiming" />
  <title value="JP Core Medication Timing DataType" />
  <status value="active" />
  <date value="2022-10-24" />
  <description value="このデータタイプはTiming DataTypeに対して、薬剤に関するタイミング定義を行なったものである" />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="v2" />
    <uri value="http://hl7.org/v2" />
    <name value="HL7 v2 Mapping" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <kind value="complex-type" />
  <abstract value="false" />
  <type value="Timing" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Timing" />
  <derivation value="constraint" />
  <differential>
    <element id="Timing">
      <path value="Timing" />
      <short value="投与日時" />
      <definition value="投与日時" />
    </element>
    <element id="Timing.event">
      <path value="Timing.event" />
      <short value="服用もしくは注射を行なうタイミングを示す時刻" />
      <definition value="服用タイミングを具体的な日時で指定する場合に使用する" />
    </element>
    <element id="Timing.repeat">
      <path value="Timing.repeat" />
      <short value="イベントが発生する時刻" />
      <definition value="イベントがスケジュールされたルールについての記述。" />
      <requirements value="スケジュールされたタイミングの多くは規則的な繰り返しで決定されている。" />
    </element>
    <element id="Timing.repeat.bounds[x]">
      <path value="Timing.repeat.bounds[x]" />
      <short value="服用・注射開始日から服用・注射終了日までの全日数" />
      <definition value="服用・注射開始日から服用・注射終了日までの全日数。実投与日数ではないことに注意する。" />
    </element>
    <element id="Timing.repeat.count">
      <path value="Timing.repeat.count" />
      <short value="繰り返し服用もしくは注射回数" />
      <definition value="Timing仕様の全てにおいて、特定の期間に繰り返されるように指定された総回数。もし、countMaxが設定されていれば、このエレメントは許容される最低限度の回数を示す。" />
      <comment value="回数に上限、下限の範囲がある場合は、このcountで示される回数が起きるまでは、エレメントは範囲の中にあると解釈されるべきである。" />
    </element>
    <element id="Timing.repeat.countMax">
      <path value="Timing.repeat.countMax" />
      <short value="繰り返しの最大回数" />
      <definition value="このエレメントが設定されている場合は、回数に範囲があることを示している。したがって、[count]から[countmax]までの回数で繰り返される。" />
      <comment value="32bit整数。もし、値がこれを超える場合はdecimalで記録される。" />
    </element>
    <element id="Timing.repeat.duration">
      <path value="Timing.repeat.duration" />
      <short value="継続時間" />
      <definition value="投与されるタイミングが発生している時間。もし、durationMaxが設定されていれば、このエレメントは許容される継続時間の下限を示す。" />
      <comment value="継続時間はイベントの定義の一部（たとえば、静脈注射(IV)では特定の量と速度が明示される)として示されることがある。その他、Timing仕様の一部（たとえば、運動）として示されることもある。" />
      <requirements value="アクティビティによっては即時的なものではなく、その期間において維持される必要がある。" />
    </element>
    <element id="Timing.repeat.durationMax">
      <path value="Timing.repeat.durationMax" />
      <short value="継続時間(最大値)" />
      <definition value="もし、このエレメントに値が設定されていれば、durationには範囲があることを示している。したがって、[duration]から[durationMax]までの継続時間の範囲で投与される。" />
      <comment value="継続時間はイベントの定義の一部（たとえば、静脈注射(IV)では特定の量と速度が明示される)として示されることがある。その他、Timing仕様の一部（たとえば、運動）として示されることもある。" />
      <requirements value="アクティビティによっては即時的なものではなく、その期間において維持される必要がある。" />
    </element>
    <element id="Timing.repeat.durationUnit">
      <path value="Timing.repeat.durationUnit" />
      <definition value="UCUM単位で表される継続時間についての単位。" />
      <comment value="FHIRの文字列は1MB以上の大きさとなってなはらない(SHALL NOT)。" />
    </element>
    <element id="Timing.repeat.frequency">
      <path value="Timing.repeat.frequency" />
      <short value="期間内にイベントが発生する回数、頻度" />
      <definition value="特定の期間に繰り返して発生した行為の回数。もし、frequencyMaxが設定されていれば、このエレメントはfrequencyとして認められた下限を示す。" />
      <comment value="32ビットの数値。もし、値がそれを上回るようであればdecimalを使用する。" />
      <meaningWhenMissing value="frequencyが指定されていなければ、期間内に1回だけイベントが発生すると想定される。しかし、システムはこれを常時特定しておく必要がある。" />
    </element>
    <element id="Timing.repeat.frequencyMax">
      <path value="Timing.repeat.frequencyMax" />
      <short value="期間内にイベントが発生する最大回数、最大頻度" />
      <definition value="このエレメントに値が設定されていれば、frequencyには範囲が指定されている。つまり、期間あるいは期間の範囲内に[frequency]から[frequencyMax]回繰り返されることを示している。" />
      <comment value="32ビットの数値。もし、値がそれを上回るようであればdecimalを使用する。" />
    </element>
    <element id="Timing.repeat.period">
      <path value="Timing.repeat.period" />
      <short value="イベントが発生する頻度に対応する期間" />
      <definition value="繰り返し投与が行われる期間を示す。たとえば、「1日3回」であれば、3は繰り返しの頻度(frequency)であり、「1日」が期間(period)である。もし、periodMaxに値が設定されていれば、このエレメントは期間として認められた範囲の下限を示す。" />
      <comment value="IEEEの浮動小数点型を使わずに、小数点も含むdecimal型のようなものを利用すること（たとえばJavaのBigInteger)。" />
    </element>
    <element id="Timing.repeat.periodMax">
      <path value="Timing.repeat.periodMax" />
      <short value="期間の上限（3-4時間）" />
      <definition value="もし、この値が設定されていれば、期間は[period]から[periodMax]までであることを示し、「3-5日に1回投与」のような表現が認められる。" />
      <comment value="IEEEの浮動小数点型を使わずに、小数点の制度も示すdecimal型のようなものを利用すること（たとえばJavaのBigInteger)。" />
    </element>
    <element id="Timing.repeat.periodUnit">
      <path value="Timing.repeat.periodUnit" />
      <definition value="期間を表すUCUM単位。" />
      <comment value="FHIRの文字列は1MB以上の大きさとなってなはらない(SHALL NOT)。" />
    </element>
    <element id="Timing.repeat.dayOfWeek">
      <path value="Timing.repeat.dayOfWeek" />
      <definition value="期間として1週間以上が指定されていれば、指定された曜日のみで投与が行われる。" />
      <comment value="曜日が指定されていなければ、他に指定された日には毎日投与されると想定される。frequencyとperiodエレメントはdayOfWeekと同じように使うことはできない。" />
    </element>
    <element id="Timing.repeat.timeOfDay">
      <path value="Timing.repeat.timeOfDay" />
      <short value="一日の間で投与される時刻" />
      <definition value="一日の間で指定された投与される時刻。" />
      <comment value="もし、このtimeOfDayに値が指定されていれば、毎日（daysOfWeekでフィルタされた曜日の）指定された時刻に投与されると推定される。whenやfrequency, periodエレメントはtimeOfDayとは同様に使うことはできない。" />
    </element>
    <element id="Timing.repeat.when">
      <path value="Timing.repeat.when" />
      <short value="投薬期間についてのコード" />
      <definition value="一日の間のおおよその時間帯で投与すべきタイミングを示す。日常のイベントに関連付けられていることもある。" />
      <comment value="一つ以上のイベントが記載されている場合、そのイベントは特定のイベントの組み合わせと結びついている。" />
      <requirements value="タイミングはしばしば起床や食事、睡眠などのできごとによってしばしば決定されている。" />
    </element>
    <element id="Timing.repeat.offset">
      <path value="Timing.repeat.offset" />
      <short value="イベントからの時間(分、前後）" />
      <definition value="イベントからの時間(分)。もし、分で示される時間がイベントのコードが前か後かを示していない場合、offsetはイベントの後であることが想定される。" />
      <comment value="32ビットの数値。もし、値がそれを上回るようであればdecimalを使用する。" />
    </element>
    <element id="Timing.code">
      <path value="Timing.code" />
      <definition value="スケジュール上のタイミングを表すコード（あるいはcode.text内のテキスト）。BID(1日2回)のようなコードはどこにでもあるが、多くの医療機関は付加的なコードを定義している。もし、コードが示されていれば、構造化されたタイミングで完全に示されたデータであると解釈され、コードまたはTimingを解釈するためのデータであると解釈される。しかし、例外的に.repeat.bounds（コードは含まれない)はコードを上書きして適用される。" />
      <comment value="BIDなどは「施設特有の時間」として定義される。たとえば、施設がBIDを「つねに朝7時と夕方6時」であると指定することがある。この指定が不適切であれば、BIDというコードは使うべきではない。その代わり、HL7が定義したBIDのコードではなく、その施設特有のコードで明示的に示すべきであり、構造化された表現を使うべきである（この場合、2回のイベントの時刻を指定する必要がある）。" />
    </element>
  </differential>
</StructureDefinition>