Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

HL7 メッセージからの C-CDA ドキュメントの生成

インターシステムズ製品には、HL7 メッセージを受け付けて SDA (内部表現) に変換してから、C-CDA ドキュメントに変換できる変換が含まれます。その後、C-CDA を XDS ドキュメント・リポジトリに対して提供および登録できます。

HL7 から C-CDA への Provide and Register のメッセージ・トレース

以下の図に、C-CDA に変換されてから XDS Provide and Register が実行される HL7 メッセージの、アノテーション付きのメッセージ・トレースを示します。Provide and Register には、C-CDA から抽出された MRN から MPI ID を取得するための PIX 検索が含まれます。

図に示されているテスト・サービスは、単純なメッセージ・ルータです。トレース操作は、トレース内の中間処理の各段階を可視化するユーティリティです。図中の番号は、以下の手順の各段階に一致します。

HL7 から C-CDA への Provide and Register の手順

HL7 を C-CDA に変換するようインターシステムズ製品を設定するには、以下の手順に従います。

  1. HL7 入力サービス (例えば、HL7 ファイル・サービス) を作成します。HL7 メッセージを TargetConfigNames 設定で指定された何らかの操作に転送するよう HL7 入力サービスを設定します。

  2. 前の手順で指定した操作を作成し、以下を実行するよう設定します。

    1. HL7 メッセージを SDA3 に変換する

    2. SDA を C-CDA 1.1 または 2.1 のドキュメントに変換する

    3. C-CDA を Provide and Register 要求にパッケージ化する

    4. Provide and Register 要求を InterSystems Document Source に送信する

  3. Document Source は、“CDA ドキュメントの提供および登録” のセクションで説明されているパスに従います。

HL7 から C-CDA への Provide and Register のコンポーネントと設定

HL7 から C-CDA への変換と、それに続く Provide and Register で使用されるコンポーネントと設定
コンポーネント 設定
ビジネス・ホスト HL7 サービス : EnsLib.HL7.Service.FileServiceOpens in a new tab (または類似)
ビジネス・ホスト HL7 から C-CDA へのトランスフォーマ : カスタム・ビジネス・オペレーション
ビジネス・ホスト Document Source : HS.IHE.XDSb.DocumentSource.OperationsOpens in a new tab
ビジネス・ホスト PIX Consumer : HS.IHE.PIXv3.Consumer.OperationsOpens in a new tab
プロダクション設定 HL7 サービス内の TargetConfigNames
プロダクション・メッセージ HS.Message.IHE.XDSb.ProvideAndRegisterRequestOpens in a new tab
プロダクション・メッセージ HS.Message.XMLMessageOpens in a new tab
  • RegistryResponse

プロダクション・メッセージ HS.Message.PatientSearchRequestOpens in a new tab
プロダクション・メッセージ HS.Message.PatientSearchResponseOpens in a new tab
XSL 変換 SDA-to-CCDAv21-CCD.xsl または他の SDA から C-CDA への変換
サービス・レジストリ・エントリ XDSb.Repository
サービス・レジストリ・エントリ PIXv3.Manager
外部 IHE アクター・エンドポイント XDS ドキュメント・リポジトリ
外部 IHE アクター・エンドポイント PIX Manager

HL7 メッセージから C-CDA ドキュメントを生成するためのトランスフォーマ・ビジネス・オペレーションの例

以下に、HL7 メッセージを受け付けて C-CDA ドキュメントに変換するサンプル・ビジネス・オペレーションを示します。

 Class Test.HL7Transformer Extends (Ens.BusinessOperation)
       [ Inheritance = right, ProcedureBlock ]
{
  Parameter INVOCATION = "Queue";
 
  /// XDSb source operations component
  Property XDSbSourceOperations As Ens.DataType.ConfigName
     [ InitialExpression = "HS.IHE.XDSb.DocumentSource.Operations"];
  Parameter SETTINGS As %String = "XDSbSourceOperations";
 
  XData MessageMap
  {
    <MapItems>
       <MapItem MessageType="EnsLib.HL7.Message">
         <Method>ProcessHL7Message</Method>
       </MapItem>
    </MapItems>
  }
  /// Process an inbound HL7 v2.5.1 message
  Method ProcessHL7Message(pRequest As EnsLib.HL7.Message,
                           Output pResponse As EnsLib.HL7.Message) As %Status
  {
    Try {
         // Convert the HL7 message to SDA3
         Set tSC = ##class(HS.Gateway.HL7.HL7ToSDA3).GetSDA(pRequest,.tSDA3Stream)
         Quit:$$$ISERR(tSC)
 
         // Transform the SDA3 to a C-CDA
         Set tTransformer = ##class(HS.Util.XSLTTransformer).%New()
         Set tSC= tTransformer.Transform(tSDA3Stream,"SDA3/SDA-to-CCDA-CCD.xsl",.tCDAStream)
         Quit:$$$ISERR(tSC)
 
         // Create a Provide and Register
         Set tRequest = ##class(HS.Message.IHE.XDSb.ProvideAndRegisterRequest).%New()
         Set tDocument = ##class(HS.Message.IHE.XDSb.Document).%New()
         Set tDocument.FormatCode=##class(HS.IHE.XDSb.Types.CodedValue).Create(
            "urn:hl7-org:sdwg:ccda-structuredBody:1.1","1.3.6.1.4.1.19376.1.2.3",
            "Consolidated CDA R1.1 Structured Body Document")
         Set tDocument.MimeType="text/xml"
 
         // Copy the C-CDA into the message
         Do tDocument.BodyCharacter.CopyFrom(tCDAStream)
         Do tRequest.Documents.Insert(tDocument)
 
         // Call the document source operation
         Set tSC = ..SendRequestSync(..XDSbSourceOperations,tRequest,.tResponse)
         Quit:$$$ISERR(tSC)
       } Catch ex {
                    Set tSC= ex.AsStatus()
                   }
         Quit tSC
  }
}
FeedbackOpens in a new tab