[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[orca-dev:00040] Re: 病名クラス
- To: ORCA Developers <orca-dev@xxxxxxxxxxxxxx>
- Subject: [orca-dev:00040] Re: 病名クラス
- From: Yoshinori Ariie <PBA00250@xxxxxxxxx>
- Date: Tue, 21 May 2002 22:29:36 +0900
有家@松山記念病院です。
病名クラス Disease に
ある病名がorca病名かどうかを示す orca? と、medis病名かどうかを示す medis?
というメソッドを追加します。
まず、www.medis.or.jp から byomei20.exe をダウンロードし
ftp.orca.med.or.jp からダウンロードしたファイル中の(どこにあるのか忘れた ..;)
byomei_20011101.tar.gz から以下の手順でテキストファイルを作ります。
下のコマンドラインは実際は一行です。
$ tar zxOf byomei_20011101.tar.gz | ruby -ane 'print "#{$F[1]}\n" if $F[5] != "0"'
> disease_orca_20011101.txt
(この方法では一部編集が必要です。ファイルの最初と最後の数行を delete します)
$ lha p byomei20.exe main200.txt | nkf -e | cut -d "," -f 3 | sed -e "s/\"//g"
> disease_medis_200.txt
ここで以下のようなコードを仮に dtest.rb とすると
ある病名がorca病名/medis病名として有効かどうかは
$ dtest.rb 開放性外傷性くも膜下出血
開放性外傷性くも膜下出血 is available in orca : true
開放性外傷性くも膜下出血 is available in medis : false
となります。
つまり orca では有効だが、medis の病名としては無効ということのようです。
#!/usr/local/bin/ruby -Ke
class Disease < String
# ファイル存在のチェックなどは省略(実装の際に考慮します)
dis_orca_txt = "disease_orca_20011101.txt"
dis_mdis_txt = "disease_medis_200.txt"
Orca = open(dis_orca_txt, "r"){|io| io.readlines}.each{|$_| chomp!}
Mdis = open(dis_mdis_txt, "r"){|io| io.readlines}.each{|$_| chomp!}
def initialize(str)
@name = String.new(str)
end
def orca?
Orca.include?(@name)
end
def medis?
Mdis.include?(@name)
end
end
ARGV.each{|arg|
d = Disease.new(arg)
print "#{arg} is available in orca : #{d.orca?}\n"
print "#{arg} is available in medis : #{d.medis?}\n"
}
__END__
# どこまでできるかわかりませんが (^^);
# クラス Symptom, Examination, Medicine なども作りたい。
# Rubyの勉強にもなるし..
# どなたか、ご一緒しませんか。
--
pba00250@xxxxxxxxx
yoariie@xxxxxxxxxxxxxxx
-------------------------
有家佳紀 Yoshinori Ariie