IT業界に憧れる臨床工学技士が独学でAndroidアプリを開発した話

# はじめに
病院や医師が本気の医療を提供するためには、医療機器も実力を発揮できるよう、常日頃から交換部品や消耗品の定数を維持しておく必要があります。医療機器を安全かつ効率的に運用するうえで在庫管理は重要ですが、やはり患者さんの命に直接影響するという意識が低く、在庫管理は軽視されがちです。

私は臨床工学技士でありIT職種ではありませんが、部署内で使用する在庫管理アプリを開発・運用し2年ほど経過しました。そんなお話をしたいと思います。完成度については、プロの皆さんには遠く及ばないことは存じておりますので、温かい目で読んでいただけるとありがたいです。


# 私について
札幌市内の病院に勤務する臨床工学技士ですが、大学生のときからアプリ開発に興味がありました。Java・Kotlin・Python・C#などを独学で勉強し、自分ができることを使って自分や周りの人の仕事を少し楽にしたいと考えています。
### 臨床工学技士とは
臨床工学技士は専門学校や大学を卒業後、国家試験に合格することで厚生労働大臣より免許を受け、医療機器の操作や保守管理を生業としています。
我々が携わる医療機器は多岐に渡り、人工呼吸器・人工透析装置・電気メス・除細動器・ペースメーカー・エコー・内視鏡・輸液ポンプなど、病院内で使用される多く医療機器の点検やトラブル対応を行っています。また、治療や検査を行う現場でも臨床工学技士は活躍しており、医師の横に立ち、安全な医療を提供するための直接的な介助を担うこともあります。


# なぜ作ったか
## 物品管理は紙の出納帳だった
私の所属する部署”臨床工学科”では60品目以上約200個の医療機器の交換部品や消耗品を在庫しています。各物品は衣装ケースや小さな段ボールに収納していますが、これらの出納管理はExcelで作成した表を印刷し、払出や納品の際にペンで記入するという形をとっていました。

### 在庫リストの変更に弱すぎる
在庫する物品は院内の医療機器の更新や廃棄に伴い変更となります。紙の表では物品を追加・削除する際にExcelファイルを更新したり、新しい表を印刷しなければなりません。
今までの出納の記録は古い表に書かれているので、表を差し替えると記録が確認できません。

### 出納帳と在庫数が食い違う
在庫管理の仕組みとして機能していないと言って差し支えないと思いますが、実際の在庫数と記録している数が大きく食い違っていることがほとんどでした。

### そもそも記入が面倒
紙ベースの出納帳では、納品・払出の際に表の中から物品の名前を探し、日付と納品・払出の個数、担当者名、払出先の部署などを記入しなければなりませんでした。さらに、出納帳に収載しきれていない物品が多々あり、このような物品については発見時に物品の一般名を調べ、表に追加していました。私たちは在庫管理係として人員を配置しているわけではなく、それぞれのスタッフが臨床業務の合間に在庫の納品や払出を行っているため、この作業が非常に面倒でした。

# どんなアプリ？
上記の問題を解消するため、部署のスタッフが手軽に作業しやすいようスマートフォン向けにアプリを開発することにしました。
構成は以下の通りです。

- Kotlin
- XML
- SQLite3

院内ではwi-fiがないエリアもあるのでスタンドアロンで動作するようデータベースにはSQLite3を採用しました。IDEはAndroidStudioを使用し、Kotlinでコーディングを進めました。さらに費用が一切掛からないことが今回のアプリの条件なので、私が機種変更して使わなくなったAndroidスマートフォンに自作したアプリをインストールしました。

# 機能

### トップ
トップ画面では４つのボタンを配置しました。
一番下の小さなボタンは設定ボタンのつもりです。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229488/2fd452d3-64e2-51dd-041d-32736cb7ddc4.png" width="300px">

### 在庫の台帳
「納品と払い出し」ボタンをタップし、物品のカテゴリを選択すると下のような在庫の台帳画面へ遷移します。この画面で物品名をタップすると納品と払い出しの操作を選択できます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229488/3ff818f1-852c-10ba-5fb0-f23fc2597a50.png" width="300px">


### 納品・払出機能
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229488/1da7fa7c-cc48-d093-03dd-d37c1a9b6607.png" width="300px">

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229488/f6778dcf-4fe3-45f7-8cb5-eb1c7d861e78.png" width="300px">

