標準型電子カルテ

現在、国が推進している医療DXの一つの核として標準型電子カルテというものがある。

先日、厚労省がそのアンケートを(主に)ベンダー向けにしたのだが、某社がアプライするということでエンケート作成のお手伝いをしてきた。

気がついたことをいくつか。

官公庁の医療系のシステムというと、大抵の場合、委員会や WG(Working Group)があって、そこでまとまった方針に忖度してそって、企画などを提案するみたいなことになると思う。

出自がそういうものだから、仕事(というかほとんど作業)自体はあまりワクワクして取り組めるものではない。

が、(結論から書くと)このアンケートはそういうものではなかった。

まっさらな状態で青写真を描いていいという。

医療情報を専門的にやっているわけではないので、詳しくはわからないが、これまで SS-MIX だとか FHIR だとか散々議論していませんでしたっけ?
それをベースにしたシステムじゃないの?

でも、まあ、せっかくほぼ自由にシステムの提案してよいって言ってくれてるわけだから、乗らない手はない。技術者であれば、誰しもが興味も持つようなアイディアを随所に入れた。
もちろん全体的なコンセプトはワイにできるわけもなく、上の方々。

久しぶりに「書きたいこと書いた」充実感があり、全体的には楽しく取り組めた。

 

だが、なんで「自由にシステム提案していい」になったのか、その後もよくわからないでいた。
その点、引っかかっていたのだが、さる方が面白い推論をしていた。

官僚の医療DX関係の講釈を聞いていた某大臣がブチ切れて「そういう(仕様の話だとか)話はもういいよ。聞きたくないよ。結果は出たのかよ!何にもできてないじゃないか。偉そうなことは結果出してから言えよ。頭でっかちの連中を呼んで議論させたところで、結果が出るわけないだろう。やり方から考えろよ。それがお前たちの仕事だろう!!」とその官僚を怒鳴りつけた  『君は超アジャイルという開発手法を知っているか?』より

官僚を怒鳴りつけたのは誰なのかわかるような気がするが、そういうことなら腑に落ちる(笑)。

 

OpenSource Electromagnetic Simulation

gitlove さんが構造解析系の FEM を取り扱っていたが、あれはやる人が限定されているフシがある。

そんなに案件は多くないのだが、より一般的なそっち系の数値計算は電磁気系だろう。

この記事が参考になった。

主に FDTD, FEM, MoM という手法があるそうだが、馴染み深いのはやはり FEM だろう。

これ系のオープンソースのソフトとしては

FEniCS

Elmer FEM

FreeFEM

があるそうだ。

(続く)

 

君はコンビニ店員に喧嘩を売られたことはあるか?

老若男女問わず、日本人なら日頃から愛用しているコンビニエンスストア。

ワイも日に何回かは近所のコンビニに立ち寄っている。

大抵、若い店員さんなんかが元気よく接客してくれると思う。

良い社会勉強になってんだろうなあと思う。

中には「向いてないだろ、この人」という人もいるが、数ヶ月後にはいなくなっているので客としてはそれほど不愉快な思いをすることはない。

・・・なのだが、近所コンビニにやたら攻撃的な店員がいて、今、どうしようか真面目に検討中。

みなさんの周りにはそんな店員います?

 

(続く)

Karaku 2023 秋

脱ヲタ服を目指しているわけだが、秋物が手薄ということでアイキャッチのジャケットとシャツをいつものように Karaku で購入。

ジャケットは結構早く到着した。

価格の割に安物っぽさはない。こういうちょっと攻めた服は以前愛用していたユニクロにはないので、気に入った。

しかし、これに合うインナーがないんだな、これが(笑)

まあ、つい最近までオシャレなんか全くしてこなかったので当然か。

買ったはいいもののお披露目できない。

というわけで少々小洒落た感じのシャツを物色。
ドンピシャというわけではないがレビューの評価を参考にアイキャッチの長袖シャツを購入。

現在、絶賛配送中。

 

なんか周囲から「頑張れ!」と言われているような気がするので(圧を感じている)、さらに物色。
いつもの karaku ではないが、これもオーダー。

「着こなしが難しいのでは?」、「モデルとお前は色々な意味で違う」、「腹まわり大丈夫?」、「オネエ系でキモい」。。。

そういった声が聞こえたような気もするが、チャレンジします(きっぱり)。

image: https://www.fecaco.shop/items/51697790

CoreData みたびw

すっかり CoreData の使い方を忘れていたので、最初から。

NSPersistentContainer, sqlite ファイルの配置指定など

Xcode で CoreData を使う旨の指定をしてプロジェクトを生成すると NSPersistentContainer はできている。

具体的には

@synthesize persistentContainer = _persistentContainer;

- (NSPersistentContainer *)persistentContainer {
    // The persistent container for the application. This implementation creates and returns a container, having loaded the store for the application to it.
    @synchronized (self) {
        if (_persistentContainer == nil) {
            _persistentContainer = [[NSPersistentContainer alloc] initWithName:@"CoreData2"];

といったコードが、AppDelegate.m に自動生成されている。

では、これを単純にビルド→ランさせただけで CoreData2.sqlite ができるかというとそうはならないようだ。

検証の必要はあるが、Display Name = CoreData2 と指定しないと sqlite ファイルを作成しないようだ。

また、sqlite ファイルのコンテナ領域の中の Application Support フォルダの中である。

ややこしい。。。

ところで、これ、置き場所を変えられないものなんだろうか?

結果から言うとできるっぽい。
上の記事にあるようにハンドラを呼び出す前に、URL を改変して指定する。

_persistentContainer = [[NSPersistentContainer alloc] initWithName:@"AppName"];
NSPersistentStoreDescription *storeDescription = _persistentContainer.persistentStoreDescriptions.firstObject;
NSURL *URL = [storeDescription.URL.URLByDeletingLastPathComponent URLByAppendingPathComponent:@"NewLocation.sqlite"];
storeDescription.URL = URL;
[_persistentContainer loadPersistentStoresWithCompletionHandler:^(NSPersistentStoreDescription *storeDescription, NSError *error) {

OneToOne の一方向の関係性

というようなものもつくれるが、需要はなさそう。

AppDelegate.m
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    _persistentContainer = [self persistentContainer];
    
    NSManagedObjectContext *context = _persistentContainer.viewContext;
    Child *child = [NSEntityDescription insertNewObjectForEntityForName:@"Child"
                                                       inManagedObjectContext:context];
    child.name = @"taro";
    Child *child2 = [NSEntityDescription insertNewObjectForEntityForName:@"Child"
                                                       inManagedObjectContext:context];
    child2.name = @"hanako";
    Person *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person"
                                                       inManagedObjectContext:context];
    person.name = @"yamada";
    person.children = child;
    NSError *error = nil;
    [context save:&error];

結果。

(続く)