1. MML Ver. 4 修正履歴

MML ver 4を2016年2月8日に公開して以来、下記のような修正が行われた。

1.1. 章・節番号、エレメント番号

MML共通形式、MMLコンテンツモジュールの各エレメントに対する番号と章番号が混在していた。わかりやすくするために各エレメントの先頭にMをつけ、共通形式、コンテンツモジュールに連番を振った。

Table 1. 例 住所表現形式のエレメント番号

変更前変更後
1.1.M1.1.

1.2. 解説にデータ型、省略、繰り返しを明記した

エレメント表で記載されてはいるが、解説で記載されていなかったデータ型や省略について明示的に記載することとした。

例:注射モジュールの薬剤名称のデータ型

【内容】薬剤名称
+【データ型】string

1.3. MML Header, docInfoのnamespace宣言

以下のようにnamespace宣言をしていた。

xmlns:mml =”http://www.medxml.net/MML/v4
xmlns=”http://www.medxml.net/MML/v4

下記のようにbaseを間に挟むように改めた。

xmlns:mml =”http://www.medxml.net/MML/v4/base/1.0/
xmlns=”http://www.medxml.net/MML/v4/base/1.0

1.4. DTDについての記述

MML4ではW3C XML Schemaを採用しておりDTDはもはや使用しないため表現の修正を行った。

8.1.6 tocItem
-【内容】本 MML 文書で使われている全ての DTD をリストアップする.冗長ではあるが、SAX系の処理には有効であるためv4でも存続させた。  +
+【内容】本 MML 文書で使われている全てのXML Schemaをリストアップする.冗長ではあるが、SAX系の処理には有効であるためv4でも存続させた。  +
-【繰り返し設定】繰り返しあり.使用した DTD の種類だけ繰り返す.
+【繰り返し設定】繰り返しあり.使用した スキーマ の種類だけ繰り返す.

9.1.1. docInfoの属性表記
-|moduleVersion|uri|#IMPLIED| |使用モジュールのDTDのURIを記載
+|moduleVersion|uri|#IMPLIED| |使用するモジュールのXMLスキーマのURIを記載

1.5. 初診時特有情報の分娩時週数

P32Wといった、ISO8601のduration表記に準じたPnWで表現することとし、xs:duration型としていたが、XMLスキーマのxs:duration型には週数を範囲とする記載法がなく、一般的なバリデータではエラーとなるため、xs:string型で表現することとした

+===== M15.2.1.2. mmlFcl:deliveryWeeks
【内容】分娩時週数. +
-【データ型】duration 書式:PnW +
+【データ型】string. duration型に準じる. xs:duration(ISO8601形式)には週の単位がないため、便宜上の書式を採用する。書式:PnW +

基本方針 6.2.6. データ型
-|xs:duration|期間型。ISO8601形式に週(W)を加えたPnYnMnWnDTnHnMnS形式で表記する
+xs:duration:: 期間型。ISO8601形式PnYnMnDTnHnMnS形式で表記する。

1.6. 臨床サマリーモジュール内の診断履歴情報

文書では繰り返しありとなっているところをスキーマでは繰り返さなくなっているところを修正した。

summary.xsd
– <xs:element minOccurs=”0″ ref=”mmlRd:RegisteredDiagnosisModule”/>
+ <xs:element minOccurs=”0″ maxOccurs=”unbounded” ref=”mmlRd:RegisteredDiagnosisModule”/>

1.7. 手術記録モジュール内のエレメントのoccurrence

手術記録モジュールの解説文書に記載されているエレメントのoccurrenceとスキーマに記載されているoccurrenceが一部異なっていた。調査の結果、MML ver 2, ver 3でも同様に文書とDTDにずれが見られた。検討の結果、DTD、スキーマに文書を合わせることとした。

修正前
M17.1.1.4. mmlSg:surgicalDepartment ?
M17.1.1.4.1. mmlDp:Department
M17.1.1.5. mmlSg:patientDepartment ?
M17.1.1.5.1. mmlDp:Department
M17.1.4.1.1. mmlSg:staffInfo
M17.1.4.1.1.1. mmlPsi:PersonalizedInfo
M17.1.6.1.1. mmlSg:staffInfo
M17.1.6.1.1.1. mmlPsi:PersonalizedInfo

修正後
M17.1.1.4. mmlSg:surgicalDepartment ?
M17.1.1.4.1. mmlDp:Department +
M17.1.1.5. mmlSg:patientDepartment ?
M17.1.1.5.1. mmlDp:Department +
M17.1.4.1.1. mmlSg:staffInfo
M17.1.4.1.1.1. mmlPsi:PersonalizedInfo +
M17.1.6.1.1. mmlSg:staffInfo
M17.1.6.1.1.1. mmlPsi:PersonalizedInfo +

