1

我一直在开发一个应用程序,该应用程序通过 Health 发送 CCD 文档的 DOPU(下车/取货)请求。创建 DOPU 请求并获取 HealthVault 生成的相应令牌工作正常。

我现在使用两种 SDK 方法来获取有意义的使用报告数据:

  1. OfflineWebApplicationConnection.GetMeaningfulUseTimelyAccessDOPUDocumentReport让我收到所有发送的 DPU 请求。这工作正常,这总是给我正确的 DOPU 请求(带有数据/时间戳、令牌和应用程序 ID)。
  2. 另一个是OfflineWebApplicationConnection.GetMeaningfulUseVDTReport方法。这是导致问题的原因。无论我设置什么日期范围(一周、一个月、Datetime.MinValue 到 DateTime.MaxValue),我总是没有得到任何结果。无论我进入我的 HV 帐户多少次,都可以查看和下载我的连接 DOPU 文档。该 SDK 方法仍然没有给我任何结果。

我还尝试在发送 CCD 以专门设置patient-identry-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 有问题?

4

0 回答 0