0
Answered

Philips MX800 Device Adapter Numerics

Thomas Drake-Brockman 10 years ago in OpenICE updated by Jeff Peterson 10 years ago 11
Hey,

Since getting our Philips MX800 to connunicate correct with OpenICE, I've noticed that some numerics are not being transmitted.

In particular Respiratory Rate, and Exhaled Carbon Dioxide. Neither of these display when viewing the device through the demo apps, although the EtCO2 waveform does come across:


Image 12

I did notice that the RR values does seem to be present in the messaged produced when I run hello-openice, such as follows:

unique_device_identifier: OC2rcpaYQdOQnLgTvRH0ZCYya91i71pPsxjK
metric_id: MDC_VENT_RESP_RATE
vendor_metric_id: NOM_VENT_RESP_RATE
instance_id: 34628
unit_id: MDC_DIM_RESP_PER_MIN
value: 22.0
device_time :
    sec: 1432600653
    nanosec: 643000000
presentation_time :
    sec: 1432600562
    nanosec: 0
It's currious that these values don't display in the device adapter view. Also, I definately can't find any references to a EtCO2 numeric in the output. Is this cponsistent with your experience with the MX800?

I noticed that intellivue.map appears to define the numerics and waves that are collected from the monitor. Is it simply a case of modifying this file to include the numerics I require? Or do I have to 'teach' OpenICE or the device adapter about these parameters elsewhere also?

In particular, I'm looking to access NOM_AWAY_CO2_ET (from the Philips Data Export Manual) I'd be most appreciative if you could provide some guidance on how to do so.
demo-apps device-adapter
GOOD, I'M SATISFIED
Satisfaction mark by Thomas Drake-Brockman 10 years ago
I've managed to adjust the VentilatorPanel to include rosetta.MDC_AWAY_RESP_RATE.VALUE in the list of Respiratory Rate parameters, and following compilation this resulted in the RR displaying correctly on the device adapter display.

The file now looks like this:

private final static String[][] PARAMS = new String[][] {
    { rosetta.MDC_RESP_RATE.VALUE, rosetta.MDC_CO2_RESP_RATE.VALUE,
      rosetta.MDC_TTHOR_RESP_RATE.VALUE, rosetta.MDC_AWAY_RESP_RATE.VALUE },
    { rosetta.MDC_AWAY_CO2_ET.VALUE }
};
I'd happily submit this as a pull request to your GitHub repository, or would you prefer a .diff?

I haven't, however, had any success with EtCO2. I attempted to update intellivue.map, adding the following lines:

#Observed Value (from VueLink):
NOM_AWAY_CO2        MDC_AWAY_CO2     NLS_NOM_AWAY_CO2        N
#Compound Observed Value:
NOM_AWAY_CO2_ET     MDC_AWAY_CO2_ET     NLS_NOM_AWAY_CO2        N
NOM_AWAY_CO2_INSP_MIN     MDC_AWAY_CO2_INSP_MIN     NLS_NOM_AWAY_CO2        N
This didn't appear to have any effect.

We continue to successfully receive the CO2 waveform, as specified by this line:

NOM_AWAY_CO2    MDC_AWAY_CO2    NLS_NOM_AWAY_CO2    W
Theoretically I could calculate the EtCO2 from the CO2 waveform, although I'd prefer not to head down that path.

Our ventilator is a Dräger Primus, connected to the Philips MX800 via a IntelliBridge EC10 module.

Any thoughts?
I've confirmed that we can collect the EtCO2 signal using a different software platform (ICM+), and so that the MX800 is definately exporting this signal.

I've also dug a little further into the Philips adapter in OpenICE, and have looked through the implimentation and usage of requestExtendedPoll, although I don't feel any closer to resolving the issue.
I spent some further time digging into the nitty-gritty of the protocol, the implimentation of requestExtendedPoll and the handle fuction for ObservedValue objects.

I still don't feel that I have a proper grasp on the issue I'm facing, although I've begun to wonder if I need to use a SET_PRIORITY_LIST_REQUEST.

Any advice or pointers much appreciated.
I've started developing a DSP routine to calculate the EtCO2 from the CO2 wave, although any assistiance with receiving the EtCO2 value from the device itself would be great.
Under review
Thomas

