私は、Health 経由で CCD ドキュメントの DOPU (ドロップオフ/ピックアップ) リクエストを送信するアプリケーションに取り組んでいます。DOPU リクエストの作成と、HealthVault によって生成された対応するトークンの取得は正常に機能します。
私が現在、意味のある使用レポート データを取得するために使用している SDK メソッドは 2 つあります。
OfflineWebApplicationConnection.GetMeaningfulUseTimelyAccessDOPUDocumentReport
送信されたすべての DPU リクエストを取得します。これは正常に機能し、常に正しい DOPU リクエスト (データ/タイム スタンプ、トークン、およびアプリケーション ID を含む) が得られます。- もう一つは
OfflineWebApplicationConnection.GetMeaningfulUseVDTReport
方法です。これが問題の原因です。設定した日付範囲 (週、月、Datetime.MinValue から DateTime.MaxValue) に関係なく、常に結果が得られません。HV アカウントに何度アクセスしても、接続 DOPU ドキュメントを表示およびダウンロードできます。その SDK メソッドではまだ結果が得られません。
また、CCD を送信するときに CCD 拡張 XML を使用して、患者 IDと入力日を具体的に設定しようとしました。繰り返しますが、これはレポートの結果には影響しません。
SDK の有意義なユーザー メソッドで私よりも多くの経験を持つ他の誰かが、OfflineWebApplicationConnection.GetMeaningfulUseVDTReport
呼び出しに対してまったく何も得られない理由について何か提案がありますか?
レポートを実行するために使用しているサンプル コードを次に示します (コメント行の一部は、異なる日付範囲を試しただけです)。DOPU リクエストの送信方法を示すコード スニペットを投稿することもできますが、すべてが期待どおりに動作しているように見えます。
class Program
{
static void Main(string[] args)
{
var applicationId = ConfigurationManager.AppSettings["ApplicationId"];
var url = ConfigurationManager.AppSettings["HealthServiceUrl"];
var connection = new OfflineWebApplicationConnection(new Guid(applicationId), url, Guid.Empty/* offlinePersonId */);
Console.WriteLine("\nGetMeaningfulUseTimelyAccessDOPUDocumentReport");
//var receipts = connection.GetMeaningfulUseTimelyAccessDOPUDocumentReport(new DateRange(new DateTime(2014, 11, 19), new DateTime(2014, 12, 19)));
var receipts = connection.GetMeaningfulUseTimelyAccessDOPUDocumentReport(new DateRange(DateTime.MinValue, DateTime.MaxValue));
//var receipts = connection.GetMeaningfulUseTimelyAccessDOPUDocumentReport(new DateRange(DateTime.UtcNow.AddMonths(-12), DateTime.UtcNow));
foreach (var receipt in receipts)
{
Console.WriteLine(string.Format("{0} - {1} - {2}", receipt.AvailableDate, receipt.PackageId, receipt.Source));
}
Console.WriteLine("\nGetMeaningfulUseVDTReport");
//var activities = connection.GetMeaningfulUseVDTReport(new DateRange(new DateTime(2000, 12, 3), new DateTime(2014, 12, 10)));
//var activities = connection.GetMeaningfulUseVDTReport(new DateRange(DateTime.MinValue, DateTime.MaxValue));
var activities = connection.GetMeaningfulUseVDTReport(new DateRange(DateTime.UtcNow.AddMonths(-12), DateTime.UtcNow.AddDays(1)));
foreach (var activity in activities)
{
Console.WriteLine(activity.PatientId);
}
Console.ReadLine();
}
}
更新 1 MS が codeplex に持っていたサンプルの有意義な使用 Web アプリケーションを試しました。アプリケーション ID/資格情報で使用しました。うまくいきました。少なくとも今のところ、何が違うのかわかりません。
更新 2 そこで、テスト CCD を含む他の多くの実際の CCD を試しました (私たちの PPE 環境では、完了したらすぐに削除します)。MS のテスト アプリケーションと同じように動作するように、アプリで ConnectPackage をセットアップしました。何を送信しても、CCD に VDT データを有効に使用することがわかります。ただし、MS テスト アプリケーションのテスト CCD は機能します。
更新 3 MS テスト アプリケーションを介して CCD を送信しようとしました。繰り返しますが、問題なく送信され、HV アカウントに接続できます。使用した日付範囲に関係なく、VDT データを取得できません。CCDに問題があるのでしょうか?