我一直在开发一个应用程序,该应用程序通过 Health 发送 CCD 文档的 DOPU(下车/取货)请求。创建 DOPU 请求并获取 HealthVault 生成的相应令牌工作正常。
我现在使用两种 SDK 方法来获取有意义的使用报告数据:
OfflineWebApplicationConnection.GetMeaningfulUseTimelyAccessDOPUDocumentReport
让我收到所有发送的 DPU 请求。这工作正常,这总是给我正确的 DOPU 请求(带有数据/时间戳、令牌和应用程序 ID)。- 另一个是
OfflineWebApplicationConnection.GetMeaningfulUseVDTReport
方法。这是导致问题的原因。无论我设置什么日期范围(一周、一个月、Datetime.MinValue 到 DateTime.MaxValue),我总是没有得到任何结果。无论我进入我的 HV 帐户多少次,都可以查看和下载我的连接 DOPU 文档。该 SDK 方法仍然没有给我任何结果。
我还尝试在发送 CCD 以专门设置patient-id和entry-date时使用 CCD 扩展 XML 。同样,这不会影响我的报告结果。
是否有其他人比我在 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(在我们的 PPE 环境中,完成后立即删除它们),包括测试 CCD。我什至在我的应用程序中设置了 ConnectPackage,使其行为与 MS 的测试应用程序相同。无论我发送什么,我都知道对 CCD 有意义地使用 VDT 数据。但是,MS 测试应用程序中的测试 CCD 可以正常工作。
更新 3 尝试通过 MS 测试应用程序发送 CCD。再次,它发送,我可以毫无问题地连接到一个 HV 帐户。无论使用的日期范围如何,我都没有得到 VDT 数据。也许我们的 CCD 有问题?