我正在为阿片类药物成瘾者开发一个开源危害减少应用程序。
该应用的一个特点是普通阿片类药物之间的转换(mg / mcg),因此人们不会意外过量。
如果你在道德上对抗阿片类药物成瘾并且因为你的道德而不会回应,请考虑这个申请是为了减少伤害..所以人们最终不会死。
我有这个数据..
3mg morphine IV = 10mcg fentanyl IV
2mg morphine oral = 1mg oxycodone oral
3mg oral morphine = 1mg oxymorphone oral
7.0mg morphine oral = 1mg hydromorphone oral
1mg morphine iv = .10mg oxymorphone iv
1mg morphine oral = 1mg hydrocodone oral
1mg morphine oral = 6.67mg codeine oral
1mg morphine oral = .10mg methadone oral
我有一个文本框,是用户可以输入的mg剂量(双倍)的源剂量。在此之下,我有源物质(即:吗啡)和目的物质(即羟考酮)的无线电盒子转换..
我一直在努力想出最有效的方法,但几乎每一个看起来都很草率。 如果我要做像
这样的事情public static double MorphinetoOxycodone(string morphineValue)
{
double morphine = Double.Parse(morphineValue);
return (morphine / 2 );
}
我还必须为OxycodonetoMorphine,OxycodonetoCodeine等制作一个函数..然后最终会有几十个函数..
我必须有一种比这更容易的方法。
如果您注意到,我的所有转换都使用吗啡作为基础值。使用吗啡值将一种阿片类药物转换为另一种阿片类药物最简单的方法是什么?例如,如果1mg吗啡口服等于1mg氢可酮和1mg吗啡口服等于.10mg美沙酮,我不会只乘1 * .10来得到氢可酮 - >美沙酮值吗? 实现这个想法是我最麻烦的。
任何帮助都会非常感激..如果您愿意,我会在此计划中将您的姓名/昵称添加到学分中。世界上很多人都可能会使用它(我正在将它翻译成几种语言)并且知道你的工作可以帮助一个瘾君子死去......我认为这是一件好事:)< / p>
-cory
答案 0 :(得分:2)
我会使用一系列吗啡转换率和相应的enum
种药物:
static enum Drug { Morphine, Fentanyl, Oxycodone, Oxymorphone, ... };
static double[] ratio = {1.0, 3.33, 0.5, 0.33, ... };
public static double ConvertToMorphine(Drug drug, double amount)
{
return amount / ratio[(int)drug];
}
public static double ConvertFromMorphine(Drug drug, double amount)
{
return amount * ratio[(int)drug];
}
public static double Convert(Drug from, Drug to, double amount)
{
return ConvertFromMorphine(to, ConvertToMorphine(from, amount));
}
通过这种方式,您可以获得所需的任何转换,例如:
Convert(Drug.Fentanyl, Drug.Oxymorphone, 5)
这将给你相当于Oxymorphone中的5mg芬太尼 免责声明:我没有对C#进行过多编码,因此我的语法可能已关闭。