拡張漢字(JISX0213:2004)の使用
日医標準レセプトソフトでJISX0213:2004(JIS第3水準,第4水準)までの文字を使用出来るようにするための設定手順です
これまで使用できる文字は JISX0208:1990の「6,879文字」までですが、「11,233文字」まで使用出来るようになります。
※JISX0208:1990はJISX0208:1983から2文字(凜、熙)追加されています。この2文字はレセプト電算では使用が認められていないため制限されていましたが、現在の日医標準レセプトソフトではEUC-JPのままでも使用可能になっています。
前提条件
JISX0213:2004を使用するための条件は以下になります
- 連携ソフトがある場合は拡張漢字に対応していること。
- ※ORCAプロジェクトから提供しているソフトウェアでも設定変更等必要になる場合があります
- 外部ソフトとの連携では基本的にエンコーディングに「Unicode(UTF-8)」を使用してください。
- JISX0213:2004の全ての文字を扱うには Unicode 3.2以上でサロゲートペアに対応している必要があります。
※JISX0213:2004が使用出来るのは「氏名」欄のみです。
設定手順
データベース文字エンコーディングを参照してデータベースのエンコーディングを変換してください。
拡張漢字入力しての動作確認
データベースを変換後、日医標準レセプトソフトを起動すれば拡張漢字が使用可能になっています。氏名欄のみJISX0213:2004の拡張漢字が使用可能です。glclient2を起動し患者登録の漢字氏名欄に入力してみます。
例えば大迫の「迫」という字の辶(しんにょう)が廴(えんにょう)に変わった「廹(ハク、ヒャク、セマ・ル)(JIS:1-84-16、Unicode:U+5EF9)」という文字を入力してみます。
- 「おおさこ」と入力して変換すると「大迫」しか出て来ませんが、まずカーソルキー「←」を押して「大」の部分だけ変換します
- 「→」を押して「迫」にカーソルを合わせ「スペースキー」で変換候補を出すと多くの変換候補が現れます
- その中から第3水準の漢字である「廹」を選択し「Enterキー」で確定します
- さらに「Enterキー」を押すと入力内容がサーバーに送られて入力欄と上の氏名欄にも「大廹」と表示されれば成功です。
このとき拡張漢字に対応していないサーバーでは「大■」となります。その場合はデータベースがUTF-8のサーバーに接続されているか確認してください
拡張漢字の入った患者氏名を登録し、帳票を印刷して確認してみてください。
monsiaj設定
Windows Vista/Windows 7/Windows 8/Mac OS Xではそのまま使用することが出来ます。
ただしWindowsでは使用のフォントによっては拡張漢字対応のフォントではないため、拡張漢字のみ他のフォントで表示される場合があります。monsiajのシステムプロパティに以下のように拡張漢字に対応したフォントを指定すると統一したフォントで表示されるようになります
monsia.user.font=メイリオ-PLAIN-11
「機種依存文字」と表示される漢字を入力することが出来るようになりますが、一部Unicodeのみにあり「JISX0213:2004」にない文字は登録する事が出来ません。 (例:はしご高(U+9AD9)、つち吉(U+20BB7)と言われている高や吉の異体字)
注意事項
- EUC-JPで作成したバックアップファイルをUTF-8エンコーディングのデータベースに直接リストアすると問題が発生します。バックアップファイルをEUC-JPのデータベースにリストアした後UTF-8のデータベースに変換してください。 ※ PostgreSQL互換性のあるエンコーディングであれば内部で変換してバックアップ、リストアをおこなうことが出来ますが、一部日レセ側から送られる文字と違う文字に変換されてしまうため、そのままでは問題が発生します
- データベースを直接変更する場合にエンコーディングをUTF-8にしていますが、UTF-8で使用出来る文字全てが使用できるわけではありません。JISX0213:2004外の文字を登録してしまうと表示上抜けが発生してしまう場合があります(内部的には「UTF-8」←→「EUC-JISX0213」の変換をおこなっています)。
- 以下の文字(FULLWIDTH TILDE, U+FF5E, "〜") EM DASH (U+2015, "―") DOUBLE VERTICAL LINE (U+2225, "//") MINUS SIGN (U+FF0D, "−")はMicrosoft製品では使用しますが、JISX0213:2004への変換ルールが違う文字であるためデータベースに登録してしまうと問題が起こります
- dbsを使用するプログラムは最新のプロトコルにしUTF-8で通信をおこなう必要があります
内部的な動作
日医標準レセプトソフト Ver.4.5.0からミドルウェアの内部コードは「UTF-8」で動作するようになりました。必要な場合にEUC-JISX0213(EUC-JP)へ変換して動作させています。
クライアントからのはmonsiaj(Unicode)、glclient2(UTF-8)、glclient(EUC-JP)で動作しサーバーに取り込む時点で必要ならUTF-8に変換されます。
UTF-8に変換されたデータは言語ハンドラの定義に従い文字コードが変換されます。COBOLの場合はEUC-JP(EUC-JISX0213)に変換されます。
またデータベースのエンコーディングにより自動判定され、EUC-JPの場合はデータベース操作時に変換されます
さらにデータベースがEUC-JPである場合はCOBOL側で入力値をチェックし、拡張漢字を「■」に置き換えられます。
拡張漢字が有効な場合、COBOL側ではすべてEUC-JISX013で処理しており、拡張漢字の一部文字が3バイトで処理される事になります。現時点では「氏名欄」のみ使用可能であり、「氏名欄」では入力可能文字数 * 3のバイト数分を用意して定義する必要があります。
※「EUC-JP」は「UTF-8」との変換ルールにCP932のルールが含まれることが多く、「EUC-JISX0213」と一部互換性がありません。そのため、内部的にはすべて「EUC-JISX0213」と「UTF-8」の変換ルールを使用するようにしています