在 iOS 设备上访问医疗记录,第 2 部分
新的 iOS 移动设备为医生和医疗专业人员提供了随时随地访问患者数据的机会。本白皮书重点介绍 AIMTools SDK、Barcode Xpress Mobile SDK 以及如何启用它们来访问医疗记录。
移动设备使医疗专业人员即时访问医疗记录成为现实。本系列共两部分,“在移动设备上访问医疗记录”始于回顾如何使用 Android™ 设备访问医疗记录。本系列的最后一部分总结了如何利用 iOS™ (Apple®) 移动设备访问医疗记录。
医疗专业人员可以使用手机或平板电脑设备访问患者数据。作为 Windows SDK 领域的领导者,Accusoft 已进入移动领域,推出令人兴奋的新产品,使医疗专业人员能够通过移动设备访问各种医疗数据。本白皮书将重点介绍最近发布的两个软件开发工具包以及它们如何用于在 iOS 设备上访问医疗记录:AIMTools™ 和 Barcode Xpress Mobile™。
用例:患者医疗记录
为患者佩戴条形码腕带现在已很普遍,原因显而易见:即使患者无法自行识别,它也能提供明确的身份识别。这增强了患者安全,并大大降低了因给错误的患者用药(或更糟的是,对错误的患者进行手术)而导致医疗错误的发生率。《新英格兰医学杂志》最近在一篇题为“条形码技术对药物管理安全性的影响”的文章中记录了一项研究。研究结果证实,使用条形码技术进行用药和管理患者药物可显著减少错误。
许多机构使用一维条形码(例如 Code 128)对患者腕带进行编码。Code 128 是一种字母数字符号系统,非常适合编码患者 ID 或姓名等信息。它还可以通过常用激光扫描仪轻松准确地读取。
易用性
适用于 iOS 的 Barcode Xpress Mobile™ 提供了一种简洁、灵活且易于使用的方法来创建用于扫描条形码的移动应用程序。它具有专门为 iOS 定制的界面,该界面使用 Accusoft 速度极快且准确的条形码识别库。创建条形码识别应用程序从未如此简单。SDK 随附的源代码可以用作示例,也可以自定义并用作您自己应用程序的基础。它完成了收集和处理图像的所有工作,让您可以自由地专注于使用从条形码解码的值。这是一个代码片段,展示了通过其公共接口 BXInterface 启动和使用适用于 iOS 的 Barcode Xpress Mobile 是多么容易。
// Create and initialize a BXLicense.
BXLicense* license = [[BXLicense alloc] initWithData:@"Your OEM Key Here"
solutionName:@"Your Solution Name Here"
key1:0 key2:0 key3:0 key4:0 ];
// Initialize the interface to the decoding library.
barcodeXpress = [[BXInterface alloc] initWithLicense:license];
[license release];
// Define the callbacks that allow program control to be altered at key points.
[barcodeXpress SetCameraCallback :self :@selector(onCameraUpdate:)];
[barcodeXpress SetRecognitionCallback :self :@selector(onBarcodeRecognition:)];
[barcodeXpress SetProcessingCallback :self :@selector(onProcessingBarcode:)];
// Create a layer that will display preview imagery from the camera.
AVCaptureVideoPreviewLayer *previewLayer = [[AVCaptureVideoPreviewLayer alloc] init];
// Configure the camera and start processing video frames.
[barcodeXpress StartRecognition :previewLayer];
此时,程序以事件驱动的方式启动并运行。BXInterface 负责配置摄像头以使用其能提供的最佳分辨率。它根据可用的 CPU 核心数量使用适当数量的处理线程。它对视频摄像头帧缓冲区进行采样,并异步将这些图像发送到 Barcode Xpress 进行识别。当识别到条形码时,BXInterface 通过 `onBarcodeRecognition` 回调通知用户界面。您可以自定义回调以使用解码的条形码值。
使用一维条形码的医用手环
这是一个手环上的一维条形码,其中只包含患者 ID,使用 Code 128 符号进行编码。我们将展示如何使用适用于 iOS 的 Barcode Xpress Mobile 创建一个识别应用程序。
这是戴在病人手臂上的手环
这是适用于 iOS 的 Barcode Xpress Mobile,它正在读取条形码并显示患者 ID
使用解码数据
我们之前展示了如何开始使用 iOS 设备上的摄像头收集和解码图像。一旦条形码被解码,数据(“A32581239”)就可以在 `onBarcodeRecognition` 回调方法中使用。例如,假设这个患者 ID 是医院服务器上包含图像的患者记录的索引。我们可以使用由 Barcode Xpress for iOS 读取的条形码中的索引来检索这些图像。检索后,图像可以在移动设备上显示。
让我们看看如何使用此回调来检索文件。在实际世界实现中,由于安全考虑和 HIPPA 要求,HTTP 是不够的。此代码片段旨在演示使用条形码值的概念,不应在实际实现中使用。安全性留作读者的单独练习。
/**
* Callback that performs actions with the results of barcode detection.
* This method is called when a barcode is detected by the recognition
* library, or when the detection method reports an error.
*
* @param data NSDictionary with two keys:
* - "image" is a UIImage that contains the image upon which
* decoding was performed.
* - "results" is a BXResult that contains decoding results and
* status information. See BXResult.
*/
- (void)onBarcodeRecognition :(NSDictionary*)data {
// Get the decoding results.
BXResult *bxr = [data objectForKey:@"result"];
// Craft the URL using the decoded value.
NSString *stringURL = [NSString stringWithFormat:@"http://www.YOUR_SITE.com/%@.jpg",
bxr.m_value];
NSURL *url = [NSURL URLWithString:stringURL];
// Get the image from the server, using the URL.
NSData *patientImage = [NSData dataWithContentsOfURL:url];
if (patientImage) {
// Build a path to save the image to.
NSString *imagePath =
[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)
objectAtIndex:0]
stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.jpg",
bxr.m_value]];
// Store the image.
[patientImage writeToFile:imagePath atomically:YES];
}
return;
}
在 iOS 上查看医疗图像
现在您的应用程序已经使用条形码获取了患者 ID,并检索了与该 ID 相关的图像,您需要一种方法来查看和操作这些图像。许多用于医学成像的无损图像格式,包括 8 到 16 位灰度 JPEG 2000 和无损 JPEG,iOS 操作系统本身不支持。为了交互式地查看和处理这些图像,它们需要转换为有损的支持格式,例如 JPEG。
直到现在。
Accusoft AIMTools SDK 允许开发人员编写应用程序,这些应用程序可以直接处理原始图像数据,无需转换或往返服务器。这意味着本地 iOS 应用程序可以与所有原始图像数据进行交互,同时解压缩和转换对应用程序用户重要的图像部分。窗位调整、缩放和其他常见操作可以在本地执行,无需回传服务器进行更多图像转换。这显著提高了应用程序的响应速度,并极大地改善了用户体验。
适用于 iOS 的 AIMTools SDK 试用版可从 Accusoft 网站免费下载。该 SDK 包含一个 ImageViewer 示例,该示例演示了如何使用 SDK 构建一个功能齐全的图像查看器,包括缩略图生成、裁剪、缩放和窗位调整。我们鼓励开发人员使用 ImageViewer Xcode 项目,使用他们自己的图像评估 AIMTools 工具包。然后,示例代码可以用作开发的起点。
ImageViewer 示例中提供的示例代码是 AIMTools C API 的更高层次抽象。AIMTools 在需要时提供非常精细的图像处理功能,但 ImageViewer 示例最初试图隐藏这种精细性,并专注于最常见的图像操作。FileDetailViewController 类通过调用 `executeExpand()` 方法在后台线程上执行图像解压缩。`executeExpand()` 方法通过演示示例代码中包含的源 C 文件调用 AIMTools C API。示例中提供的这些 C 源文件也可以直接用于任何新的开发项目,以向开发人员隐藏 C 实现细节,从而使他们能够专注于 Objective-C 和应用程序设计。
结论
访问患者记录和查看医疗图像是完整的移动 EMR/EHR 解决方案的关键组成部分。然而,iOS 环境本身不支持查看 JPEG 2000 和无损 JPEG 图像。Accusoft 的移动 SDK 可帮助您克服此限制,并构建您的客户在医疗领域所需的应用程序,以最大限度地提高生产力。
如果您尚未阅读,请务必回顾我们对Android 上的条形码解码和医疗图像查看的报道。
您可以在 www.accusoft.com 上找到 Accusoft 产品下载和功能。访问我们的条形码网络演示 http://demos.accusoft.com/barcodexpressdemo 以测试我们的条形码识别准确性,或下载我们的移动条形码 SDK Barcode Xpress Mobile 的试用版,地址为 http://www.accusoft.com/barcodemobiledemo.htm。AIMTools 演示视频和 SDK 下载可在 http://www.accusoft.com/aimtools.htm 获取。欲了解更多信息,请联系 info@accusoft.com。
关于作者
Rob Rimbold 是 Accusoft 的高级软件工程师。他拥有 20 多年的多学科软件开发经验。Rob 毕业于马萨诸塞州洛厄尔大学,获得计算机科学学士学位。
Scott Wilson 是 Accusoft 的项目经理。他拥有 20 多年的软件开发和管理经验。Scott 毕业于加拿大汉密尔顿麦克马斯特大学,获得计算机科学学士学位。
Steve Wilson 是 Accusoft 的产品组总监。Steve 负责带领团队开发新产品,并增加 Accusoft 多个产品线的功能。他为管理团队带来了强大的技术背景,以及管理多元化离岸和在岸开发团队的经验。Steve 毕业于南佛罗里达大学,获得计算机科学学士学位。