前画面で「納品」を選択すると上のような画面へ遷移します。
必要な情報を入力して実行ボタンをタップすることでデータベースを更新します。
納品画面では実行ボタンをタップし、在庫数と納品数を足した数が定数を上回るとき、右画像のようなダイアログを表示して定数の変更の提案・確認を行います。
全画面で「払い出し」をタップすると同様のレイアウトの払い出し画面へ遷移し、払出先や払い出す個数を入力し実行ボタンをタップすることでデータベースを更新します。

### 出納帳
トップ画面で「入出庫履歴」をタップすると出納帳画面へ遷移します。
ここでは納品と払い出しの履歴を確認します。変更や削除などの操作は実装していません。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229488/f040a347-1039-effd-1a6a-08ea2c7d4323.png" width="300px">


### 定数チェック機能
定数チェック画面では、データベースの中から在庫数が定数を下回っている物品を表示します。
さらに、発注数として在庫数と定数の差を表示します。
画面上部のプリンターマークのボタンは印刷ボタンです。印刷ボタンをタップすると「MEセンター在庫管理システム」のLabelと印刷ボタンを不可視化し、白地に「定数不足物品発注票」のLabelと印刷ボタン以下のListViewのみが黒字で表示され、事務方に提出する発注票を作成します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229488/a056c1e3-becb-2324-d0d3-20ebb9711f68.png" width="300px">


### スタッフリスト
アプリを使うスタッフのリストを編集する画面です。スタッフの名前を選択して画面中部のEditTextを操作することで名前を変更します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229488/c1a8fa98-78db-66cc-99d2-b090855fc05a.png" width="300px">


# 作ってみて思ったこと

### パソコンは作業のハードルが高い
目的の作業がどんなに些細な内容でも、パソコンを立ち上げ、EXCELのシートに値を入力することは多少のハードルがあると感じました。パソコンは立ち上がっていても、更新するEXCELファイルを探し、表の中から対象の物品名を見つけて値を書き換えるという作業は臨床業務の狭間では大変面倒です。
アプリを導入してからはみんながデータベースを更新してくれるので、私が一人で頑張ることは減りました。

### 物珍しさは大事
アプリを導入したことで部署のみんながアプリを使用し物品の出納帳記載漏れが減少しました。それはアプリの使いやすさや機能よりも「アプリ作ったって言ってたな」とか「しっかり管理しようとしてるんだな」などといった人の気持ちが要因であると考えています。
臨床工学技士はコメディカルの一種でありIT職種ではありません。その臨床工学技士がアプリを開発・導入したことで北海道の医療業界専門紙より取材を受け記事にしていただく機会をいただきました。

### デザインって難しい
どんなデザインにするとみんなが使いやすいかを考えることは非常に難しいと感じました。配色やボタンの配置、画面遷移など考えることがたくさんありました。デザイナーという職の重要性を痛感しました。優れたデザインであることと装飾的であることは別であると、素人なりに理解したつもりです。
今回開発したアプリはあまりデザインにこだわらず、取り急ぎ必要最低限の機能に留めました。今後はもっとデザインにこだわり、機能の充実を目指して保守・運用したいと思います。

### 使っている人の意見が聞きたい
「こんな機能があったら」「こういうデザインにしたい」などと自分では思っていることがたくさんありますが、アプリを使っているスタッフも意見を持っていると思います。
機能拡充と私の成長のために思っていることは遠慮なく言ってほしいと伝えてはいますが、なかなか言ってもらえていません。周囲の人の要望を聞き、なんとか叶えようとしたときに新しい何かを得られる気がするのでどんどん言ってほしいです。

### プロの人ってすごい
私は素人で才能やセンスに恵まれた者ではなく、一箇所に躓くたびに行き詰まり、ネットで調べたり参考書を読んだりしてなんとか実装を進めています。本物のエンジニアの方々はこれらの一つ一つを当たり前のように習得し、開発を進めていると思うと憧れや尊敬の眼差しを向けずにはいられません。普段何気なく利用しているアプリもエンジニアの皆さんの研鑽の賜物であると感じました。

# おわりに
素人が在庫管理アプリを開発し、職場で運用している話を書きました。
臨床工学技士を含め医療職種にとって在庫管理は花形とは言えず、おろそかにされがちです。楽しくもないし、人に感謝されることもなくやりがいを感じにくい業務の一つだと思います。ですが、医療を安定して提供するには非常に重要な業務です。
今回は最低限の機能とデザインのアプリになりましたが、今後は研鑽を重ねより良いアプリへとアップデートさせていきたいと思います。