データベース文字エンコーディング変換
日医標準レセプトソフトではデータベースの文字エンコーディングが、「EUC-JP」と「UTF-8」の2つをサポートしています。
「EUC-JP」では(日医標準レセプトソフトの場合)はJISX0208:1983の範囲の文字しか使用できませんが、「UTF-8」を使用するとJISX0213:2004の範囲まで使用出来るようになります(氏名部分のみ使用可能)。
メニュー
はじめに
$ sudo gedit /etc/jma-receipt/db.conf
以下の内容を記述します。
DBENCODING="UTF-8"
$ sudo jma-setup
正常に終了していればjma-receiptを起動します。
$ sudo service jma-receipt start
データベースの変換
/usr/lib/jma-receipt/bin/jma-dbconvert.sh は /etc/jma-receipt/db.conf の DBENCODINGの値にデータベースのエンコーディングを変換します(内部的には convu8.rbを呼び出すことで変換をかけています。
DBENCODINGの設定
/etc/jma-receipt/db.conf に変換したいエンコーディングを記述します。
※/etc/jma-receipt/db.confファイルは初期では存在しませんので新規作成してください。
DBENCODING="UTF-8"
jma-receipt を停止します。 他にorcaデータベースに接続しているアプリケーションがあったら終了します。PostgreSQLは動作させたままにします。
$ sudo service jma-receipt stop
ログを保管しているテーブルでは変換でエラーとなりやすいので事前に削除します。
ログ自体はファイルで保存されていますので、別の方法で参照可能です。
$ sudo -u orca psql orca -c "delete from monbatch_clog ;"
データベース変換スクリプトの取得
以下の手順でデータベース変換スクリプトの取得および展開を行います。
$ wget https://ftp.orca.med.or.jp/pub/receipt/ubuntu/misc/jma-dbconvert-20200417.tar.gz $ tar zxvf jma-dbconvert-20200417.tar.gz $ cd jma-dbconvert-20200417/
データベースの変換チェック
jma-dbconvert.shを 「-t」つきで実行すると変換のチェックが出来ます。
$ sudo -u orca ./jma-dbconvert.sh -t
データベース [orca] エンコーディング [EUC_JP] ロケール [C] [C] OK: 拡張漢字無効 データベースに不正な文字が入っていないかチェックします... OK: 不正な文字はありませんでした
最後にOKと出た場合は変換可能です。
不正な場合は以下のように表示されます。
ERROR: データベースに不正な文字がありました ERROR: /tmp/jma-receipt_db_check.log を参照して修正する必要があります
この場合はメッセージに従い修正をおこなう必要があります。
/tmp/jma-receipt_db_check.log には不正な文字が入っていたテーブルが記録されています。不正な文字の「前」に「〓」という文字が挿入されています。この文字の直後の文字が不正だった文字です。
データベースの変換の実行
不正な文字がない状態になったらjma-dbconvert.shを実行します。
$ sudo -u orca ./jma-dbconvert.sh
正常に終了すれば変換終了です。 jma-receiptを起動します。
$ sudo service jma-receipt start