メニューファイルの書き方

メニューファイルの書き方
メニューファイルはメニューの選択肢を記述するファイルです。内容はテキストファイルで、選択肢を列挙したものです。


編集は設定(〇〇cnf.txt)ファイルと同様に「メモ帳」アプリを使ってください。
メニューファイルには階層メニュー(tree_menu)用と候補メニュー(candidate_menu)用があります。
階層メニューファイル
内容は選択肢の階層表現です。
最も上位の階層は行頭の TAB 無し、階層が1つ深くなるごとに行頭の TAB の個数が1 つづつ増えます。行頭の空白文字は無視します。
行中あるいは行頭の半角スラッシュ2つ“//”から行末まではコメントとみなして Ma2.exe は無視します。

原則的に1メニュー1ファイルですが、1つのファイルに複数のメニュー用の選択肢を納めることもできます。
その際にはトップレベルの項目名をファイル名に続けて指定してください。
たとえば、dmgcnf.txt 内で“file = JSA 選択. txt#手術部位;” とした場合、メニュー項目は“a:脳神経・脳血管”、“b:開胸・縦隔”…となります。
さらに“c:心臓・大血管”の子項目として“1:A-C Bypass (on pump)”などが作られます。


ここで半角コロン“:”の左側はJSA麻酔台帳の項目分類表記で、右側はその名前です。この記号:名称ペアは JSA 麻酔台帳での規則に準拠するための対策であり、paperChart では1連の文字列として取り扱い、JSA麻酔台帳へ転送する際にコロンの左右で切り分けて「記号」と「名称」として扱っています。
半角スラッシュ“/”の右側は子項目です。JSA台帳では子項目として扱っていますが、子項目が1つしかない場合 paperChart 側では1項目として扱い、メニューがシンプルなっています。
候補メニューファイル
候補メニューファイル
- DMG-病名.txt
- DMG-術名.txt
階層表現はありません。1行1件で半角コンマで区切って左側が名称、右側が読みです。「読み」は必ず全角文字でお願いします。「カタカナ」でも「ひらがな」でも構いません。

画面上の反映のされ方
一般情報(demograph)での項目入力について、このように使用されます。

ボックスに未記入で▼を押すと「キーワードを入力してください」と出てしまいます。

ボックス内に、病名の一部を全角で入力、▼を押します。

入力された文字から候補の病名をひろってリスト化されます。

任意の項目(この場合は病名)を選択すると、ボックスにそのまま病名名称が入力されます。
病名は、一般情報の「術前・術後病名」に、術名は「予定術名・実施術名」に使われます。
MA2.exe の使い方(demographs 節と incidents 節の書き方)