1.8. 処方箋モジュールのmmlPs:repetitionsエレメント追加

処方箋モジュールで頓用処方の総回数を記載する項目がなかったため追加した。 下記のように追加した

M24.2.9 mmlPs:repetitions
【内容】総投与回数。(頓用、外用などの場合) +
【データ型】decimal +
【省略】可 +
【説明】頓用処方や外用処方の場合など、薬剤が繰り返される回数。

1.9. 処方箋、注射モジュールの薬剤コードエレメント

処方箋、注射記録モジュールとも薬剤コードの所属するコード体型を記録するsystem属性が存在するが、そのネームスペースが欠落していたのでそれぞれのネームスペースを付与した.

修正前
system

修正後
mmlPs:systemmmlInj:system

1.10. 処方箋モジュールの1日量処方表記

処方箋モジュールの書式は1回量表記がベースとなっているが、システム上、止むを得ない場合に一日総量をdoseに記載し、frequencyPerDayに1として、用法指示に分割指示を記載することも許容することとした。

1.11. 注射記録モジュールの投与開始日時、投与終了日時

注射では投与開始日ではなく、投与開始日時が記録されるため記述部分でデータ型がdateとなっていたのをdateTime型に修正した。(スキーマに変更なし)

+===== M25.1.4. mmlInj:startDateTime
+【内容】投与開始日時 ++【データ型】dateTime+
【省略】可 +
-【データ型】date +
【説明】投与を開始した時間を記載する
-===== mmlInj:endDateTime
+===== M25.1.5. mmlInj:endDateTime
【内容】投与修了日時 +
+【データ型】dateTime +
【省略】可 +
-【データ型】date +

1.12. XMLスキーマのリファクタリング。

xsdの書式で型定義やoccurrence定義が不十分であったり、冗長であったところを修正した。XMLスキーマとして暗黙的に指定されている型やoccurrenceについても明示的に記載することとした。

1.12.1. occurrenceの明示(基礎的診療情報モジュール)

–        <xs:element minOccurs=”0″ ref=”mmlBc:allergy”/>
–        <xs:element minOccurs=”0″ ref=”mmlBc:bloodtype”/>
–        <xs:element minOccurs=”0″ ref=”mmlBc:infection”/>
+        <xs:element minOccurs=”0″ maxOccurs=”1″ ref=”mmlBc:allergy”/>
+        <xs:element minOccurs=”0″ maxOccurs=”1″ ref=”mmlBc:bloodtype”/>
+        <xs:element minOccurs=”0″ maxOccurs=”1″ ref=”mmlBc:infection”/>

1.12.2. 文字列型からboolean型へ

文字列(トークン)型で”true”あるいは”false”と制限をかける制約とboolean型を指定することで、インスタンス内に記載されるデータに差はないが、boolean型として明示的に定義するほうが冗長さも回避できる。

summary.xsd

–    <xs:attribute name=”emergency” form=”qualified”>
–      <xs:simpleType>
–        <xs:restriction base=”xs:token”>
–          <xs:enumeration value=”true”/>
–          <xs:enumeration value=”false”/>
–        </xs:restriction>
–      </xs:simpleType>
–    </xs:attribute>
+          <xs:attribute name=”emergency” type=”xs:boolean” use=”optional” form=”qualified”/>

サマリー情報にあるemergency属性, dethinfoエレメントなどに上記の変更を行った。

1.12.3. 文字列型からdate型へ

MMLの規約として、日付はCCYY-MM-DDのISO8601形式で記載することとしているため、date型で指定するのと同様にインスタンスに記載されるが、明示的に型を指定することによりデータのバリデーションを行うことができるためスキーマの修正を行った。

patient.xsd

  • <xs:element name=”birthday” type=”xs:string”/> + <xs:element name=”birthday” type=”xs:date”/>
1.12.4   attributeの付け替えなど

DTDからXML schemaにはほぼ自動変換したものを使用していたが、冗長であったり定義の並びが離れていて分かりづらかったりしたところを修正した。

1.13. 誤字、表現の修正

その他誤字の修正、表現の修正を多数行った

項目の並びを、データ型、省略の順とした(例)

+===== M23.4.4. mmlFs:boStatus
【内容】排泄物の性状。軟便、下痢、混濁など。大量・中等量、少量など数値化できない場合にはここに記載する。 +
-【省略】省略可 +
-【データ型】string
+【データ型】string +
+【省略】省略可