You are correct on all accounts and I apologize for the delay in letting letting you know.

The Philips interface protocol bypasses the "Scanner" package of ISO/IEEE 11073-10201 by utilizing a "priority list". Once the list is configured the monitor will spontaneously emit as many of the values in the list as it can (constrained by packet size, etc.) Our driver creates a priority list from the values specified in intellivue.map. So you were correct to add what values you would like to see to that file; and remember that the ordering is important.

Regarding the adjustment to the VentilatorPanel UI to include MDC_AWAY_RESP_RATE by all means a pull request on Github would be great!

I added *_AWAY_CO2_ET to our canonical priority list at https://github.com/mdpnp/mdpnp/commit/8383f2c1c4c03edcd60676bdf899479ea69349b8
and we are able to receive this value from our Intellivue devices using Philips capnography. We do not have an intellibridge module configured for a Dräger vent in the lab but as I understand the Philips documentation I would have expected that your configuration was correct. Ideally you could get documentation on the Intellibridge module that would tell you how nomenclature has been mapped. Barring that you could try a few other nomenclature codes to determine if they are getting set. For instance NOM_VENT_AWAY_CO2_EXP/MDC_VENT_AWAY_CO2_EXP/NLS_NOM_VENT_AWAY_CO2_EXP seems like a reasonable mapping someone might have made.

Also, and this is empirically based only, you could try creating a "Label" with the value of 0x000250B0 (perhaps called NLS_ NOM_AWAY_CO2_ET) and specifying that along with NOM_AWAY_CO2_ET/MDC_AWAY_CO2_ET.

I hope this extra information is helpful. I'm know that the etCO2 value is in the system somewhere. We'll try to think of more resources we can draw upon here to find out its nomenclature code.

Thanks
Jeff Plourde




Hi Jeff,

I've emailed my biomedical services contact to get a copy of the configuration for our specific EC10 modules.

In the meantime, I'll give some other configuration options a go, and see how I fare.

I've also receive this morning a copy of the Philips Data Export Test Tool, so I'll try running that against the monitor to see if it can help me diagnose the issue.

Thomas
Hi Jeff,

Additionally, to stem my curiousity, could you direct me to the relevant routine that configures the monitor's priority table with values from intellivue.map?

Thomas
Hey,

So having got a copy of the configuration for our EC10 modules, I've found this interesting bit of XML inside:

<AVA-Type>
    <attribute-id>
        2379
        <!--  MDC_ATTR_NU_CMPD_VAL_OBS  -->
    </attribute-id>
    <attribute-value>
        <NuObsValueCmp>
            <NuObsValue>
                <metric-id>
                    20656
                    <!--  NOM_AWAY_CO2_ET -->
                </metric-id>
                <state nil="true"/>
                <unit-code>
                    3872
                    <!--  NOM_DIM_MMHG -->
                </unit-code>
                <value nil="true"/>
            </NuObsValue>
            <NuObsValue>
                <metric-id>
                    20666
                    <!--  NOM_AWAY_CO2_INSP_MIN -->
                </metric-id>
                <state nil="true"/>
                <unit-code>
                    3872
                    <!--  NOM_DIM_MMHG -->
                </unit-code>
                <value nil="true"/>
            </NuObsValue>
        </NuObsValueCmp>
    </attribute-value>
</AVA-Type>

Such inspired, I've updated our intellivue.map file to include (near the top) the following lines:

NOM_AWAY_CO2_ET            MDC_AWAY_CO2_ET           NLS_NOM_AWAY_CO2_ET     N
NOM_AWAY_CO2_INSP_MIN      MDC_AWAY_CO2_INSP_MIN     NLS_NOM_AWAY_CO2        N

I will test this configuration as soon as I can wrestle an anaesthesia stack.
There's your pull request: https://github.com/mdpnp/mdpnp/pull/1
I tested the new intellivue.map with great success. EtCO2 was successfully exported from the monitor. Thanks for your assistance.
Answered
Hey Thomas,

Sorry for such a long delay in responding. I have been working on a variety on things and this site fell through the cracks.

Thank you for the pull request! This is great work. Keep us posted with how we can continue to help enable your work. I look forward to hearing from you again.

Jeff