いさむの泡沫備忘録

泡沫(うたかた)のように消えてしまう記憶を、備忘録として残していきます。

ダニアレルギーとの戦い(舌下免疫療法)

ふとした時に襲ってくるアレルギー。

 花粉症は時期が決まっていますが、ハウスダストアレルギーはいつも身近にいます。

 

物心ついた時からの付き合いなのですが、掃除するときなどが大変なのでアレルゲン免疫療法を試すことにしました。

 

アレルゲン免疫療法といっても皮下投与舌下投与があります。

皮下投与の存在は知っていましたが、「注射か~、通うのも大変だなあ。」と思っていたりして試しませんでした。

いや、痛そうだからとかではなく、やってる所がよくわからなくて本気出さなかっただけです…。

舌下投与は舌の裏に1分間置くのを続けるというもの。

スギ花粉が保険適用され、その後しばらくしてダニが保険適用されたので、

「このまま何度もツラい思いしてティッシュを消費するくらいなら試してみるか。」

と先行投資的な考えで本気出すことにしました。

 

皮下投与と舌下投与の違いとして、

危険性は舌下投与の方が低いとのことなので

舌下免疫療法を選択しました。

 

ここからは舌下免疫療法の流れを・・・

 

まず、治療ができる病院を探すところから開始。

そんなに多くないのでどうしても限られてしまいます。。。

 

病院では、本当に治療対象のアレルギーがあるか検査から始まります。

問診・採血して約1週間待ち、治療対象の場合は試し投与で30分様子見です。

始めても問題ないと診断されたら、

最初は1週間、次からは1ヶ月単位で薬を貰うことになります。

 

効果の確認の目安として、これから3年続けることになりました。

 

 

費用は検査で5300円ほど、

ダニアレルギーの薬で月に約2500円

年間約3万円で、3年継続したら約9万円になる計算に・・・!

スギ花粉アレルギーの薬だと月500円ほどお安いようです。(いいなあ)

 

皮下免疫療法だと、最初は毎週で月に約2400円、

初年度は年間約23000円

2年目以降は1~2ヶ月の通院で年間約3600円~7200円になるようです。

 

 

投与後の話ですが、

僕の場合は喉の奥が痒い感じになりましたね

口に入れてから飲み込んだ後しばらくヒリヒリするような…

2ヶ月くら経った頃からそれは無くなりました!

少しずつ慣れてきてる証拠ですかね^^v

Accessで複数テーブルを条件にして更新するSQLの書き方

Accessでクエリを作成していたらハマってしまった・・・。

 

複数テーブルを条件に更新しようとしたらエラーになりました。

 

AccessSQLビューから更新クエリを作成していましたが、

 構文エラー:演算子がありません。

 

 

下記SQLはPostgresSQLだと上手くいくのに、Accessは受け付けてくれません。

なんでだよー!(T_T)

 

Access 2013だと失敗な例

UPDATE hoge
SET
  Name = piyo.Name
FROM
  hoge
  INNER JOIN fuga 
    ON hoge.No = fuga.No 
  INNER JOIN piyo 
    ON fuga.No = piyo.No
WHERE
  fuga.Flg = 1;

 

どうやら()を付けないといけないみたいですが、

付ける場所を間違えると失敗するのでややこしい。。。

 

成功例は

UPDATE ( 
  hoge 
    INNER JOIN fuga
      ON hoge.No = fuga.No
)
  INNER JOIN piyo
    ON fuga.No = piyo.No
SET
  hoge.Name = piyo.Name
WHERE
  fuga.Flg = 1;

 

これでようやくNameの更新ができましたとさ。

 

 

ちなみに、Access成功例はPostgresSQLでやってみると失敗しました。

 

・・・わかるかーーーっ!!

JavaScriptの小数点計算で誤差が出る

JavaScript で小数点の切り上げをしようとしたら、

切り上げなくてもよい場合まで切り上げされてしまいました。 

どうやら小数の計算をすると、第14位に「1」が入ってきてしまうようですね。

var hoge = 0.01;

 

// 有効桁数は2のため、100倍する

hoge = hoge * 100; // 「1.00000000000001」

// 小数がある場合は切り上げする

hoge = Math.ceil(hoge); // 「2」

// 有効桁数は2なので、100を割る

hoge = hoge / 100;  // 「0.02」

「0.01 × 100 = 1.00000000000001」…!?どうしてこうなった。。。

 

回避策として、文字列にして切り上げするのが良いようです。

次のような感じにして乗り切りました。

var hoge = 0.01;

var decimal = 2;
var dotPosition = 0;

// 有効桁数分「0」を付ける

hogehoge + Array(decimal).join('0'); // 「0.0100」
   
// 小数点が存在するか確認
if(hoge.lastIndexOf('.') > 0){
      // 小数点があったら位置を取得
      dotPosition = hoge.lastIndexOf('.');

      // 小数点の位置をずらす

      hoge = hoge.replace('.', '') + decimal;
      hoge = hoge.slice(0, dotPosition) + '.' + hoge.slice(dotPosition); //「001.00」

      // 切り上げて、10のn乗(小数点をずらした数)を割る

      Math.ceil(parseFloat(hoge)) / Math.pow(10, decimal); // 「1 / 100 = 0.01」
}

 

四捨五入や切り捨てだと気にしなくてもいいかもですが、切り上げの場合は悪魔ですね。。。

 

悪魔さんにはお帰り願いたい笑