EMPI に保持されている基本情報データの追加または更新 (PIX Add)
インターシステムズ製品では、IHE “PIXv3_PatientAddRequest” トランザクションを介して、外部 EMPI に保持されている患者に対して患者の追加や基本情報データの更新を行うことができます。
PIX Add のメッセージ・トレース
以下の図に、MPIID を返すアノテーション付き PIX Add メッセージ・トレースを示します。
図に示されているテスト・サービスは、単純なメッセージ・ルータです。トレース操作は、トレース内の中間処理の各段階を可視化するユーティリティです。図中の番号は、以下の手順の各段階に一致します。
PIX Add の手順
-
必要な基本情報データが含まれる Add Update Hub RequestOpens in a new tab メッセージを InterSystems PIX Source に提供します。
-
InterSystems PIX Source は、TransformAddUpdateHubToPIX 設定で指定された変換を使用して、メッセージを IHE “PIXv3_PatientAddRequest” に変換します。
-
その後、InterSystems PIX Source は、ServiceName 設定で指定された別のシステム上にある PIX Manager エンドポイントに PIX 要求を転送します。
-
他のシステム上にある PIX Manager が確認またはエラーを返します。
-
InterSystems PIX Source の OperationToLocateMPIID 設定に値 (通常は HS.IHE.PIXv3.Consumer.OperationsOpens in a new tab) が含まれる場合は、指定された操作に患者検索要求を送信し、その操作が PIX クエリを実行して患者の MPIID を取得します。
-
InterSystems PIX Source は、Add Update Hub ResponseOpens in a new tab メッセージを返します。手順 5 の設定によっては、この応答メッセージに MPIID が含まれることがあります。エラーが発生した場合、InterSystems PIX Source は null を返します。
PIX Add のコンポーネントと設定
コンポーネント | 設定 |
---|---|
ビジネス・ホスト | PIX Source : HS.IHE.PIXv3.Source.OperationsOpens in a new tab |
ビジネス・ホスト | PIX Consumer : HS.IHE.PIXv3.Consumer.OperationsOpens in a new tab
|
プロダクション設定 | PIX Source 内の TransformAddUpdateHubToPIX |
プロダクション設定 | PIX Source 内の ServiceName |
プロダクション設定 | PIX Source 内の OperationToLocateMPIID |
プロダクション・メッセージ | HS.Message.AddUpdateHubRequestOpens in a new tab |
プロダクション・メッセージ | HS.Message.AddUpdateHubResponseOpens in a new tab |
プロダクション・メッセージ | HS.Message.PatientSearchRequestOpens in a new tab (PIX の場合) |
プロダクション・メッセージ | HS.Message.PatientSearchResponseOpens in a new tab (PIX の場合) |
XSL 変換 | IHE/PIX/Version1/AddUpdateHubRequestToPRPAIN201301UV.xsl |
サービス・レジストリ・エントリ | PIXv3.Manager |
外部 IHE アクター・エンドポイント | PIX Manager |
PIX Add の例
以下のメソッドは PIX Add を生成します。
ClassMethod PIXADD()
{
// Create AddUpdateHub Message
Set obj=##class(HS.Message.AddUpdateHubRequest).%New()
// Name, sex, DOB
Set obj.FirstName="James"
Set obj.LastName="Smith"
Set obj.Sex="M"
Set obj.DOB=obj.DOBDisplayToLogical("2000-09-30")
// Inserts full birth name information for the patient
Set tName = ##class(HS.Types.PersonName).%New()
Set tName.Prefix = "Mr."
Set tName.Given = "James"
Set tName.Middle = "Henry"
Set tName.Family = "Smith"
Set tName.Suffix = "IV"
Set tName.Type="Birth"
Do obj.Names.Insert(tName)
// Inserts name of patient's spouse
Set tName = ##class(HS.Types.PersonName).%New()
Set tName.Prefix = "Mx."
Set tName.Given = "Pat"
Set tName.Middle = "A."
Set tName.Family = "Henderson"
Set tName.Suffix = ""
Set obj.SpousesName=tName
// Patient ID
Set obj.MRN="1111222"
Set obj.AssigningAuthority="EXTERNAL" // refers to an Assigning Authority entry in the OID Registry
Set obj.Facility="EXTERNAL" // refers to a Facility entry in the OID Registry
// Address 1
Set addr=##class(HS.Types.Address).%New()
Set addr.City="Somewhere"
Set addr.State="SW"
Set addr.StreetLine="123 Money Street"
Set addr.Use="HP" // Primary Home address
Do obj.Addresses.Insert(addr)
// Address 2
Set addr=##class(HS.Types.Address).%New()
Set addr.City="Anywhere"
Set addr.StreetLine="456 Any Street"
Set addr.Use="WP" // Work Place address
Do obj.Addresses.Insert(addr)
//Telephone
Set tel=##class(HS.Types.Telecom).%New()
Set tel.PhoneCountryCode="1"
Set tel.PhoneAreaCode=705
Set tel.PhoneNumber=5551212
Set tel.Use="HP" // Primary Home phone
Set tel.Type="L" // Landline
Do obj.Telecoms.Insert(tel)
// Alternate ID
Set tIdent=##class(HS.Types.Identifier).%New()
Set tIdent.Root="Other.AA" // refers to an Assigning Authority entry in the OID Registry
Set tIdent.Extension="98754321"
Do obj.Identifiers.Insert(tIdent)
// Send to the routing service (or directly to HS.IHE.PIXv3.Source.Operations)
Do ##class(HS.Test.Service).SendSync(obj,.r)
Quit
}