CCD の例がある場合、次を使用する必要があります。
XSD スキーマであり、有効な CCD があると結論付けます。
また
他の(スキーマベースではない)方法を使用しています。(有効な XML ドキュメントに加えて、UML モデル ルール。)
のようなものさえありccd.xsd
ますか?有効な CCD を作成するためのガイドが部分的にしかない場合でも。
CCD の例がある場合、次を使用する必要があります。
XSD スキーマであり、有効な CCD があると結論付けます。
また
他の(スキーマベースではない)方法を使用しています。(有効な XML ドキュメントに加えて、UML モデル ルール。)
のようなものさえありccd.xsd
ますか?有効な CCD を作成するためのガイドが部分的にしかない場合でも。
質問にすばやく答えるには:
A: XSD スキーマはありますが、ドキュメントが有効な CDA ドキュメントであるかどうかを確認するためだけです (これは、CCD 実装ガイドではなく、CDA RIM のみを検証することを意味します)。
B:非スキーマベースの方法はスキーマトロンを使用することであり、ccd.sch は HL7 によって提供される標準に付属しています。これは、有効な CCD ドキュメントとして検証する最良の方法です。
C:私が認識している ccd.xsd のようなものはありません。
バックグラウンド
ここでは、HL7 から CCD 標準を取得する方法の背景と手順について説明します。Standard を取得すると、ファイル検証用の CDA.xsd および CCD.sch も提供されます。
CCD は、CDA RIM から派生した特定の実装です。CCD と CDA はどちらも HL7 によって維持されている標準です。CCD は現在、HL7 による「セクション 1」タイプの標準です。
完全な標準は、HL7 Web サイトからダウンロードできます。完全な標準は完全な標準であり、無料でダウンロードできます。ただし、サイトへの登録が必要になる場合があります (これも無料です)。 http://www.hl7.org/implement/standards/product_brief.cfm?product_id=6
他にどのようなリソースが利用できるかわからないため、HL7 Web サイトから取得できるサポート ドキュメントのみを使用します。
CCD ドキュメントの検証に関しては、2 つの層があります。最初に、ドキュメントが有効な CDA ファイルであることを確認するために検証する必要があります。次に、CCD 実装ガイドで概説されている実装の制約に従っていることを確認するために検証する必要があります。
有効な CDA ファイルであることを確認するために、完全な CCD 仕様のダウンロードに付属する CDA.xsd スキーマがあります。
標準には、CCD ドキュメントとして検証するためのスキーマトロン ファイルも付属しています。
スキーマトロンバリデーターと実装ガイドの間に不一致があるというまれなシナリオでは、常に実装ガイドを使用してください。
頭字語
CCD – ケアドキュメントの継続性
CDA – 臨床文書アーキテクチャ
RIM – 参照情報モデル
補足リンクとして、CCD ドキュメント検証用の非常に便利なオンライン ツールがここにあります: https://www.lantanagroup.com/validator/
オプション A をお勧めします。これには、特定の CCD スキーマ ソースを持つDocumentBuilderを使用して XML ドキュメントを解析し、検証エラーをチェックすることが含まれます。SchematronValidatorプロジェクトの XMLValidation クラスを見ることをお勧めします。validXMLUsingXSD(...) メソッドは、あなたが説明していることを行います。有効な CCD XML の XSD を見つける場所はいくつかありますが、どこから始めればよいかわからない場合は、Microsoft HealthVault で CDA/CCR スキーマのほとんどの XSD を見つけることができます。スキーマトロン ルールを使用して CCD ドキュメントをさらに検証する方法がいくつかあります (NIST の有意義な使用バリデーターを参照してください)。
実行しているコードは、以下のスニペットのようになります。ここで、schemaLocation は XSD ファイルの場所です。ErrorHandler は検証エラーを格納します。
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
docFactory.setNamespaceAware(true);
docFactory.setValidating(true);
docFactory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
docFactory.setAttribute(JAXP_SCHEMA_SOURCE, schemaLocation);
docFactory.setIgnoringElementContentWhitespace(true);
DocumentBuilder builder = null;
try {
builder = docFactory.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
pce.printStackTrace();
return null;
}
builder.setErrorHandler(handler);
Document doc = null;
try {
doc = builder.parse(xml);
} catch (SAXException e) {
System.out.println("Message is not valid XML.");
handler.addError("Message is not valid XML.", null);
e.printStackTrace();
} catch (IOException e) {
System.out.println("Message is not valid XML. Possible empty message.");
handler.addError("Message is not valid XML. Possible empty message.", null);
e.printStackTrace();
}
return doc;
古い質問ですが、最近この問題の解決策を探していて、かなりの量の調査を行ったので、まだ答えられると思いました。
さまざまな HL7 ドキュメントを検証する API が組み込まれているEverest APIを使用してみました。これは、有効なドキュメントを生成したかどうかをコード内でテストする優れた方法です。
NISTは、CCD/CCDA などのドキュメントを検証するために (再びコード内で) 使用できる Web サービス (およびサンプル クライアントも!) を提供します。
生成されたドキュメントを手動で検証する必要があるだけなら、NIST には別のドキュメントがあります。
それが役立つことを願っています...