We Blog Weblog

リフィル処方箋、次はいつ持ってくればいいの?

ブログ

2024年11月20日

2回目以降のリフィル処方箋をいつ持ってくればいいのかを計算するツールです。

1回目の調剤日:
投薬期間:
日分
2回目の調剤予定日:
2回目の持参期間:
2回目の調剤日:
3回目の調剤予定日:
3回目の持参期間:

 

※計算ボタンを押すと2回目の調剤予定日が「2回目の調剤日」欄にもセットされます。その後「2回目の調剤日」の日付を変更するとそれに連動して「3回目の調剤予定日」「3回目の持参期間」も変更されます。

基本的には今日の何日後と同じです。

1回目の日付入力欄(#startDate)、2回目の日付入力欄(#secondDate)、日数入力欄(#days)、計算ボタン(#calculate)、結果出力欄を6個(#result1~6)用意します。

#result1は2回目の調剤予定日、#result2はその7日前、#result3はその7日後

#result4は3回目の調剤予定日、#result5はその7日前、#result6はその7日後

という感じです。

<form>

  1回目の調剤日:<input type="date" id="startDate">
  投薬期間:<input type="number" id="days" min="1"> 日分

  <input type="button" id="calculate" value="計算!">

  2回目の調剤予定日:<output id="result1"<>/output>
  2回目の持参期間:<output><span id="result2"></span>~<span id="result3"></span></output>

  2回目の調剤日:<input type="date" id="secondDate">
  3回目の調剤予定日:<output id="result4"></output>
  3回目の持参期間:<output><span id="result5"></span>~<span id="result6"></span></output>

</form>

#startDateの初期値を今日の日付に設定します。

window.onload = function() {
  var date = new Date()
  var year = date.getFullYear()
  var month = date.getMonth() + 1
  var day = date.getDate()
  var toTwoDigits = function(num, digit) {
    num += ''
    if (num.length < digit) {
      num = '0' + num
    }
    return num
  }

  var yyyy = toTwoDigits(year, 4)
  var mm = toTwoDigits(month, 2)
  var dd = toTwoDigits(day, 2)
  var ymd = yyyy + "-" + mm + "-" + dd;

  document.getElementById("startDate").value = ymd;
}

ちょっと長いですがスクリプト(jQuery)は以下のような感じです。

$(document).ready(function() {
  $('form').submit(function(event) {
    event.preventDefault();
    calculateResults();
    updateResults();
  });
  $('#days').keydown(function(event) {
    if(event.keyCode === 13) {
      event.preventDefault();
      calculateResults();
      updateResults();
    }
  });
  $('#calculate').click(function() {
    calculateResults();
    updateResults();
  });
  $('#secondDate').change(function() {
    updateResults();
  });
  var defaultDays = 30;
  $('#days').val(defaultDays);
  calculateResults();
  function calculateResults() {
    var startDate = new Date($('#startDate').val());
    var days = parseInt($('#days').val());
    var secondDate = $('#secondDate');
    if(isNaN(startDate.getTime()) || isNaN(days) || days < 1) {
      return;
    }
    var result1 = new Date(startDate);
    result1.setDate(result1.getDate() + days);
    var formattedResult1 = `${result1.getFullYear()}-${(result1.getMonth() + 1).toString().padStart(2, '0')}-${result1.getDate().toString().padStart(2, '0')}`;
    secondDate.val(formattedResult1);
    var formatDate = function(date) {
      var dayOfWeekStrJP = ["日", "月", "火", "水", "木", "金", "土"];
      return `
${date.getFullYear()}年
${(date.getMonth() + 1).toString().padStart(2, '0')}月
${date.getDate().toString().padStart(2, '0')}日
${dayOfWeekStrJP[date.getDay()]}曜日
      `.replace(/\n|\r/g, '');
    };
    $('#result1').text(formatDate(result1));
    var result2 = new Date(result1);
    result2.setDate(result2.getDate() - 7);
    $('#result2').text(formatDate(result2));
    var result3 = new Date(result1);
    result3.setDate(result3.getDate() + 7);
    $('#result3').text(formatDate(result3));
  }
  function updateResults() {
    var secondDate = new Date($('#secondDate').val());
    var startDate = new Date($('#startDate').val());
    var days = parseInt($('#days').val());
    var result4 = new Date(secondDate);
    result4.setDate(result4.getDate() + days);
    var formatDate = function(date) {
      var dayOfWeekStrJP = ["日", "月", "火", "水", "木", "金", "土"];
      return `
${date.getFullYear()}年
${(date.getMonth() + 1).toString().padStart(2, '0')}月
${date.getDate().toString().padStart(2, '0')}日
${dayOfWeekStrJP[date.getDay()]}曜日
      `.replace(/\n|\r/g, '');
    };
    $('#result4').text(formatDate(result4));
    var result5 = new Date(result4);
    result5.setDate(result5.getDate() - 7);
    $('#result5').text(formatDate(result5));
    var result6 = new Date(result4);
    result6.setDate(result6.getDate() + 7);
    $('#result6').text(formatDate(result6));
  }
});

ちょっとだけChatGPTに手伝ってもらいました。

startDateにdaysを足すとresult1になり、secondDateにdaysを足すとresult4になるのですが、result1をsecondDateに代入するのと、secondDateを手動で変更した時にresult4が更新されるようにするのに苦戦しました。

secondDateの日付がresult2~3の範囲外だったらエラーを返す、とかできたらよかったのですが、私はここで力尽きました。

 

厚生労働省の資料からリフィル処方箋に関する記述を抜粋しました。

① 保険医療機関の保険医がリフィルによる処方が可能と判断した場合には、処方箋の「リフィル可」欄にレ点を記入する。

② リフィル処方箋の総使用回数の上限は3回までとする。また、1回当たり投薬期間及び総投薬期間については、医師が、患者の病状等を踏まえ、個別に医学的に適切と判断した期間とする。

③ 保険医療機関及び保険医療養担当規則において、投薬量に限度が定められている医薬品及び湿布薬については、リフィル処方箋による投薬を行うことはできない。

④ リフィル処方箋による1回目の調剤を行うことが可能な期間については、通常の処方箋の場合と同様とする。2回目以降の調剤については、原則として、前回の調剤日を起点とし、当該調剤に係る投薬期間を経過する日を次回調剤予定日とし、その前後7日以内とする。

⑤ 保険薬局は、1回目又は2回目(3回可の場合)に調剤を行った場合、リフィル処方箋に調剤日及び次回調剤予定日を記載するとともに、調剤を実施した保険薬局の名称及び保険薬剤師の氏名を余白又は裏面に記載の上、当該リフィル処方箋の写しを保管すること。また、当該リフィル処方箋の総使用回数の調剤が終わった場合、調剤済処方箋として保管すること。

⑥ 保険薬局の保険薬剤師は、リフィル処方箋により調剤するに当たって、患者の服薬状況等の確認を行い、リフィル処方箋により調剤することが不適切と判断した場合には、調剤を行わず、受診勧奨を行うとともに、処方医に速やかに情報提供を行うこと。また、リフィル処方箋により調剤した場合は、調剤した内容、患者の服薬状況等について必要に応じ処方医へ情報提供を行うこと。

⑦ 保険薬局の保険薬剤師は、リフィル処方箋の交付を受けた患者に対して、継続的な薬学的管理指導のため、同一の保険薬局で調剤を受けるべきである旨を説明すること。

⑧ 保険薬局の保険薬剤師は、患者の次回の調剤を受ける予定を確認すること。予定される時期に患者が来局しない場合は、電話等により調剤の状況を確認すること。患者が他の保険薬局において調剤を受けることを申し出ている場合は、当該他の保険薬局に調剤の状況とともに必要な情報をあらかじめ提供すること。

参考:厚生労働省|令和4年度診療報酬改定Ⅰ-7|地域包括ケアシステムの推進のための取組-⑬|リフィル処方の仕組み

ケミストでは引き続き「ブログ」のテーマを募集しています!
調べてほしい、まとめてほしい薬の情報がありましたら教えてください。

この記事を書いた人
みやの
Web・DTP担当

Contact Us

ご意見、ご相談、料金のお見積もりなど、お気軽にお問い合わせください。

お問い合わせはこちら

TOP