mathjax

2017年5月23日火曜日

原薬量・製剤量の変換 その2

その1の続きです。

実際の計算(製剤量→原薬量)

ここからは実際の計算です。

アスベリン散10%を0.6 gはかったとき、原薬であるチペピジン*3は何ミリグラム含まれているでしょうか?「原薬量 = 製剤量 × 割合」ですので、この公式にあてはめて、\[ 0.6 \times 0.1 = 0.06 \] ですね。ここででてきた0.06はグラムなので、ミリグラムにすると60 mgとなります。

シロップについて考えましょう。アスベリンシロップ0.5%を12 mLはかったとき、原薬であるチペピジンは何ミリグラム含まれているでしょうか?「原薬量 = 製剤量 × 割合」ですので、この公式にあてはめて、\[ 12 \times 0.005 = 0.06 \] ですね。同様に単位をミリグラムにすると、60 mgとなります。

実際の計算(原薬量→製剤量)

今度は原薬量を製剤量に変換してみましょう。

アスベリン散10%を原薬量で30 mgはかりたい場合、製剤を何グラムはかればよいでしょうか?「製剤量 = 原薬量 ÷ 割合」ですので、この公式にあてはめて、\[ 0.030 \div 0.1= 0.3 \]ですね。

次はシロップについて考えましょう。アスベリンシロップ0.5%を原薬量で30 mgはかりたい場合、製剤を何ミリリットルはかればよいでしょうか?「製剤量 = 原薬量 ÷ 割合」ですので、この公式にあてはめて、\[ 0.030 \div 0.005 = 6 \]ですね。

変換は結局割合の計算なので、基本となるのは算数の知識です。重さの単位がグラム(g)ということに気をつければ、特に問題なく変換できるのではないでしょうか。

他の計算(原薬量→製剤量)

算数で習う公式から求めることができましたが、別の方法でも求めることができます。

比の考えで求めてみます。

アスベリン散10%は製剤1 g中に原薬100 mgが含まれます($1 \, {\rm g} \times 0.1 = 0.1 \, {\rm g}$)。原薬量で30 mgはかりたい場合、求める製剤量を$x$ gとおくと、 \begin{eqnarray} 1 \, {\rm g} : 100 \, {\rm mg} &=& x \, {\rm g} : 30 \, {\rm mg} \nonumber \\ x &=& 30 \div 100 \nonumber \\ x &=& 0.3 \, {\rm g} \nonumber \end{eqnarray} となります。

シロップについても考えましょう。アスベリンシロップ0.5%は製剤1 mL中に原薬5 mgが含まれます($1 \, {\rm mL} \times 0.005 = 0.005 \, {\rm g}$)。原薬量で30 mgはかりたい場合、求める製剤量を$y$ mLとおくと、 \begin{eqnarray} 1 \, {\rm mL} : 5 \, {\rm mg} &=& y \, {\rm mL} : 30 \, {\rm mg} \nonumber \\ y &=& 30 \div 5 \nonumber \\ x &=& 6 \, {\rm mL} \nonumber \end{eqnarray} となります。

まだ別の考え方があります。

アスベリン散10%というのは、次のようなイメージです。

製剤量のうち10%が原薬なので、面積または数直線として表すと、原薬量の10倍が製剤量となります。したがって、原薬量が30 mgの場合、製剤量は$30 \, {\rm mg}\times 10 = 300 \, {\rm mg}$となります。


*3 : 厳密にはチペピジンヒベンズ酸塩のチペピジンクエン酸塩相当量を求める

原薬量・製剤量の変換 その1

原薬量から製剤量への変換は割合計算です。

割合の公式と塩水の例

公式は、「比べられる量 = もとにする量 × 割合」ですね。また、1%は0.01ですね。

算数の教科書によく載っていたような塩水で考えると、「比べられる量」は「塩」の量、「もとにする量」は「塩水」の量です。10%の塩水100 gに含まれる塩の量($x$ gとします)を求める場合、公式にあてはめて次の式で算出できます。\[ x = 100 \times 0.1 = 10 \]

先程は比べられる量を求めましたが、割合と比べられる量から、もとにする量を求めるにはどうすればいいでしょうか?

「比べられる量 = もとにする量 × 割合」なので、この式を変形して「もとにする量 = 比べられる量 ÷ 割合」ですね。

塩4 gを得るのに必要な海水(塩濃度は4%とします*1 )の量($y$ gとします)を求めてみましょう。ちょっぴりファンタジーになってしまいますが、海水を加熱して水を飛ばせば塩のみが残るとします。

公式にあてはめて、\[ y = 4 \div 0.04 = 100 \]となります。

医薬品における比べられる量ともとにする量

医薬品における「比べられる量」と「もとにする量」は、それぞれ「原薬量」と「製剤量」です。したがって、公式はこうなります。「原薬量 = 製剤量 × 割合」、「製剤量 = 原薬量 ÷ 割合」。

質量濃度(%)と質量/体積濃度(v/w%)

公式が分かったので、あとは数字をあてはめて求めるだけなのですが、原薬量と製剤量の変換には、まだ曲者が存在します。

パーセント(%)は割合を表しますが、それには質量濃度と質量/体積濃度*2があります。

質量濃度はもとにする量も比べられる量もともに単位はグラム(g)です。一方、質量/体積濃度は、もとにする量の単位はリットル(L)、比べられる量の単位はグラム(g)です。

10%の塩水があるとします。この10%が質量濃度なら、塩水100 g中には塩10 gが含まれます。10%が質量/体積濃度なら、塩水100 L中には塩10 gが含まれます。

塩水の例のように、パーセント(%)は質量濃度であることが多いですが、医薬品においては散剤は質量濃度、液剤は質量/体積濃度になっています。質量/体積濃度の場合、%ではなくv/w%と書くこともありますが、医薬品ではどちらも単位は%で書かれています。

私にはこの程度の説明しかできませんので、あとはGoogleなどで調べてください。とにかく、10%の製剤は散剤なら100 g中に原薬10 g、液剤なら100 L中に原薬10 gが含まれています。

半端ですが、その2へ続きます。


*1 : 実際の海水濃度は3.5%くらいらしい
*2 : ただしい用語なのかは知らない

2017年5月7日日曜日

rubyの条件分岐

rubyの条件分岐はつぎのように書けます。


if 条件1
 処理1
else
 偽の時の処理
end

条件が複数あれば、elsifを使用して次のように書けます。


if 条件1
 処理1
elsif 条件2
 処理2
else
 偽の時の処理
end

今までは、ある変数hogeがnilではない時に行いたい処理はunlessを使用するか、否定型で条件を記載していました。

ところが、最近になって知ったのですが、rubyでは「false」と「nil」以外は全て「true」になります。つまり、条件に論理演算子なしで、変数hogeのみを記載すれば、変数hogeがnilでなければ、処理が実行されます。


if hoge
 処理1
end

上記のように書けば、hogeがnilの場合を除いて処理1が実行されます。コードがすっきりしそうですね。