薬剤師のプログラミング備忘録

変人薬剤師の独り言

制作状況報告 2017/07/11

この辺までできてます。基本的にはPHPSQLを使用しているので(あとjavascriptも)、セキュリティ面を厳しくしないとダメですね。

次回から症例の閲覧ページ作成に入ります。

今のところは処方の妥当性等について、項目を設定して投票性のリアルタイムレーダーチャートでグラフを作れるといいかな、と構想してます。

デザインに関してはcssで適当に書いてるので、システム構築後に修正予定です。

 

・ログインページ

f:id:MC753:20170711174520g:plain

・トップページ

f:id:MC753:20170711174524g:plain

・検索

f:id:MC753:20170711174529g:plain

・処方入力画面

f:id:MC753:20170711174532g:plain

・オートコンプリート(診療科)

f:id:MC753:20170711174536g:plain

・オートコンプリート(薬剤名)部分一致対応

f:id:MC753:20170711174543g:plain

f:id:MC753:20170711174549g:plain

・オートコンプリート(用法)前方一致

f:id:MC753:20170711174553g:plain

f:id:MC753:20170711174556g:plain

・未入力チェック

f:id:MC753:20170711174600g:plain

・一部未入力チェック

f:id:MC753:20170711174609g:plain

・入力内容チェック

f:id:MC753:20170711174612g:plain

・入力後トップページ

f:id:MC753:20170711174616g:plain

・マイページ

f:id:MC753:20170711174620g:plain

・登録内容変更

f:id:MC753:20170711174623g:plain

 

今日の進捗

最近の投稿

 7/11 15:00 その件について / Aさん

 7/11 14:55 あの件について / Bさん

みたいのが作りたくて、どうしたらいいかなーと考えていました。

SQLで全件取得して、PHPのforかwhileで指定回数回すのが一番いいかなー。

と、思ってたら、タイムレコードは全件に付属させるものなので、結局はSQLから

 

"SELECT * FROM xxx WHERE xxxx" ではなく、

"SELECT * FROM xxx ORDER BY xxxx LIMIT x"

 

みたいな感じで、SQLからの取得件数自体を絞ればwhileでも特定件数しか表示しないと気づいたので、降順(DESC)にして、そんな感じにしました。

今週は学会で暫く手が止まってしまうので、明後日までにある程度進めたいです。

f:id:MC753:20170711174616g:plain

検索システム ー errorについて

コーディングの細かいことを書きます。

検索のシステムはphpから<input type="submit" name="検索内容">で検索ボタンを表示。

postした内容を

 if (!empty($_POST['検索内容'])) {

  $sql_search = sprintf(' SELECT * FROM テーブル名 WHERE 検索場所 LIKE "%%%s%%" ',

  mysqli_real_escape_string("database接続用phpファイルからrequireで呼び出した関数",$_POST['検索内容'])

  );

としています。

 $results を mysqli_queryで呼び出し、配列に保管。

while($result = mysqli_fetch_assoc($results))として縦並びに呼び出してます。

 

errorに関しては

 ・$_POST['検索内容']==""の場合 -> 「検索したい語句を入力してください」

 ・!isset($result)の場合 -> 「検索された語句は登録されていません」

と表示するようにしました。

何度もTry & Errorを繰り返していますが、一ヶ月でだいぶ理解できるようになってきました。

仕事を続けていたら、できてなかったと思います。

社会人に必要なのは、興味のあることを学ぶための長期で自由な時間かもしれませんね。

 

・基本ページ

f:id:MC753:20170710091852g:plain

・何も入力しないで検索

f:id:MC753:20170710091855g:plain

・databaseに登録されていない文字を検索f:id:MC753:20170710091900g:plain

・部分一致で検索f:id:MC753:20170710091904g:plain

 

 

 

検索システムできました

一人の薬剤師として、所属と関係無く独立して意見を述べる。

それができる世の中になるといいですね。

 

 

さて、先日の夜にもちまちまと手直しをしていまして、5,6時間ぐらい戦ってました。

どうしてもリンクからvalueをpostできなかったので、input type="submit"で送信ボタン作りました。

処方閲覧画面は http:~~~~?title=xxxみたいな感じで表示して、外部からリンク引っ張ってこれるようにしたいなあと。またはhttp:~~?id=xxxですね。

勿論、ログインしないとlogin.phpに飛ばされるようにして。

デザインを見やすくして、掲示板のように議論できるようにしておけばいいかなと。vote機能なんかもつけたいですね。

f:id:MC753:20170710002406g:plain

f:id:MC753:20170710002408g:plain

処方入力のシステムとかやり甲斐とか

1,小さなトライ&エラーを何回もできるかどうか

2,結果が形として見える・残ること

3,業務における裁量権の有無

 

これがあれば、仕事は楽しいと思います。

自分にとっては、個人活動としてのプログラミングが、まさにそれだったようです。

きっとこれも、社員として所属して業務として行なうと、失ってしまうのでしょうけれども。

一人の薬剤師として勝手にトライしてエラーするわけにはいかないし、結果は患者からの情報というのは曖昧だし、古株だったので現場では自由でしたが医療において裁量権はほとんどありません。

 

人工知能は思った以上に身近です。

薬剤師に限らず、何かをクリエイトできる人類だけが生き残るのかもしれません。

いろいろ書いていましたが、削除して、今日は簡潔に。

 

処方内容入力画面です。薬剤師側のコメントや患者背景などの欄等々を加える予定です。

先週の画像ですので、今は検索内容をスクロール型にしたりと、いろいろ改良されてます。

f:id:MC753:20170709151040g:plain

f:id:MC753:20170709151044g:plain

f:id:MC753:20170709151049g:plain

f:id:MC753:20170709151055g:plain

 

 

データベース制作状況

処方入力者それぞれで、自身が入力したレシピのみを見れるようにしました。

処方入力システムは8割がた完成しているので、残りはデザインです。

jqueryを使って、動的なフォーム追加機能も付ける予定ですが、まずは枠組みだけでも完成させてしまいたいので、現在は固定の入力フォームになっています。

ここから処方検索のシステム作成に入ります。

 

 で、今回の内容ですが、

login時に、session_startさせて、idとtimeを記録します。(ついでにcookieも)

idをdatabaseのuser登録内容と照合し、password_hashで同じと確定した場合のみloginできるようになっています。

このpassword_hashと入力パスワードを照合するコードを書くのが難関でした。

sessionの多次元配列の中の連想配列のデータをpassword_hash(パスワードの暗号化)するのですが、これをpassword_verifyで照合します。通常であれば、そのまま入力すれば良いのですが、phpのログイン認証の場合はPOSTされた値とSESSIONの値とを照合しなければ行けないので、SQLに接続しながら照合すると、素人頭には3つのデータを同時進行させなければならず、かなりややこしいことになります。

と、いろいろ脳みそを溶かしながらここまで来ました。何分、完全に独学なもので、概念を理解するのに時間がかかります。

少しずつ頑張ります。

 

 

 

 

f:id:MC753:20170708105806g:plain

f:id:MC753:20170708105809g:plain