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
Version 3.02
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">
=20ValType_CD (Varchar(50))
=20NVal_num (number)
=20TVal_char (Varchar(255) =E2=80=93 standard= , sized per implementation)
=20ValueFlag_CD (Varchar(50))
=20Quantity_CD (number)
=20Units_CD (Varchar(50))
=20 Observation_blob (blob)
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 "@".
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:
N =3D numeric value
=20 T =3D enumerated or string value
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.
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.
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)
Version will contain =
a real number with the XML specification version. This is version "3.=
02"
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.
TestID is the Code (c=
oncept_cd or modifer_cd) associated with the file.
CodeType is equivalen=
t to the "symantic type" and will be fully specified at a later date.
TestName is the liter= al name of the test. It is used for the convenience of the Analyst. <= br class=3D"atl-forced-newline">
=20DataType will contain=
the code for what kind of data to expect for this test. Possible val=
ues are:
PosIn= teger =E2=80=93 domain of all positive integers
=20Integ= er =E2=80=93 domain of all integers
=20PosFl= oat =E2=80=93 domain of all positive real numbers
=20Float= =E2=80=93 domain of all real numbers
=20Enum = =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.
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)
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.
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.
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.
EqualUnits can repeat=
, it contains other strings that are numerically equal to the NormalUnits s=
tring.
ConvertingUnits can r=
epeat, it contains other strings, Units, and the factor, MultiplyingFactor, such that values in theses units need to be mul=
tiplied by the multiplyingfactor to convert them into values of NormalUnits=
. For example, if NormalUnits was in feet, and ConvertingUnits was in=
yards, the MultiplyingFactor would be 0.333.
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.
EnumValues is used to=
specify the list of acceptable enumerated values, each enclosed in the
MaxStringLength will =
contain a postitive integer or 0, representing the longest acceptable strin=
g length, if the datatype is "string".
LowofLowValue specifi=
es the lowest of the low range values for PosInteger, Integer, Float, and P=
osFloat datatypes.
HighofLowValue specif=
ies the highest of the low range values for PosInteger, Integer, Float, and=
PosFloat datatypes.
LowofHighValue specif=
ies the lowest of the high range values for PosInteger, Integer, Float, and=
PosFloat datatypes.
HighofHighValue speci=
fies the highest of the high range values for PosInteger, Integer, Float, a=
nd PosFloat datatypes.
LowofToxicValue speci=
fies the lowest of the toxic range values for PosInteger, Integer, Float, a=
nd PosFloat datatypes.
HighofToxicValue spec=
ifies the highest of the toxic range values for PosInteger, Integer, Float,=
and PosFloat datatypes (rarely used).
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.
<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>
Rolling up group codes
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:
Flagstouse is a strin=
g of concatinated flags that are valid for any Children in this group. =
;
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.
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.
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.
MaxStringLength will =
contain a postitive integer or 0, representing the longest acceptable strin=
g length of all the Children in the Group.
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.
HighofLowReference sp=
ecifies the highest of the low range values for PosInteger, Integer, Float,=
and PosFloat datatypes of all the Children in the Group..
LowofHighReference sp=
ecifies the lowest of the high range values for PosInteger, Integer, Float,=
and PosFloat datatypes of all the Children in the Group..
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..
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.
HighofToxicReference =
specifies the highest of the toxic range values for PosInteger, Integer, Fl=
oat, and PosFloat datatypes of all the Children in the Group.
Analysis is not used =
in the group, and therefore is always nothing.
=
p>=20
Examples of medication modifiers XML_Metadata codes
DOSE:
<?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>= p>=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>
FREQUENCY
<?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>
ROUTE
<?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>
PHARMACY ID
<?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>= p>=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>
PHARMACY BENEFITS MANAGER (PBM) NUMBER
<?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>
QUANTITY OF PILLS DISPENSED:
<?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>
NUMBER OF DAYS SUPPLY GIVEN:
<?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>