- ベストアンサー
filemakerについての質問
- filemaker12を使用して医療関係者向けのカルテ作成を行っています。診療の際に撮影した写真をフィルメーカーで保存したいと考えており、撮影日と写真を挿入する機能を作成したいです。
- 現在は患者ごとに撮影日を選択し、編集ボックスを挿入することで写真を挿入しています。撮影する写真は5枚で、フィールド名を作成して挿入しています。
- 質問は、撮影日2を使用すると自動で撮影日3が増えるような設定(もしくはスクリプト)は可能か、または撮影日2から撮影日30くらいまで一度にフィールドを作成する方法はあるか、というものです。現在はフィールド名を手作業で作成しています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
お返事が遅くなりました。なさりたいことが分かってきました。おっしゃっていることは多分実現可能だと思います。思いますが、以前ご質問で言われていたように自動でフィールドを追加することは恐らく無理です。色々とやっては見ましたが実現できそうにありません。よしんば出来たとしてもレイアウトを自動で配置することが簡単に出来ません。 ちなみにデータベース作製の効率化のステップとして重複作業の効率化、自動化という意味でならRocketMouseなどの自動化ソフトでフィールドを自動で作ること自体は可能です。RocketMouseProでは定義した自動化処理を単体で実行可能なEXE形式にする機能がありますので、フィールド作製、レイアウト配置自動化処理をEXEファイルにして、これをFileMakerのスクリプト内で実行させる方法はないわけではありません。ただ実際にRocketMouseProでフィールド自動作成までやってみましたがやはりレイアウト配置までは無理、というか極めて困難で面倒です。また安定性にもかけており上手く作成されない場合がありました。つまり実際のデータベース運用の中でのフィールド自動作製、自動レイアウト構成、というのはかなり無理がありますし、運用上安定しているともいえません。データベースに大切な運用面の安定性を犠牲にするのは実用的な方法とは思えません。やはりデータベースというものは安定して使用できてナンボのものですからやはりこの方法は避けたいというのが正直なところです。多分湯水のように時間をかけて開発してもあまり使い物にならないと思います。 結論を申し上げれば、登録する撮影日を有限(30回までとか最大値を決める)にすれば問題は解決できます、というかまだやってませんが出来ると思います。あらかじめフィールドとレイアウトを定義しておけばよいからで、多分お分かりと思いますがレイアウト切り替えであたかも自動で登録ファイルBOXが出来ているように見せかけるだけの方法です。FileMakerでは太古の昔から(私はバージョン3のころやってました。この頃はまだFileMaker社ではなくClaris社でした)行われてきた方法です。それでよければサンプルを作ってみますが30もの撮影日となると作製時間が半端ありません。実際に一患者でどの程度の回数撮影するのか分かりませんが今回はとりあえずサンプルということで登録する撮影日を3ないしは5回程度までという条件でよろしいでしょうか?出来なかったらごめんなさいですが・・・。
その他の回答 (3)
- duraphat
- ベストアンサー率46% (121/262)
即興で作った拙いデータベースで申し訳ありませんでした。いじっていると色々修正が必要なバクといいましょうかもっとシンプルにも出来ましょうし細々問題があるようです。データ保護も実装されておりませんし・・・。頂いたファイルにつきましてはFileMakerは下位互換性が基本ありませんのでとりあえず30日無料評価版でファイルを開いております。ちなみに調べるところによりますとFileMaker11と12には仕様上互換がないらしく(そういわれれば昔からバージョン間の互換性には問題がありました・・・忘れておりましたが。)、バージョン7から脈々と8年続いたfp7ファイルフォーマットもfmp12へと変わり、ファイル保存時にバージョン11以前では開けないようにするオプションまで加わり、FileMaker社はバージョン11以前を過去のものにしたい?ようです・・・。バージョン12ではオブジェクトフィールドの暗号化やレイアウト機能の強化(テーマ導入)など色々機能改善されているようですね。グラフ機能では未だに標準ではレーダーチャートは描けないようですけれど・・・。 本題に戻りまして、作成中のデータを拝見いたしましたが、それでもいまひとつなさりたいことが伝わってまいりません・・・。”一人の患者につき1レコードにして”というのは”同一患者のある任意の時点でのデータを絞り込んで表示する”ということと同義と考えてよろしいのでしょうか?もしそうであれば起動時やレイアウト切り替えの際に実行するスクリプトに検索絞込みステップを追加すればよいのではと思いますがちょっとピンと来ておりません。手書きの簡単なイラストとか伝われば何でも良いのですがこんな感じ、こんな画面、レイアウト、こんな操作で、というのをもう少し詳しく提示いただけませんでしょうか。
補足
duraphatさん 面倒をおかけしてすみません。わかりにくい説明で申し訳ありません。 レコード1→ 患者A→ (1)患者基本情報(2)来院日毎の写真5枚 レコード2→ 患者B レコード3→ 患者C レコード数と患者数は一致させたいです。 一人の患者につき1レコードにして”というのは”同一患者のある任意の時点でのデータを絞り込んで表示する”ということ ではありません。 同一患者内でのデータの絞り込む必要はありません。同一患者内での写真の履歴を見たいということです。ですので1レコードの容量が重くなっても構いません。 カルテとして記入したい内容は、(1)患者基本情報(初診時の分析値、治療方法)、(2)来院日毎の写真5枚です。(2)に関しては、来院毎に増えていくので、自動で写真挿入するboxが増えるようにしたいです。 診察時に見るのは、患者基本情報と写真の時系列の変化です。 詳しく説明すると まず患者情報をみます。次に過去の来院履歴の写真をみたいです。例えば(1)と(2)を切り替えられると良いです。 レイアウト切り替えのようなタブがあって、患者情報という項目を選べば、患者情報へ移動。写真というタブを選択すれば写真画面になり、1ページにつき5枚の写真が写っている状態になります。画面をスクロールすることにより次々に今まで撮った写真が表示されるようにしたいです。また、写真比較という項目を選択すると、1ページにつき5枚ではなくて、1ページ内に、撮影日と縮小された写真5枚がリスト形式に並んでいるようなものがあれば理想です。 拙い説明で申し訳ありませんがご理解いただけたでしょうか? 毎度毎度に、ご丁寧にお答えしていただいて本当に感謝しております。
- duraphat
- ベストアンサー率46% (121/262)
再度申し上げますが写真を比較するのにわざわざいくつものフィールドを用意する必要はありません。おっしゃる方法ですと次々に新しいフィールドが出来ますが、表示レイアウトはどうされるおつもりですか?新規レコードでレコードが増えるのはデータベースですから至極当然のことです。5枚の写真を登録していくのであれば登録用の5つの登録用オブジェクトフォルダがあれば良く、比較のためには比較用の計算フィールド(計算結果はオブジェクト)を用意すれば可能です。比較用のオブジェクトフィールドにGetNthRecord関数を用いてn番目のデータを表示させれば良いだけです。こういったことは文章や言葉で説明しても恐らく埒があきませんので、簡単なデモファイルをFileMakerPro11で作成しましたので参考になれば幸いです。独学ですので専門的な教育を受けた方のように行きませんので、もっとスマートなやり方があるとは思いますが何らかの参考にはなろうかと思います。また新規登録ボタンとかカレンダーからデータのある日をクリックして選択する(FileMaker標準のドロップカレンダーは使えるようにしてあります)とか凝りだすとキリがなくなりますので、可能な限りシンプルに済ましています。凝るのであればボタンやフォント、背景などもこだわれば見た目も美しいし操作もしやすくなるとは思いますが時間がかかりますので・・・。データの入力制限など細かなところは実装していません。ちなみに今回はデータを別環境に渡すため画像はベタ貼り付けしていますが、ご存知と思いますが画像が多くなってくるとデータベースが重くなりますので運用状況を考えて適宜パスで扱われたほうが良いと思います。 http://firestorage.jp/download/d0c22e4dd507020d7e69be271210ae086a3dffa2 ※ファイル名:画像管理デモ.fp7 ( 9.3MB) 、上記URLは3日間有効です。ウイルスチェックはしてありますが、ダウンロード前や後にご自身でも適宜チェックして下さい。firestrageというオンラインストレージサイトです。会員登録の必要はありません。上記ダウンロードURLのみでデータダウンロードできます。 データは5つの撮影日、それぞれ5枚の適当な画像(XPのサンプル画像ですが)が収められています。患者A,B,C・・・が登録されていたとして、すでに患者Aという条件で絞り込んだ状態と考えて下さい。起動時には通常表示として最初の撮影日の5枚の写真一覧が表示されるようになっていますが、スクリプトを変更すれば最新の撮影日に変更することは勿論可能です。スクリプトやフィールド定義は自由に制限なく見られるようにしてあります。他は全撮影日のリスト画像表示、任意の3撮影日の比較画像表示(矢印ボタンで日付を変更可能)、任意の2撮影日での写真1同士の比較画像表示(矢印ボタンで日付を変更可能)、で構成されています。そのままの運用は想定していないでもただのデモファイルですので参考になるエッセンスがあればこれから作成されるデータベースに利用してご自身のやりたいようにしてください。新規データ登録する場合は最初の通常表示画面でメニューから新規レコードを選んで新しい日付で登録してください。実際にいじっているとなんとなく伝わるものがあるのでは。なんでしたら新しいフィールドを追加してみてください。レイアウトを維持できなくなることがわかると思いますよ。FileMaker12とのことですが多分問題なく動作はするとは思いますが、開けない等何かあればおっしゃってください。
お礼
ダウンロードさせていただきました。 私のイメージしていたものが作られていたので、とても参考になりました。 早速作ってみます! 本当にありがとうございました。
- duraphat
- ベストアンサー率46% (121/262)
なぜいちいち新たなフィールドを作る必要があるのか分かりませんし、これから写真を撮るたびに新たなフィールドを定義していけば、結果気の遠くなる数のフィールドを作ることになりますし、今後の運用を考えるとナンセンスではないかと思いますが・・・。 カルテNo.フィールド、 患者名フィールド、撮影日日付フィールド、写真1用オブジェクトフィールド、写真2用オブジェクトフィールド、写真3用オブジェクトフィールド、写真4用オブジェクトフィールド、写真5用オブジェクトフィールドが最低限定義されていればそれでことが足りるのではありませんか?新規レコードで撮影日を入力してそれぞれの写真用オブジェクトフィールドにピクチャを挿入すれば良いだけでは?
お礼
初めての利用なので、お礼と補足の違いがよくわからなく間違えて記入してしまいました。 duraphatさんへ ダウンロードさせていただき、実際に使ってみて気付来ました。 1患者あたり1レコードにして、レイアウトで切り替えることにより写真を挿入したり、比較したいと思っています。 それは可能でしょうか? 参考までに現時点で作成したファイルをアップロードさせていただきます。 http://firestorage.jp/download/57f7d585891ef79c2e7b6bc931db348ccc13fb63
補足
早速のご返信ありがとうございます。 新規レコードにして写真を入力してしまうと、Aさんという患者のレコードが写真を撮影するたびに増えてしまうということになりますよね? その場合、同一患者内で写真の比較をするのが難しいと考えたためです。 ですので、最初のような質問をさせていただきました。
お礼
丁寧なご説明ありがとうございます。duraphatさんはかなり前からファイルメーカーをされているのベテランさんなのですね。 撮影回数は実際の所は36回程です。ですので、duraphatさんのおっしゃるように撮影回数を有限にして、作製することにします。 自動でできれば良いのですがかなり難しいということであれば、頑張って手入力をします。 この度はご丁寧な回答、そしてサンプルファイルまで作っていただき本当にありがとうございました。 また機会があればご教授をお願いします。