Message-ID: <1291880789.8476.1711700795708.JavaMail.confluence@ip-172-30-4-17.ec2.internal> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_8475_2062908977.1711700795704" ------=_Part_8475_2062908977.1711700795704 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html Metadata XML for Medication Modifiers

Metadata XML for Medication Modifiers

Metadata XML for Medication Modifiers

=20

XML Specification for Descriptive Files of Values

=20

Version 3.02

=20

In the Observation_fact table of the Clinical Research Chart of i2b2, th= e following columns are used to describe values associated with concepts: <= br class=3D"atl-forced-newline">

=20

     ValType_CD (Varchar(50))

=20

     NVal_num (number)

=20

     TVal_char (Varchar(255) =E2=80=93 standard= , sized per implementation)

=20

     ValueFlag_CD (Varchar(50))

=20

     Quantity_CD (number)

=20

     Units_CD (Varchar(50))

=20

     Observation_blob (blob)

=20

Values that are expected to occur in these columns are specified in a co= lumn of the Ontology Cell named "Metadata_XML".  Modifiers may often h= ave values associated with them, and the above columns are filled and the M= etadata_XML is specified in the same way as the concept_cd, however the val= ue applies to the modifier rather than the concept_cd.  When there is = a value in these columns and a modifier is present in the modifier_cd colum= n, the value ALWAYS applies to the modifier_cd coded element.  Note th= at if the value is desired to apply to the base concept_cd, the modifier_cd= column is specified to be "@".

=20

Values are defined according to the ValType_CD column, which can be cons= trued as an identifier for the type of value object that fills out the rest= of the above columns.   There are two identifiers that are used = for medication modifiers:

=20

     N =3D numeric value

=20

     T =3D enumerated or string value

=20

Numeric values are normalized in one of two ways.  In versions thro= ugh 1.5, the values are assumed to be equivalent to a "Normal" set of units= .  In the Metadata_XML file this is specified as <NormalUnits>.&= nbsp; This implies that all values are normalized to those units during loa= ding.  Any value in the Units_CD column is ignored.  In versions = 1.6 RC4 and above, the Units_CD column is used to specify several possible = values for the units. Conversions will occur between units as long as they = are specified in the Metadata_XML file.  It should be recognized howev= er that queries may run considerable slower when specifying values in this = mode.

=20

Quantity is part of the value specification, and has units that are in t= he denominator of the unit's string.  If the value of quantity is null= , then the value is assumed to be 1.

= =20

The required tags are Versio= n, CreationDateTime,  TestID, DataType, and Flagstouse.  All tags except data i= n the Analysis tag is ex= pected to persist from one build to the next.  Note that the Metadata_= XML file can be used during data loading in order to provide data type and = normalization information for the values that are being loaded (especially = important when this information is not specified by the source)

=20

Version will contain = a real number with the XML specification version.  This is version "3.= 02"

=20

CreationDateTime is t= he date and time the file was created, in the format MM/DD/YY HH:MM:SS usin= g the 24 hour time.

=20

TestID is the Code (c= oncept_cd or modifer_cd) associated with the file.

=20

CodeType is equivalen= t to the "symantic type" and will be fully specified at a later date.

=20

TestName is the liter= al name of the test.  It is used for the convenience of the Analyst. <= br class=3D"atl-forced-newline">

=20

DataType will contain= the code for what kind of data to expect for this test.  Possible val= ues are:

=20

            PosIn= teger =E2=80=93 domain of all positive integers

=20

            Integ= er =E2=80=93 domain of all integers

=20

            PosFl= oat =E2=80=93 domain of all positive real numbers

=20

            Float= =E2=80=93 domain of all real numbers

=20

            Enum = =E2=80=93 domain of enumerated values

=20

            Strin= g =E2=80=93 domain of free text, NOT enumerated text values, which would be= the Enum data type.

=20

Flagstouse is a strin= g of concatinated flags that are valid for this TestID.  For example, = for most PosIntegers it would be "LNH"  Acceptable values are L (low),= N (normal), H (high), A (abnormal), T (toxic)

=20

Oktousevalues will co= ntain a "Y" or a message, which indicates why it is not OK to use values.&n= bsp; Nothing indicates that values cannot be used and the user may only spe= cify values using flags.

=20

UnitValues is the par= ent tag of a set of possibly repeating tags.  It contains data when th= e datatype is PosInteger, Integer, Float, and PosFloat.  All units are= always LOWER CASE.

=20

NormalUnits can exist= only once, it contains a string that a user would recognize which represen= ts the units of the value as we have it in the data warehouse.

=20

EqualUnits can repeat= , it contains other strings that are numerically equal to the NormalUnits s= tring.

=20

ConvertingUnits can r= epeat, it contains other strings, Units, and the factor,

=20

