The developer guide covers a great deal more than what I'm going to cover here, so hopefully this will provide an incentive for downloading it!
MCA devices (Motions' C5 and Phillip's accounced MCA) have a few unique hardware devices on them - namely Barcode, RFID and Camera.
Barcode and RFID do not have "standard" APIs. Each vendor has their own unique proprietary way of communicating with their device.
When Intel defined the MCA category, we did not want to force OEMs to use a specific device - we feel that OEMs should have the flexibility to differentiate themselves in the marketplace by selecting the devices they feel give them a competitive advantage.
The problem of course, is that if each OEM that creates a MCA using different devices for Barcodes and RFID, programmers trying to connect to these would have to support all these different devices.
This is where the MCA SDK comes into play. Intel has created a "code once" API, where the investment of integrating the MCA SDK guarantees interoperability.
This is done through a plug-in architecture where device specific plug-ins are created that plug into the MCA SDK architecture. As each OEM launches, they come pre-installed with plug-ins that are specific to their devices. However, from an API perspective, the programmer is insulated from these changes.
We didn't stop there with the SDK. There are a number of other value-add features. Some I'd like to highlight are:
Camera: Our SDK is essentially a wrapper around DirectShow. However, using DirectShow with all it's variants and options for controlling cameras can take 500-1,000 lines of code. We created a higher abstraction that allows for taking images in as few as 20 lines. This is illustrated in the sample programs we provide as part of the SDK.
Citrix: Many hospitals utilize Citrix. Working with several ISVs, we saw the work an ISV does for creating a program that runs either stand-alone or over Citrix. Combine this with the fact that several of these MCA devices are not supported natively in Citrix and this would belarge barrier for ISV Adoption. We decided early on to integrate Citrix into our architecture. The run-times for our SDK, along with a provided Virtual Channel completely insulates the programmer from deciding or even knowing they are running on Citrix. It's completely transparent. Intel is working with Citrix in qualifying the MCA SDK as part of the Citrix Ready Logo program.
Barcode: Integrating at an APIlevel with a barcode readercan signficantly enhance the end-user experience. Most applications today use a featurecalled "keyboard buffers" where thebarcode value is injected as if it were typed onto the screen. Thisis very limited. With the advent of2D and densebarcode symbologies,this will be very hard to manage as barcodes can now contain much more data than simply a value. The SDK also allows for reading multiple barcodesand exposing the type of barcode. This can be very helpful in cases such asscanning an infusion drip bag that has both pharmacy and inventory barcodes labels. Using the API, your program can diffentiate these and utilize the correct one.
RFID: This is an emerging technology that can really open the doors for some new usage models. The ability to write / read data allows fo
r some compelling solutions with patient and inventory management. For example, imagine being able to write certain data on the RFID tag as a patient is being transferred to another ward. They may not be running the same softare and the RFID could be written with data that can be read at the recieving ward. You could also store the latest vitals on the RFID tag so a practioner doesn't have to access a system in order to read the latest vitals. It's just there with a simple scan. This could be particulary useful in situations such as network or power outages.
Well, there area few compelling proof points to use the MCA SDK. As I stated in the beginning, many details of the architecture are in the developer guide, and sample programs are included as part of the installer that clearly demonstrate how few lines of code are required to implement many of these features.
Feel free to ask additional questions!