2010-03-29 59 views
4

我正在爲阿片成癮者開發一個開源的減少危害應用程序。用幾種不同比率轉換幾組數字的最佳方法

本應用的特點之一是普通阿片類藥物之間的轉換(以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 

我有一個文本框是在毫克(雙),用戶可以輸入在源的劑量。在此之下,我有源無線電盒物質(即:嗎啡)和目標物質(即羥考酮)進行轉化。

我一直在想辦法做到這一點,但幾乎每個人似乎都是草率的。 如果我這樣做

public static double MorphinetoOxycodone(string morphineValue) 
{ 
double morphine = Double.Parse(morphineValue); 
return (morphine/2); 
} 

我也必須作出OxycodonetoMorphine,OxycodonetoCodeine等功能..然後就結束了數十種功能..

必須有一個更簡單比我缺少的方式。

如果您會注意到,我所有的轉換都使用嗎啡作爲基準值。使用嗎啡值將一種阿片類藥物轉換爲另一種阿片類藥物最簡單的方法是什麼?例如,如果1毫克嗎啡口服等於1毫克氫可酮,1毫克嗎啡口服等於0.10毫克美沙酮,我是不是隻乘以1 * .10以得到氫可酮 - >美沙酮值? 實現這個想法是我遇到的最大麻煩。

任何幫助將非常感激..如果你願意,我會添加你的名字/暱稱在這個程序中的學分。世界上很多很多人都有可能會使用它(我也將它翻譯成幾種語言),並且知道你的工作可以幫助一個死於吸毒者。我認爲這是一件很棒的事情:)

-cory

+0

CPatton我認爲親社會項目的設計需要闡明軟件最終用戶的複雜程度。計算中沒有固有的複雜性。我們是否應該假設這個轉換工具的最終用戶是一個「超級用戶」:或者你是否想要在這個合適的頂端放置一個「眼睛糖果」或「嚮導」界面,也許對於不太熟悉的人一臺電腦 ?另一個問題是:鑑於阿片類藥物濫用者可能在攪和他們所能得到的任何東西:你是否希望允許最終用戶(或採訪者)輸入多種物質? – BillW 2010-03-29 10:00:26

回答

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) 

這將給你相當於5mg芬太尼Oxymorphone。
聲明:我沒有編碼C#太多,所以我的語法可能會關閉。

+0

非常感謝!對不起,它需要一段時間來回應,firefox是越野車。語法是完美的。如果你想被置於該計劃的學分,只需告訴我,我會添加您的用戶名或電子郵件:) 我不得不簡化我的代碼,當我不能相當把握一個概念。我得記住K.I.S.S;) – 2010-03-29 09:01:45

+0

你非常歡迎!並且記入我真的沒有必要,這很簡單。 :) – tzaman 2010-03-29 09:53:29