MA2.exeでのレイアウト設定はdmgcnf.txt の中に書いてください。
MA2.exe の起動方法は dircnf.txt の command 節の中の例を参照してください。MA2.exe の起動には引数として /std_arg/ のほかに “layout=???” としてレイアウトを指定した節の名前を書いてください。 “layout=???” を指定しないと MA2.exe は動作しません。
MA2.exe は4種類の表示(入力)欄を持ちます。
- text_item(文字列入力)
- radio_item(ラジオボタン選択)
- tree_menu_item(階層構造のメニュー)
- candidate_menu_item(キーワード選択可能なメニュー)
2種類のメニューは選択肢にない文字列をキーボードから入力(text_item のように)することもできます。
レイアウト表の例としてdmgcnf.txt の中の demographs 節と incidents 節を参照してください。
text_item
- mnemonic
- 患者属性情報の項目名(ID、患者姓名、など paperChart 内で取り扱う名前)を書いてください。
- label
- 画面に表示する名前を書いてください。これを指定しないと mnemonic で指定された項目名が画面にも表示されます。 たとえば患者識別番号は paperChart 内では単に“ID”という名前ですが,これでは分かりにくいので画面に“患者 ID” と表示したいときは menmonic=ID; label=患者 ID; としてください。
- character
- 入力できる文字を列挙してください。たとえば患者 ID なら半角の0~9と半角ハイフン,身長/体重ならハイフンではなく小数点,など。これを指定しないと文字種の制限はしません。
- lines
- 入力欄の高さを何行分取るか。指定しないと1行分の高さです。幅は後述の column_width と column_divide で設定します。
- ime
- この欄の入力を半角英数モードで行うか仮名漢字変換モードで行うかの選択です。ascii かkana を指定してください。これはあくまで当該入力欄にカーソルを持ってきたときの初期状態を決めるだけです。入力中に半角/全角の切り替えはできます。何も指定しないと入力モードはその直前に使われていたモードのままです。
- alert
- 欄に何も入力されていないときに警告のための赤枠を表示します。yes かno を指定してください。指定しないと no とみなします。空白文字だけが入力されているときも赤枠表示です。これは単なる警告表示だけです。この表示が出ていても「OK」ボタンを押してMA2.exe を終了できます。
radio_item
- mnemonic、label
- 前述。
- choice
- 選択肢を列挙してください。次の“file”との併用はできません。
- file
- 選択肢をここに列挙するのではなく別に作られたメニュー項目ファイル内から取り出します。メニュー項目ファイルはdircnf.txt の demograph_menu_directory 内に置かれるものとします。ファイル名の後ろに半角“#”に続けて部分項目名を指定することもできます。
- 例: “file = JSA 選択.txt#手術部位;” は“JSA 選択.txt”という名のファイルの中の“手術部位”という部分項目を表します.
- lines、ime、alert
- 前述。
tree_menu_item
- mnemonic、label
- 前述。
- file
- 前述。raio_item と異なり,選択項目を choice によって,ここに直接列挙することはできません。入力欄右側の「▽」をクリックすると選択肢メニューが表示されます。あるいは文字入力欄にキーボードから文字を打ち込むこともできます。
- editable_menu
- yes を指定すると入力欄右側「▽」をクリックで表示される階層メニューの最下欄に「編集…」という項目が表示され、麻酔中や記録清書中にユーザーがメニュー項目内容を追加/削除/変更できます。
- concatenation
- 階層メニューの親メニュー項目も含めた名前を生成します。例えば術者名「外科」の下の「川口」を選択した場合、concatenation を指定しないと、術者名として「川口」とだけ記載されますが、concatenation=”の”; を指定すると術者名は「外科の川口」という文字列になります。=の右辺で指定された文字列を間に挟んで親メニューから子メニューまでの全ての文字列を連結したものが結果になります。
- lines、ime、alert
- 前述。
candidate_menu_item
文字入力欄に検索したい文字列を入力してから入力欄右側の「▼」をクリックしてください。該当する候補がメニュー項目として表示されます。tree_menu_item とは異なり、メニューに階層構造を持たせることはできません。
- mnemonic、label
- 前述。
- file
- 前述。raio_item と異なり、選択項目をchoice によって、ここに直接列挙することはできません。またtree_menu_item と異なり、ファイル名に#で部分項目名を続けることもできません。1ファイルが1メニューです。
- editable_menu、concatenation
- 使用できません。このメニューファイルは術名リストや病名リストなどの選択項目が多数ある場合を想定しています。 人名などのように麻酔中に動的に追加削除することは想定していませんし、階層化もできません。
- lines、ime、alert
- 前述。
- column_width
- 1行分の横幅を画面のドット単位で column_width=350; のように指定します。次に指定すると新たな横幅で新たなカラムが右隣に作られます。新たなカラムを作ると次の column_divide は強制的に1に戻されます。
- column_divide
- ひとつのカラム内を左右に何分割するかを指定します。
- separator
- ひとつのカラムの全幅にわたり区切りの横線を引きます。 separator=段落名; のように指定して使ってください。「段落名」という文字列を表示し、その右側に区切りの水平線を引きます。 separator=””; とすると単なる水平線だけです。
- title
- ウィンドウ左上に表示される画面タイトル文字です。
JSA 麻酔台帳対応のために行うべき変更

JSA 麻酔台帳に麻酔記録データを送るためには各職員(術者、麻酔科医、看護師)について職員コード、所属科コードが必要です。さらに各手術室に対して手術室コード、各病棟に対して病棟コードが必要です。これらのコードは各施設で異なりますので、それぞれ設定していただきます。
なお、病名には ICD10 コードを、術名には診療報酬請求番号を、それぞれ既に設定してあります。その他のインシデント項目は麻酔科学会の決めたコードを設定しています。

メニューには、コードと名前を半角コロン“:”で区切って記載します。メニュー編集の際に“1055:安積”のように記 載してください。半角スラッシュ“/”は親項目と子項目のつなぎに使われますが、これはユーザーが記入する必要はありません。
前記の Ma2.exe の使い方の tree_menu_item 中の concatenation で指定された文字列で 親/子/孫 項目が一連の文字列につなぎ合わされます。全角コロンは区切り文字とはみなしません。“1055 安積”のように半角コロンがない場合は数字も含めて名前であり、コードは付加されていないものとみなします。
注: 患者ID と患者氏名をこの方法で連結して入力することはできません。
科コード、手術室コード、病棟コードの3つは、paperChart 側で設定したコードと JSA 台帳側で設定したコードが一致していなくてはなりません。
JSA 台帳内で、コードは文字として認識されています。数値ではありません。つまり“1”と“01”は異なるコードとして認識されています。コードは文字レベルで一致させてください。職員名、病名、術名はコードと名前の対応が厳密でなくてもかまいません。違いがあっても JSA 台帳側でコードの追加が自動的に行われます。
