MML に準拠しないインスタンス

・基本的な考え方

簡潔にするため MML に準拠しない独自の形をとった。

子オブジェクトを内包する親オブジェクト名大文字で、子オブジェクト名小文字で始まる。

カルテそのものをパックする場合、受診日ページ単位で扱うのが自然と考えられる。

情報をなるべくコンパクトに扱うため、前回と同じデータを持つオブジェクトは省略

同様の理由で、データを持たないオブジェクトも記述を省略

前回受診日のデータを削除したい場合は、データを半角スペースで上書きする。

受診日ページはさらに更新時刻ごとのページの集合から構成される。

最後の更新時刻データ実データ、それ以前の更新時刻のものは修正前のデータである。

前回受診と同じデータは省略されるので当日データがない場合、直近受診日のデータ今回のデータとなる。

他施設へ渡す場合は、当方のヘッダー情報を挿入し、修正前ページは省略する。

MMLL 内に複数の MedicalRecord を収納する場合、先頭の Header 情報すべての MedicalRecord に反映

先頭 Header 情報と異なる属性の MedicalRecord がある場合、独自の Header を記述すればよい。

・サンプル・インスタンス

"MMLL":{

"header":{ // この位置のヘッダーは全ての MedicalRecord に反映

Creator:{ ... } // 自施設内で使う場合は省略可

},

"MedicalRecord 03234200":{ // カルテID:03234200 の診療録オブジェクト

"Header":{ // この位置のヘッダーは当該 MedicalRecord のみに反映

Creator:{ ... } // 自施設内で使う場合は省略可

},

"Page 2011-01-08T09:12:00":{ // 受診日ごとの更新情報

"Update 2011-01-08T0915:00":{ // このタイムスタンプで更新されたデータ

"Person":{

"Name":{

"name":"春野 海",

"kana":"はるの うみ"

},

"birthDay":"1942-03-23",

"sex":"女",

"Address":{

"zip":"142-0063",

"address":"東京都品川区荏原4-4-2",

"email":"bar@foo.com",

"phone":"03-1111-3333",

"cellPhone":"090-0000-1111",

}

},

"Base":{

"Bloodtype":{

"abo":"o",

"rh":"+"

}, // ? 血液型

"Allergy":{

"factor":"海老",

"severity":"発疹のみ",

"identifierdDate":"25歳の頃",

"memo":"カニではアレルギー反応でたことなし"

}, // ? アレルギー歴

"Infection":{

"factor":"肺結核",

"identifiredDate":"34歳"

}, // ? 感染症

"Marital":{

"status":"既婚", // 既婚, 未婚, 離婚, 死別

"startDate":"1962-11-10" // 離婚や死別では endDate を付加

},

"FamilyHistory":{

"relation":"父",

"mmlRd:RegisteredDiagnosisModule":{

"diagnosis":"脳出血",

"startDate":"1966-06-08", // ? 疾患開始日

"endDate":"1978-03-28", // ? 疾患終了日

"outcome":"死亡" // ? 転帰

},

"age":"56歳",

"memo":"10年間寝たきりののち死亡"

}, // ? 家族歴

"Childhood":{

"birthInfo":{

"deliveryWeeks":"40週",

"facility":"日赤医療センター",

"deliveryMethod":"正常分娩",

"bodyWeight":"3100 gr",

"memo":"新生児黄疸にて光線療法"

},

"vaccination":{

"vaccine":"ポリオ",

"injected":"true",

"age":"生後6ヶ月"

}

}, // ? 小児期情報

"LifeStyle":{

"occupation":"会社員", // ? 職業

"tobacco":"なし", // ? 喫煙歴

"alcohol":"缶ビール1本/日", // ? 飲酒歴

"other":"テニス3時間/週" // ? 宗教、スポーツなど

},

"PastHistory":{

"item":{

"timeExpression":"18歳",

"event":"スキーで右上腕骨折"

}

}

},

"Insurance":{

"health 国保":{

"insuranceNumber":"01120032", // 保険者番号

"group":"1234", // 記号

"number":"012345", // 被保険者番号

"familyClass":"false", // true:本人 false:家族

"startDate":"2011-02-01", // 開始日

"paymentOutRatio":"3" // 外来負担率

},

"public 公費1":{ ... },

...

},

"Diagnosis":{

"diagnosis 妊娠高血圧症候群":{

"startDate":"2011-01-01", // ? 疾患開始日

"endDate":"2011-12-31", // ? 疾患終了日

"firstEncounterDate":"2011-01-18", // ? 疾患の初診日

"outcome":"転医" // ? 転帰

},

...

},

"Progress":{

"problem 妊娠":{

"subjective":"lmp: 101224(4w5d) Term:2011-09-30",

"objective":"GS(32 mm)BPD(7 mm)CRL(16 mm)心拍(+))",

"assessment:"GS 辺縁やや不明瞭につき経過観察",

"plan":"分娩予定施設(宮崎へ帰郷) "

},

"problem 妊娠高血圧症候群":{

"objective":"収縮期血圧(156) 拡張期血圧(103) 尿蛋白(+)",

"plan":"減塩食を指導."

}

}

},

...

},

"Page 2011-01-22T11:23:00":{ // 受診日ごとの更新情報:前回との差分のみを記述

"Update 2011-01-22T11:28:00":{ // このタイムスタンプで更新されたデータ

"Progress":{

"problem 妊娠":{

"subjective":"lmp: 101224(6w5d) Term:2011-09-30",

"assessment:" ", // 前回記述を空白で上書き

"objective":"GS(43 mm) CRL(23 mm)心拍(+))"

},

"problem 妊娠高血圧症候群":{

"objective":"収縮期血圧(143) 拡張期血圧(98) 尿蛋白(+-)"

}

}

},

"Update 2011-01-23T09:08:00":{ ... }, // 修正前データ:他施設へ渡す場合は省略可

"Update 2010-12-12T10:12:00":{ ... }, // 修正前データ:他施設へ渡す場合は省略可

...

},

...

}

}

・MML 形式インスタンスとの対比

MML 形式で以下のように表記されたインスタンスは

mmlPc:ProgressCourseModule

mmlPc:structuredExpression

mmlPc:problemItem

mmPc:problem ...

MMLL 形式では次のように表され、かなり簡潔となる

Page

Update

Progress

problem ...

他施設へ渡すインスタンスでは最新 Update オブジェクトの内容のみが Page に収められ

Page

Progress

problem ...

上のように Update 自体は省略されるので、更に簡潔となる

・MMLL インスタンス中の個々のオブジェクト

MMLL の中のひとつのオブジェクトを取り出して以下のように記述できる

"MedicalRecord 03234200.Page 2011-01-08T09:12:00.Person.Name.name":"春野 海"

すなわち MMLL を除いた先頭からの key を . で接続したものが key となる

. で区切った key と value を DB 中の各 field に一定のルールで割り当てれば、1レコードとして収納できる

すなわち一定の構造をもったインスタンスでありながら、シリアルな構造にすることも簡単にできる