2020/11/03
アビリンピック過去問題|第37回全国(2017)データベース
本ページはプロモーションが含まれています
Accessでデータベースを構築する技能を競うアビリンピック競技種目「データベース」。限られた時間の中で、誰もが操作しやすいデータベースを作り上げるには、利用者の立場に立って構築するという姿勢が欠かせません。
2017年全国アビリンピックでは、データベース構築に必要な各種のデータがCSVファイルで提供されることになり、選手はデータベース構築に専念できるようになりました。
とはいえ、3時間で1つのデータベースを完成させるのは大変。重要な評価ポイントである操作のしやすさを効率よく実現するには、過去問題を使って事前に何度も練習しておく必要があります。
競技種目「データベース」とは? 競技で使用されたOSとソフト
アビリンピック競技種目「データベース」は、Microsoft Officeの1つであるAccessを用いて、テーブルの更新・閲覧・印刷に対するプロセスを構築する種目。作成するデータベースは、受発注システムや現金出納簿システム、患者管理システムなど毎年異なります。
身体障害者・知的障害者・精神障害者が参加可能です。
2017年全国アビリンピックの「データベース」では、「アビリンピック病院における患者を管理する『患者管理システム』」の作成が求められました。参加選手数は12名でした。
競技で使用されたOSはWindows 7 Pro、使用されたソフトはAccess 2010です。
「データベース」の制限時間と配布されるデータ等
2017年全国大会の「データベース」では、データベース構築に必要な各種データが配布されるようになり、選手はデータベース自体の構築の専念できるようになりました。
しかし、初見ですぐに作れるような簡単な課題ではありませんし、作業量も少なくありません。
「データベース」の制限時間
競技種目「データベース」の制限時間は3時間です。
3時間以内でデータベースの構築、実装を完了させましょう。2017年大会では13:30-16:30で実施されました。
「データベース」で配布されるデータ等
2017年大会の課題は「アビリンピック病院における患者を管理する『患者管理システム』」の作成。システムの構築にあたり、患者の各種情報等は会場側からCSVファイルで提供されました。
<「データベース」競技当日の会場で用意・配布されるもの>
- 患者氏名情報CSVファイル
- 診療情報CSVファイル
- 処方箋情報CSVファイル
- 競技で使用するAccessファイル
- USBメモリ(4GB以上)
競技では、これらのファイルを使って仕様に基づいたデータベースを作成し、USBメモリに保存して提出します。
なお、以下のものは事前の会場下見では持ち込めますが、大会当日は一切持ち込めません。持ち込むと不正行為と見なされる場合があるので注意しましょう。
<大会当日の競技会場に持ち込めないもの>
- ノートやメモ紙
- 参考図書
- CD-R
- USBメモリ
もし障害特性のためにパソコン操作支援技術を導入する必要がある場合は、必ず事前に事務局に申請し、許可を受けてください。
「データベース」の仕様条件と10個の課題
「データベース」には10個の課題があります。3時間で完成させるには量が多いので、常に時間配分を意識して取り組みましょう。
仕様や注意事項等に見落としがないかチェックすることも、完成度を高める上で重要です。
「データベース」の仕様条件等
作成するデータベースやデータベースに使われるデータ等は、以下の仕様条件に従ったものとなります。
<「データベース」の仕様条件>
- 患者に同姓同名はいない
- 患者番号は重複しない
- 患者は1日にひとつの診療科しか受診できない
- 処方箋情報は一度に複数の薬を処方することもある
- 使用するテーブルは、すでに用意されているものを使う
- マクロに限らず、VBAなどAccessの機能をすべて使用してよい
- CSVデータの各要素データは、ダブルクォーテーションで囲わない
- CSVデータの区切り文字はカンマとする
- 課題の詳細仕様は指定されたテーブルを使用する
課題の詳細仕様として指定されたテーブルは、以下の通りです。
<患者氏名情報>
- 患者番号:テキスト型・最大6桁・空文字は許可しない
- 氏名:テキスト型・最大30桁・空文字は許可しない
- ふりがな:テキスト型・最大60桁・空文字は許可しない
- 性別(M:男性、F:女性):テキスト型・最大1桁・空文字は許可しない
- 生年月日(書式= yyyy/mm/dd):テキスト型・最大10桁・空文字は許可する
- 郵便番号(書式= xxx-xxxx):テキスト型・最大8桁・空文字は許可する
- 住所(都道府県名を除く):テキスト型・最大40桁・空文字は許可する
- 電話番号(書式= ___-___-____):テキスト型・最大15桁・空文字は許可する
- 保険区分:数値型・整数型
- 保険番号:テキスト型・最大12桁・空文字は許可する
<診療情報>
- 患者番号:テキスト型・最大6桁・空文字は許可しない
- 診療日(書式= yyyy/mm/dd):テキスト型・最大10桁・空文字は許可しない
- 診療区分:数値型・整数型
- 診療科コード:数値型・整数型
- 主治医コード:数値型・整数型
- 診療内容:テキスト型・最大100桁・空文字は許可する
- 診療点数:数値型・整数型
<処方箋情報>
- 患者番号:テキスト型・最大6桁・空文字は許可しない
- 診療日(書式= yyyy/mm/dd):テキスト型・最大10桁・空文字は許可しない
- 処方薬コード:数値型・整数型
- 処方薬点数:数値型・整数型
- 錠数/日:数値型・整数型
- 服用日数:数値型・整数型
また、保険区分、診療区分、診療科コード、主治医コード、処方薬コードは、以下の規定に従わなければなりません。
<保険区分>
- 国保
- 社保
- 共済
<診療区分>
- 初診(診療点数 10)
- 再診(診療点数 5)
<診療科コード>
- 内科
- 消化器科
- 婦人科
<主治医コード>
- 徳川家康
- 織田信長
- 明智光秀
<処方薬コード>
- カナマイシン50mg(処方薬点数 5)
- カロナール25mg(処方薬点数 4)
- セルアミド50mg(処方薬点数 3)
- プログラシン30mg(処方薬点数 9)
- ケレアノール20mg(処方薬点数 8)
- プレドニン10mg(処方薬点数 7)
課題1:患者システムのメニューを作成する
「データベース」の課題1は、患者システムのメニュー作成です。
メニューはボタン形式にする必要があり、さらに以下の要件に従わなければなりません。
<「データベース」課題1の要件>
- メニューは以下のボタンをフォームの任意の位置に配置する
- 患者氏名情報CSVファイルからの登録
- 診療情報CSVファイルからの登録
- 処方箋情報CSVファイルからの登録
- 患者のすべての情報の表示
- 患者氏名情報の画面からの登録変更
- 診療情報の画面からの登録変更
- 処方箋情報の画面からの登録変更
- 患者情報一覧表の作成
- 患者氏名情報、診療情報及び処方箋情報のデータを一括削除
- メニューを閉じる
なお、「メニューを閉じる」ボタンをクリックするとAccess自体が終了するよう設定しましょう。
課題2:患者の氏名情報CSVファイルをもとにデータ登録できるようにする
「データベース」2つめの課題は、患者氏名情報CSVファイルからデータを登録できるようにすることです。
まずはフォームに以下の要素を配置します。
<「データベース」課題2のフォームに配置する要素>
- CSVファイルを検索する「検索」ボタン(クリックすると「ファイルを開く」ダイアログボックスが表示され、選択できるようにする)
- 検索したCSVファイル名を表示及び入力するテキストボックス(CSVファイル名をフルパスで表示する)
- 登録方法を選択するオプションボタン(患者氏名情報をすべてクリアして新規登録するor同じ患者番号があれば上書きし、なければ新規登録する)
- 処理を実行する「登録」ボタン
- メニューに戻る「閉じる」ボタン
もし以下のエラーがある場合は、そのエラー内容をモーダルフォームで表示し、CSVファイルの中のすべてのデータを登録しないよう設定しましょう。
<「データベース」課題2で想定されるエラー>
- テキストボックスに入力したCSVファイルが存在しない
- 指定した桁数以上のデータがある
- 数値データの中に数値以外の文字データがある
ここまでの作業が完了したら、以下のCSVファイルを使って各テーブルにデータを登録してください。
<「データベース」課題2で登録するデータ>
- 患者番号:半角数字・最大6桁・空文字なし
- 氏名:全角文字・最大15桁・空文字なし
- ふりがな:全角文字・最大30桁・空文字なし
- 性別(M:男性、F:女性):半角英字・最大1桁・空文字なし
- 生年月日(書式= yyyy/mm/dd):半角英数字・最大10桁・空文字あり
- 郵便番号(書式= xxx-xxxx):半角英数字・最大8桁・空文字あり
- 住所(都道府県名を除く):全角文字・最大20桁・空文字あり
- 電話番号(書式= ___-___-____):半角英数字・最大15桁・空文字あり
- 保険区分:半角数字・最大1桁・空文字なし
- 保険番号:半角数字・最大12桁・空文字あり
課題3:患者の診療情報CSVファイルをもとにデータ登録できるようにする
課題3では、診療情報CSVファイルからデータを登録できるようにしましょう。
フォームに配置する要素および登録方法のオプション、想定するエラー内容およびエラー時の処理は課題2と同様です。
他に、課題3では、各テーブルの中に以下のデータを登録する必要があります。
<「データベース」課題3で登録するデータ>
- 患者番号:半角数字・最大6桁・空文字なし
- 診療日(書式= yyyy/mm/dd):半角英数字・最大10桁・空文字なし
- 診療区分:半角数字・最大1桁・空文字なし
- 診療科コード:半角数字・最大1桁・空文字なし
- 主治医コード:半角数字・最大1桁・空文字なし
- 診療内容:全角文字・最大50桁・空文字あり
- 診療点数:半角数字・最大2桁・空文字なし
課題4:患者の処方箋情報CSVファイルをもとにデータ登録できるようにする
課題4では、処方箋情報CSVファイルをもとにデータを登録できるようにします。
フォームに配置する要素、登録方法のオプション、想定されるエラーとエラー時の処理は、課題2と同様です。
課題4で各テーブルの中に登録するデータは、以下の通りです。
<「データベース」課題4で登録するデータ>
- 患者番号:半角数字・最大6桁・空文字なし
- 診療日(書式= yyyy/mm/dd):半角英数字・最大10桁・空文字なし
- 処方箋コード:半角数字・最大4桁・空文字なし
- 処方薬点数:半角数字・最大2桁・空文字なし
- 錠数/日:半角数字・最大1桁・空文字なし
- 服用日数:半角数字・最大2桁・空文字なし
課題5:画面から患者の氏名をもとに患者のすべての情報を表示できるようにする
課題5では、画面で入力した患者氏名と診療日をもとに、その患者の氏名情報、診療情報、処方箋情報を表示できるようにしましょう。
まず、フォームに「表示」ボタンと「閉じる」ボタンを配置します(レイアウト自由)。
次に、患者番号、患者の氏名、または患者のふりがなで検索できるようにし、検索結果のリストの中から患者を選択できるように設定しましょう。
最後に、患者を選択して「表示」ボタンをクリックした時、以下の情報がリスト形式で表示されるようにします。
<「データベース」課題5でリスト表示する内容>
- 患者番号・患者氏名・ふりがな
- 性別(男、女で表示)
- 住所
- 診療日(和暦)
- 保険区分(保険区分名を表示)
- 診療区分(診療区分名を表示)
- 診療科コード(診療科名を表示)
- 主治医コード(主治医名を表示)
- 診療内容
- 処方薬コード(処方薬名を表示)
課題6:患者の氏名情報を画面から更新できるようにする
課題6では、患者の氏名を画面から更新できるようにしましょう。
フォームに配置するボタンは、「登録」と「閉じる」の2種類(レイアウト自由)。患者番号、氏名、ふりがなのいずれかで検索できるようにし、検索結果のリストの中から患者を選択できるように設定してください。
最後に、患者氏名情報に関して、以下のデータの登録や内容の変更ができるようにしましょう。
<「データベース」課題6で登録・変更可能対象とするデータ>
- 性別(ドロップダウンリストから選択できるようにする)
- 生年月日
- 郵便番号
- 住所(都道府県名を除く)
- 電話番号
- 保険区分(ドロップダウンリストから選択できるようにする)
- 保険番号
課題7:患者の診療情報を画面から更新できるようにする
課題7では、患者の診療情報を画面から更新できるようにする必要があります。
フォームに配置するボタンは、「登録」と「閉じる」ボタン(レイアウト自由)。課題5や6と同様に、患者番号、氏名、ふりがなのいずれかで検索できるようにし、検索結果のリストの中から患者を選択できるようにしましょう。
診療情報に関しては、以下のデータの登録や内容の変更ができるように設定します。
<「データベース」課題7で登録・変更可能対象とするデータ>
- 診療区分(ドロップダウンリストから選択できるようにする)
- 診療点数(表示のみ)
- 診療科(ドロップダウンリストから選択できるようにする)
- 主治医(ドロップダウンリストから選択できるようにする)
- 診療内容
課題8:患者の処方箋情報を画面から更新できるようにする
課題8では、患者の処方箋情報を画面から更新できるようにします。
フォームには、これまでと同じように「登録」と「閉じる」ボタンを配置しましょう。加えて、患者番号、氏名、ふりがなのいずれかで検索できるようにし、検索結果のリストの中から患者を選択できるようにします。
処方箋情報に関しては、以下のデータの登録や内容の変更ができるように設定しましょう。
<「データベース」課題8で登録・変更可能対象とするデータ>
- 処方薬(ドロップダウンリストから選択できるようにする)
- 処方薬の錠数/日
- 服用日数
- 処方点数(表示のみ)
なお、複数の薬を登録できるよう、処方薬は追加・削除できるよう設定してください。
課題9:画面から印刷条件を指定して患者情報一覧表を作成できるようにする
課題9では、印刷条件を指定して患者氏名情報一覧表を作成できるようにします。
フォームに配置するボタンは、以下の5つです。
<「データベース」課題9でフォームに配置するボタン等>
- 「印刷」ボタン:印刷を実行する
- カレンダーまたはテキストボックス:抽出する診療日の範囲を指定する(何日から何日までを検索可能にすること)
- テキストボックス:抽出する氏名を入力する(部分一致の検索を可能にすること)
- テキストボックス:抽出する処方薬点数と診療点数の総合計点数を入力する(何点以上、何点以下で検索できるようにすること)
- 「閉じる」ボタン:メニューに戻る
印刷では、A4サイズ横の用紙に、1ページあたり10名まで印刷できるよう設定しましょう。印刷順は、ふりがな順です。
印刷内容は、以下の10項目です。
<「データベース」課題9で設定する印刷内容>
- 患者番号・氏名・ふりがな
- 性別(男、女で印刷)
- 生年月日(和暦で印刷)
- 保険区分名
- 保険番号
- 処方薬点数の合計
- 診療点数の合計
- 処方薬点数の合計と診療点数の合計の総合計点数
課題10:患者の氏名情報および診療・処方箋情報を一括して削除できるようにする
「データベース」最後の課題となる課題10では、登録している患者氏名情報・診療情報・処方箋情報のすべてを一括して削除できるように設定します。
フォームに配置するボタンは、「削除」ボタンと「閉じる」ボタンの2種類。「削除」では削除処理を実行し、「閉じる」ボタンではメニューに戻れるよう設定してください。
以上を時間内に完了させて実装が済んだら、データをUSBメモリに保存し、審査員に申し出て競技を終了できます。
「データベース」でのポイント・注意点
「データベース」の採点は、5つの観点から行われます。
- 登録されたデータの有無
- 使われているAccessの機能
- 可視性(画面の見やすさ・マニュアルを見なくても直感的な操作が可能)
- 操作性(操作のしやすさ・マニュアルを見なくても直感的な操作が可能)
- 機能性(処理の正確さ)
また、採点する際にデータ更新時や印刷処理の前にAccessが自動表示するダイアログが表示されると減点されてしまいます。
競技時間は3時間あるものの、とにかく課題量が多いので、効率よく作業を進めなければなりません。事前に何度も練習しておかないと、時間切れになって未完成のまま提出することになり、評価が大きく下がってしまうでしょう。
練習では、まず普段の自分の作業スピードを測ることが大切です。ストップウォッチを使ってアビリンピック過去問題に取り組み、実際にかかった時間と競技時間を比較しましょう。
競技時間より多くの時間がかかってしまった場合は、苦手な部分を繰り返し練習し、その後、スピード感を意識しつつ全体の練習に取り組むとよいでしょう。
データベース構築にあたっては、使う人が操作を間違わないようなインターフェースの実現やエラー表示のタイミングがポイントです。使いやすさを実現するVBAコーディング力とあわせて、こうした点にも注意しつつ、課題に取り組んでみてください。