ExcludingUnits can re= peat, it contains units that will cause the test with these units to be exc= luded from the query (and in versions 1.5 and prior, should not be included= in the data load).  These are units that can not be converted with a = simple multiplier to NormalUnits.  These concepts will need a new code= , or if grouped will need to go into their own group, in order to be querie= d by value.

=20

EnumValues is used to= specify the list of acceptable enumerated values, each enclosed in the Val tag.  Enumerated v= alues that indicate an invalid test result (for the enum datatype) can be e= nclosed in the ExcludingVal tag.  The "descriptions" parameter exists to allow a humanly reada= ble value to be presented for the enumerated value in choice boxes of user = intergaces.  ExcludingVal is directed to loading processes, and specif= ies values not to lead into the database or display in a user interface (fo= r example, "pending").

=20

MaxStringLength will = contain a postitive integer or 0, representing the longest acceptable strin= g length, if the datatype is "string".

=20

LowofLowValue specifi= es the lowest of the low range values for PosInteger, Integer, Float, and P= osFloat datatypes.

=20

HighofLowValue specif= ies the highest of the low range values for PosInteger, Integer, Float, and= PosFloat datatypes.

=20

LowofHighValue specif= ies the lowest of the high range values for PosInteger, Integer, Float, and= PosFloat datatypes.

=20

HighofHighValue speci= fies the highest of the high range values for PosInteger, Integer, Float, a= nd PosFloat datatypes.

=20

LowofToxicValue speci= fies the lowest of the toxic range values for PosInteger, Integer, Float, a= nd PosFloat datatypes.

=20

HighofToxicValue spec= ifies the highest of the toxic range values for PosInteger, Integer, Float,= and PosFloat datatypes (rarely used).
=20

Analysis contains tag= s that are used to retain data for the analysis of a valuemetadata element.=   However, it is transient, and will not be retained from one build to= the next.  It generally only reflects the current state of the metada= ta database.  The New tag is intended to contain new unitvalues, enumv= alues, and such.

=20

<ValueMetadata>

=20

     <Version>3.02</Version>

=20

     <CreationDateTime>

=20

     <TestID/>

=20

     <TestName/>

=20

     <DataType>PosInteger, Integer, Float= , PosFloat, Enum, String</DataType>

=20

     <Flagstouse/>

=20

     <Oktousevalues/>

=20

     <UnitValues>

=20

          <NormalUn= its/>

=20

          <EqualUni= ts/>

=20

          <Converti= ngUnits/>

=20

          <Units/&g= t;

=20

          <Multiply= ingFactor/>

=20

          <Converti= ngUnits/>

=20

          <Excludin= gUnits/>

=20

     </UnitValues>

=20

     <EnumValues>

=20

          <Val desc= ription=3D""/>

=20

          <Excludin= gVal description=3D""/>

=20

     </EnumValues>

=20

     <MaxStringLength/>

=20

     <CommentsDeterminingExclusion>

= =20

          <Com>&= lt;/Com>

=20

     </CommentsDeterminingExclusion>

= =20

     <LowofLowReference/>

=20

     <HighofLowReference/>

=20

     <LowofHighReference/>

=20

     <HighofHighReference/>

=20

     <LowofToxicReference/>

=20

     <HighofToxicReference/>

=20

     <Analysis>

=20

          <Enums/&g= t;

=20

          <Counts/&= gt;

=20

          <New/>=

=20

     </Analysis>

=20

</ValueMetadata>

=20

Rolling up group codes

=20

Groups are one hierarchical level above the leaf codes, and the XML file= that represents this group code will be computed from all the XML files th= at represent the children in the group.  The following fields are comp= uted form the children's Metadata_XML files in the following manner:

=20

Flagstouse is a strin= g of concatinated flags that are valid for any Children in this group. = ;

=20

Oktousevalues will co= ntain a Y or nothing.   If the Children in the group are not all = Numbers (Float, PosFloat, Integer, PosInteger) or all Enums, or all Strings= , then Oktousevalues is = usually a short explanatory string.

= =20

UnitValues is the par= ent tag of a set of possibly repeating tags.  It contains data when th= e datatype is PosInteger, Integer, Float, and PosFloat.  Each unique X= ML element and value in the Children of this group is simply repeated as ne= cessary under this tag.

=20

EnumValues is used to= specify the list of acceptable enumerated values for all children in the g= roup, each enclosed in the Val<= /span> tag.  Enumerated values that indicate an invalid result (for th= e enum datatype) can be enclosed in the ExcludingVal tag.  These (like UnitValues) are simply = repeated for each unique value found in the Children.

=20

MaxStringLength will = contain a postitive integer or 0, representing the longest acceptable strin= g length of all the Children in the Group.

=20

LowofLowReference spe= cifies the lowest of the low range values for PosInteger, Integer, Float, a= nd PosFloat datatypes of all the Children in the Group.

=20

HighofLowReference sp= ecifies the highest of the low range values for PosInteger, Integer, Float,= and PosFloat datatypes of all the Children in the Group..

=20

LowofHighReference sp= ecifies the lowest of the high range values for PosInteger, Integer, Float,= and PosFloat datatypes of all the Children in the Group..

=20

HighofHighReference s= pecifies the highest of the high range values for PosInteger, Integer, Floa= t, and PosFloat datatypes of all the Children in the Group..

=20

LowofToxicReference s= pecifies the lowest of the toxic range values for PosInteger, Integer, Floa= t, and PosFloat datatypes of all the Children in the Group.

=20

HighofToxicReference = specifies the highest of the toxic range values for PosInteger, Integer, Fl= oat, and PosFloat datatypes of all the Children in the Group.

=20

Analysis is not used = in the group, and therefore is always nothing.


=20

Examples of medication modifiers XML_Metadata codes

=20

DOSE:

=20

<?xml version=3D"1.0"?>

=20

<ValueMetadata>

=20

     <Version>3.02</Version>

=20

     <CreationDateTime>01/26/2011 00:00:0= 0</CreationDateTime>

=20

     <TestID>MED:DOSE</TestID>

= =20

     <TestName>Medication Dose</TestNa= me>

=20

     <DataType>PosFloat</DataType><= /p>=20

     <Flagstouse></Flagstouse>

= =20

     <Oktousevalues>Y</Oktousevalues&g= t;

=20

     <EnumValues></EnumValues>

= =20

     <UnitValues>

=20

          <NormalUn= its >mg/dose</NormalUnits>

=20

          <EqualUni= ts >mg/tablet</ EqualUnits>

=20

          <EqualUni= ts>gm/liter</EqualUnits>

=20

          <EqualUni= ts>mg/ml</EqualUnits>

=20

          <Excludin= gUnits>%</ExcludingUnits>

=20

          <Excludin= gUnits>iu</ExcludingUnits>

=20

          <Excludin= gUnits>iu/ml</ExcludingUnits>

=20

          <Excludin= gUnits>mcg/inh</ExcludingUnits>

=20

          <Excludin= gUnits>mEq</ExcludingUnits>

=20

          <Excludin= gUnits>mg/inh</ExcludingUnits>

=20

          <Excludin= gUnits>u/gm</ExcludingUnits>

=20

          <Excludin= gUnits>u/ml</ExcludingUnits>

=20

          <Converti= ngUnits>

=20

            =    <Units>gm/tablet</Units>

=20

            =    <MultiplyingFactor>1000</MultiplyingFactor>=20

          </Convert= ingUnits>

=20

          <Converti= ngUnits>

=20

            =    <Units>gm/15ml</Units>

=20

            =    <MultiplyingFactor>66.66</MultiplyingFactor><= /p>=20

          </Convert= ingUnits>

=20

          <Converti= ngUnits>

=20

            =    <Units>gm/50ml</Units>

=20

            =    <MultiplyingFactor>20</MultiplyingFactor>

= =20

          </Convert= ingUnits>

=20

          <Converti= ngUnits>

=20

            =    <Units>mcg/tablet</Units>

=20

            =    <MultiplyingFactor>0.001</MultiplyingFactor><= /p>=20

          </Convert= ingUnits>

=20

          <Converti= ngUnits>

=20

            =    <Units>mcg/ml</Units>

=20

            =    <MultiplyingFactor>0.001</MultiplyingFactor><= /p>=20

          </Convert= ingUnits>

=20

          <Converti= ngUnits>

=20

            =    <Units>mg/0.5ml</Units>

=20

            =    <MultiplyingFactor>2</MultiplyingFactor>

= =20

          </Convert= ingUnits>

=20

          <Converti= ngUnits>

=20

            =    <Units>mg/15ml</Units>

=20

            =    <MultiplyingFactor>0.066</MultiplyingFactor><= /p>=20

          </Convert= ingUnits>

=20

          <Converti= ngUnits>

=20

            =    <Units>mg/5ml</Units>

=20

            =    <MultiplyingFactor>0.2</MultiplyingFactor>=20

          </Convert= ingUnits>

=20

     </UnitValues>

=20

</ValueMetadata>

=20

FREQUENCY

=20

<?xml version=3D"1.0"?>

=20

<ValueMetadata>

=20

     <Version>3.02</Version>

=20

     <CreationDateTime>01/26/2011 00:00:0= 0</CreationDateTime>

=20

     <TestID>MED:FREQ</TestID>

= =20

     <TestName>Medication Frequency</T= estName>

=20

     <DataType>Enum</DataType>

= =20

     <Flagstouse></Flagstouse>

= =20

     <Oktousevalues>N</Oktousevalues&g= t;

=20

     <EnumValues>

=20

          <Val desc= ription=3D"Before meals">AC</Val>

=20

          <Val desc= ription=3D"Twice per day">BID</Val>

=20

          <Val desc= ription=3D"Once per day">QD</Val>

=20

          <Val desc= ription=3D"Once at night">QHS</Val>

=20

          <Val desc= ription=3D"Three times per day">TID</Val>

=20

     </EnumValues>

=20

     <UnitValues></UnitValues>

= =20

</ValueMetadata>

=20

ROUTE

=20

<?xml version=3D"1.0"?>

=20

<ValueMetadata>

=20

     <Version>3.02</Version>

=20

     <CreationDateTime>01/26/2011 00:00:0= 0</CreationDateTime>

=20

     <TestID>MED:ROUTE</TestID>

= =20

     <TestName>Medication Route</TestN= ame>

=20

     <DataType>Enum</DataType>

= =20

     <Flagstouse></Flagstouse>

= =20

     <Oktousevalues></Oktousevalues>= ;

=20

     <EnumValues>

=20

          <Val desc= ription=3D"">inhalation</Val>

=20

          <Val desc= ription=3D"">injection</Val>

=20

          <Val desc= ription=3D"Intravenous">IV</Val>

=20

          <Val desc= ription=3D"By Mouth">PO</Val>

=20

          <Val desc= ription=3D"By Rectum">PR</Val>

=20

          <Val desc= ription=3D"">topical</Val>

=20

          <Val desc= ription=3D"">transdermal</Val>

=20

     </EnumValues>

=20

     <UnitValues></UnitValues>

= =20

</ValueMetadata>

=20

PHARMACY ID

=20

<?xml version=3D"1.0"?>

=20

     <ValueMetadata>

=20

     <Version>3.02</Version>

=20

     <CreationDateTime>01/26/2011 00:00:0= 0</CreationDateTime>

=20

     <TestID>MED:NCPDPID</TestID>=20

     <TestName>NCPDP Provider ID</Test= Name>

=20

     <DataType>String</DataType>=20

     <MaxStringLength>255</MaxStringLe= ngth>

=20

     <Flagstouse></Flagstouse>

= =20

     <Oktousevalues></Oktousevalues>= ;

=20

     <EnumValues></EnumValues>

= =20

     <UnitValues></UnitValues>

= =20

</ValueMetadata>


=20

PHARMACY BENEFITS MANAGER (PBM) NUMBER

=20

<?xml version=3D"1.0"?>

=20

<ValueMetadata>

=20

     <Version>3.02</Version>

=20

     <CreationDateTime>01/26/2011 00:00:0= 0</CreationDateTime>

=20

     <TestID>MED:PBM</TestID>

= =20

     <TestName>Pharmacy Benefits Manager = Number</TestName>

=20

     <DataType>String</DataType>=20

     <MaxStringLength>255</MaxStringLe= ngth>

=20

     <Flagstouse></Flagstouse>

= =20

     <Oktousevalues></Oktousevalues>= ;

=20

     <EnumValues></EnumValues>

= =20

     <UnitValues></UnitValues>

= =20

</ValueMetadata>

=20

QUANTITY OF PILLS DISPENSED:

=20

<?xml version=3D"1.0"?>

=20

<ValueMetadata>

=20

     <Version>3.02</Version>

=20

     <CreationDateTime>01/26/2011 00:00:0= 0</CreationDateTime>

=20

     <TestID>MED:DSPQ</TestID>

= =20

     <TestName>Quantity Dispensed</Tes= tName>

=20

     <DataType>PosFloat</DataType><= /p>=20

     <Flagstouse></Flagstouse>

= =20

     <Oktousevalues>Y</Oktousevalues&g= t;

=20

     <EnumValues></EnumValues>

= =20

     <UnitValues>

=20

          <NormalUn= its>tablets</NormalUnits>

=20

     </UnitValues>

=20

</ValueMetadata>

=20

NUMBER OF DAYS SUPPLY GIVEN:

=20

<?xml version=3D"1.0"?>

=20

<ValueMetadata>

=20

<Version>3.02</Version>

=20

     <CreationDateTime>01/26/2011 00:00:0= 0</CreationDateTime>

=20

     <TestID>MED:DDS</TestID>

= =20

     <TestName>Number of Days Supply Give= n</TestName>

=20

     <DataType>PosFloat</DataType><= /p>=20

     <Flagstouse></Flagstouse>

= =20

     <Oktousevalues>Y</Oktousevalues&g= t;

=20

     <EnumValues></EnumValues>

= =20

     <UnitValues>

=20

          <NormalUn= its>days</NormalUnits>

=20

     </UnitValues>

=20

</ValueMetadata>

------=_Part_8475_2062908977.1711700795704--