From IHE Wiki
Jump to: navigation, search


Development Only

The PCC Wiki Content is used only for development of IHE PCC Content. The Normative content of the PCC Technical Framework and the current supplements can be found at http://www.ihe.net/Technical_Framework/index.cfm#PCC

Trial.gif Medications

This content module describes the general structure for a medication. All medication administration acts will be derived from this content module.

Pharmacy HL7 Pharmacy Domain (Normative)
CCD ASTM/HL7 Continuity of Care Document

See Templates using Medications

Medications Example
<substanceAdministration classCode='SBADM' moodCode='INT|EVN'>
  <templateId root='2.16.840.1.113883.'/>
  <templateId root=''/>
  <templateId root=''/>
  <id root='' extension=''/>
  <code code='' codeSystem='' displayName='' codeSystemName=''/>
  <text><reference value='#med-1'/></text>
  <statusCode code='completed'/>
  <effectiveTime xsi:type='IVL_TS'>
      <low value=''/>
      <high value=''/>
  <effectiveTime operator='A' xsi:type='TS|PIVL_TS|EIVL_TS|PIVL_PPD_TS|SXPR_TS'>
  <routeCode code='' codeSystem='' displayName='' codeSystemName=''/>
  <doseQuantity value='' unit=''/>
  <approachSiteCode code='' codeSystem='' displayName='' codeSystemName=''/>
  <rateQuantity value='' unit=''/>
  <!-- 0..* entries describing the components -->
  <entryRelationship typeCode='COMP' >
      <sequenceNumber value=''/>
  <!-- An optional entry relationship that indicates the the reason for use -->
  <entryRelationship typeCode='RSON'>
    <act classCode='ACT' moodCode='EVN'>
      <templateId root=''/>
      <id root='' extension=''/>
  <!-- An optional entry relationship that provides prescription activity -->
  <entryRelationship typeCode='REFR'>
    <templateId root=''/>
      <text><reference value=''></text>

This section makes use of the linking, severity and instruction entries.

Medications are perhaps the most difficult data elements to model due to variations in the ways that medications are prescribed.

This profile identifies the following relevant fields of a medication as being important to be able to generate in a medical summary. The table below identifies and describes these fields, and indicates the constraints on whether or not they are required to be sent. The fields are listed in the order that they appear in the CDA XML content.

Medication Fields
Medication Fields
Field Opt. CDA Tag Description
Start and Stop Date R2 <effectiveTime> The date (and time if available) when the medication regimen began and is expected to finish. The first component of the <effectiveTime> encodes the lower and upper bounds over which the <substanceAdministration> occurs, and the start time is determined from the lower bound. If the medication has been known to be stopped, the high value must be present, but expressed as a flavor of null (e.g., Unknown).
Frequency R2 <effectiveTime> The frequency indicates how often the medication is to be administered. It is often expressed as the number of times per day, but which may also include information such as 1 hour before/after meals, or in the morning, or evening.The second <effectiveTime> element encodes the frequency. In cases where split or tapered doses are used, these may be found in subordinate <substanceAdministration> elements.
Route R2 <routeCode> The route is a coded value, and indicates how the medication is received by the patient (by mouth, intravenously, topically, et cetera).
Dose R2 <doseQuantity> The amount of the medication given. This should be in some known and measurable unit, such as grams, milligrams, et cetera. It may be measured in "administration" units (such as tablets or each), for medications where the strength is relevant. In this case, only the unit count is specified , no units are specified. It may be a range.
Site O <approachSiteCode> The site where the medication is administered, usually used with IV or topical drugs.
Rate R2 <rateQuantity> The rate is a measurement of how fast the dose is given to the patient over time (e.g., .5 liter / 1 hr), and is often used with IV drugs.
Product R1 <consumable>
The name of the substance or product. This should be sufficient for a provider to identify the kind of medication. It may be a trade name or a generic name. This information is required in all medication entries. If the name of the medication is unknown, the type, purpose or other description may be supplied. The name should not include packaging, strength or dosing information. Note: Due to restrictions of the CDA schema, there is no way to explicitly link the name to the narrative text.
Strength R2 <consumable>
The name and strength of the medication. This information is only relevant for some medications, as the dose of the medication is often sufficient to indicate how much medication the patient receives. For example, the medication Percocet comes in a variety of strengths, which indicate specific amounts of two different medications being received in single tablet. Another example is eye-drops, where the medication is in a solution of a particular strength, and the dose quantity is some number of drops. The originalText referenced by the <code> element in the consumable should refer to the name and strength of the medication in the narrative text.Note: Due to restrictions of the CDA schema, there is no way to separately record the strength.
Code R2 <consumable>
A code describing the product from a controlled vocabulary, such as RxNorm, First DataBank, et cetera.
Instructions R2 <entryRelationship> A place to put free text comments to support additional relevant information, or to deal with specialized dosing instructions. For example, "take with food", or tapered dosing.
Indication O <entryRelationship> A link to supporting clinical information about the reason for providing the medication (e.g., a link to the relevant diagnosis).

1 A consumable is not neccessary when the substanceAdministration code indicates none or unknown medications.

<substanceAdministration classCode='SBADM' moodCode='INT|EVN'>

The general model is to record each prescribed medication in a <substanceAdministration> intent (moodCode='INT'). Medications that have been reported by the patient or administered (instead of prescribed ), are recorded in the same element, except that this is now an event (moodCode='EVN'). The <substanceAdministration> element may contain subordinate <substanceAdministration> elements in a related component entry to deal with special cases (see the section below on Special Cases). These cases include split, tapered, or conditional dosing, or combination medications. The use of subordinate <substanceAdministration> elements to deal with these cases is optional. The comment field should always be used in these cases to provide the same information as free text in the top level <substanceAdministration> element. There are a variety of special cases for dosing that need to be accounted for. These are described below. Most of these special cases involve changing the dosage or frequency over time, or based on some measurement. When the dosage changes, then additional entries are required for each differing dosage. The last case deals with combination medications.

Normal Dosing

This template identifier is used to identify medication administration events that do not require any special processing. The parent template is Medications that use this template identifier shall not use subordinate <substanceAdministation> acts.

Tapered Doses

This template identifier is used to identify medication administration events that require special processing to handle tapered dosing. The parent template is A tapered dose is often used for certain medications where abrupt termination of the medication can have negative consequences. Tapered dosages may be done by adjusting the dose frequency, the dose amount, or both.

When merely the dose frequency is adjusted, (e.g., Prednisone 5mg b.i.d. for three days, then 5mg. daily for three days, and then 5mg every other day), then only one medication entry is needed, multiple frequency specifications recorded in <effectiveTime> elements. When the dose varies (eg. Prednisone 15mg daily for three days, then 10 mg daily for three days, the 5 mg daily for three days), subordinate medication entries should be created for each distinct dosage.

Split Dosing

This template identifier is used to identify medication administration events that require special processing to handle split dosing. The parent template is A split dose is often used when different dosages are given at different times (e.g., at different times of day, or on different days). This may be to account for different metabolism rates at different times of day, or to simply address drug packaging deficiencies (e.g., and order for Coumadin 2mg on even days, 2.5mg on odd days is used because Coumadin does not come in a 2.25mg dose form).

In this case a subordinate <substanceAdministration> entry is required for each separate dosage.

Conditional Dosing

This template identifier is used to identify medication administration events that require special processing to handle conditional dosing. The parent template is A conditional dose is often used when the dose amount differs based on some measurement (e.g., an insulin sliding scale dose based on blood sugar level). In this case a subordinate <substanceAdministration> entry is required for each different dose, and the condition should be recorded.

Combination Medications

This template identifier is used to identify medication administration events that require special processing to handle combination medications. The parent template is A combination medication is made up of two or more other medications. These may be prepackaged, such as Percocet, which is a combination of Acetaminophen and oxycodone in predefined ratios, or prepared by a pharmacist, such as a GI cocktail.

In the case of the prepackaged combination, it is sufficient to supply the name of the combination drug product, and its strength designation in a single <substanceAdministation> entry. The dosing information should then be recorded as simply a count of administration units.

In the latter case of a prepared mixture, the description of the mixture should be provided as the product name (e.g., "GI Cocktail") , in the <substanceAdministration> entry. That entry may, but is not required, to have subordinate <substanceAdministration> entries included beneath it to record the components of the mixture.

<templateId root='2.16.840.1.113883.'/>
<templateId root='' />

All medications entries use the <templateId> elements specified above to indicate that they are medication acts. This element is required. In addition, a medication entry shall further identify itself using one of the template identifiers detailed in the next section.

<templateId root=' ' />

The <templateId> element identifies this <entry> as a particular type of medication event, allowing for validation of the content. As a side effect, readers of the CDA can quickly locate and identify medication events. The templateId must use one of the values in the table below for the root attribute.

Extension values for <templateId> in <substanceAdministration>
root Description A "normal" <substanceAdministration> act that may not contain any subordinate <substanceAdministration> acts. A <substanceAdministration> act that records tapered dose information in subordinate <substanceAdministration> act. A <substanceAdministration> act that records split dose information in subordinate <substanceAdministration> acts. A <substanceAdministration> act that records conditional dose information in subordinate <substanceAdministration> acts. A <substanceAdministration> act that records combination medication component information in subordinate <substanceAdministration> acts.
<id root=' ' extension=' '/>

A top level <substanceAdministration> element must be uniquely identified. If there is no explicit identifier for this observation in the source EMR system, a GUID may be used for the root attribute, and the extension may be omitted. Although HL7 allows for multiple identifiers, this profile requires that one and only one be used. Subordinate <substanceAdministration> elements may, but need not be uniquely identified.

<code code=' ' displayName=' ' codeSystem=' ' codeSystemName=' '>

The <code> element is used to supply a code that describes the <substanceAdminstration> act, not the medication being administered or prescribed. This may be a procedure code, such as those found in CPT-4 (and often used for billing), or may describe the method of medication administration, such as by intravenous injection. The type of medication is coded in the consumable, do not supply the code for the medication in this element. This element is optional.

One of the following values from SNOMED CT shall be used in the <code> element to record that a patient is either not on medications, or that medications are not known.

Entry Type Code Display Name Description
Medication 182904002 Drug Treatment Unknown To indicate lack of knowledge about drug therapy
Medication 182849000 No Drug Therapy Prescribed To indicate the absense of any prescribed medications
Medication 408350003 Patient Not On Self-Medications To indicate no treatment
<text><reference value=' '/></text>

The URI given in the value attribute of the <reference> element points to an element in the narrative content that contains the complete text describing the medication. In a CDA document, the URI given in the value attribute of the <reference> element points to an element in the narrative content that contains the complete text describing the medication. In an HL7 message, the content of the text element shall contain the complete text describing the medication.

<statusCode code='completed'/>

The status of all <substanceAdministration> elements must be "completed". The act has either occurred, or the request or order has been placed.

<effectiveTime xsi:type='IVL_TS'>

The first <effectiveTime> element encodes the start and stop time of the medication regimen. This an interval of time (xsi:type='IVL_TS'), and must be specified as shown. This is an additional constraint placed upon CDA Release 2.0 by this profile, and simplifies the exchange of start/stop and frequency information between EMR systems.

<low value=' '/><high value=' '/>

The <low> and <high> values of the first <effectiveTime> element represent the start and stop times for the medication. The <low> value represents the start time, and the <high> value represents the stop time. If either the <low> or the <high> value is unknown, this shall be recorded by setting the nullFlavor attribute to UNK. The <high> value records the end of the medication regime according to the information provided in the prescription or order. For example, if the prescription is for enough medication to last 30 days, then the high value should contain a date that is 30 days later then the <low> value. The rationale is that a provider, seeing an un-refilled prescription would normally assume that the medication is no longer being taken, even if the intent of the treatment plan is to continue the medication indefinitely.

<effectiveTime operator='A' xsi:type='TS|PIVL_TS|EIVL_TS|PIVL_PPD_TS|SXPR_TS' />

The second <effectiveTime> element records the frequency of administration. This <effectiveTime> element must be intersected with the previous time specification (operator='A'), producing the bounded set containing only those time specifications that fall within the start and stop time of the medication regimen. Several common frequency expressions appear in the table below, along with their XML representations.

Specifying Medication Frequency
Sample Frequency Specifications
Freq Description XML Representation
b.i.d. Twice a day <effectiveTime xsi:type='PIVL_TS' institutionSpecified='true' operator='A'> <period value='12' unit='h' /></effectiveTime>
q12h Every 12 hours <effectiveTime xsi:type='PIVL_TS' institutionSpecified='false' operator='A'> <period value='12' unit='h' /></effectiveTime>
Once Once, on 2005-09-01 at 1:18am. <effectiveTime xsi:type='TS' value='200509010118'/>
t.i.d. Three times a day, at times determined by the person administering the medication . <effectiveTime xsi:type='PIVL_TS' institutionSpecified='true' operator='A'> <period value='8' unit='h' /></effectiveTime>
q8h Every 8 hours <effectiveTime xsi:type='PIVL_TS' institutionSpecified='false' operator='A'> <period value='8' unit='h' /></effectiveTime>
qam In the morning <effectiveTime xsi:type='EIVL' operator='A'> <event code='ACM'/></effectiveTime>
  Every day at 8 in the morning for 10 minutes <effectiveTime xsi:type='PIVL_TS' operator='A'> <phase> <low value="198701010800" inclusive="true"/> <width value="10" unit="min"/> </phase> <period value='1' unit='d'/></effectiveTime>
q4-6h Every 4 to 6 hours. <effectiveTime xsi:type='PIVL_PPD_TS' institutionSpecified='false' operator='A'> <period value='5' unit='h' /> <standardDeviation value='1' unit='h'></effectiveTime>

The last frequency specification is about as bad as it gets, but can still be represented accurately within the HL7 V3 datatypes. The mean (average) of the low and high values is specified for the period. The mean of 4 and 6 is 5. The standard deviation is recorded as one half the difference between the high and low values, with an unspecified distribution. The type attribute of the <effectiveTime> element describes the kind of frequency specification it contains. More detail is given for each type in the table below.

Data types used in Frequency Specifications
<effectiveTime> types used in Frequency Specifications
xsi:type Description
TS An xsi:type of TS represents a single point in time, and is the simplest of all to represent. The value attribute of the <effectiveTime> element specifies the point in time in HL7 date-time format (CCYYMMDDHHMMSS)
PIVL_TS An xsi:type of PIVL_TS is the most commonly used, representing a periodic interval of time. The <low> element of <phase> may be present. If so it specifies the starting point, and only the lower order components of this value are relevant with respect to the <period>. The <width> element represents the duration of the dose administration (e.g., for IV administration). The <period> indicates how often the dose is given. Legal values for the unit attribute of <period> are s, min, h, d, wk and mo representing seconds, minutes, hours, days, weeks, and months respectively.
EIVL_TS An xsi:type of EIVL_TS represents an event based time interval, where the event is not a precise time, but is often used for timing purposes (e.g. with meals, between meals, before breakfast, before sleep). Refer to the HL7 TimingEvent vocabulary for the codes to use for the <event> element. This interval may specify an <offset> which provides information about the time offset from the specified event (e.g., <offset><low value='-1' unit='h'/><width value='10' unit='min'/></offset> means 1 hour before the event. In that same example, the <width> element indicates the duration for the dose to be given.
PIVL_PPD_TS An xsi:type of PIVL_PPD_TS represents an probabilistic time interval and is used to represent dosing frequencies like q4-6h. This profile requires that the distributionType of this interval be left unspecified. The <period> element specifies the average of the time interval, and the value of the <standardDeviation> shall be computed as half the width of the interval. The unit attributes of the <period> and <standardDeviation> elements shall be the same.
SXPR_TS An xsi:type of SXPR_TS represents a parenthetical set of time expressions. This type is used when the frequency varies over time (e.g., for some cases of tapered dosing, or to handle split dosing). The <comp> elements of this <effectiveTime> element are themselves time expressions (using any of the types listed above). Each <comp> element may specify an operator (e.g. to intersect or form the union of two sets).
<routeCode code=' ' displayName=' ' codeSystem='2.16.840.1.113883.5.112' codeSystemName='RouteOfAdministration'>

The <routeCode> element specifies the route of administration using the HL7 RouteOfAdministration vocabulary. A code must be specified if the route is known, and the displayName attribute should be specified. If the route is unknown, this element shall not be sent.

<approachSiteCode code=' ' codeSystem=' '>
 originalText><reference value=' '/></originalText>

The <approachSiteCode> element describes the site of medication administrion. It may be coded to a controlled vocabulary that lists such sites (e.g., SNOMED-CT). In CDA documents, this element contains a URI in the value attribute of the <reference> that points to the text in the narrative identifying the site. In a message, the <originalText> element shall contain the text identifying the site.

<doseQuantity> <low value=' ' unit=' '/><high value=' ' unit=' '/> </doseQuantity>

The dose is specified if the <doseQuantity> element. If a dose range is given (e.g., 1-2 tablets, or 325-750mg), then the <low> and <high> bounds are specified in their respective elements, otherwise both <low> and <high> have the same value. If the dose is in countable units (tablets, caplets, "eaches"), then the unit attribute is not sent. Otherwise the units are sent. The unit attribute should be derived from the HL7 UnitsOfMeasureCaseSensitive vocabulary .

<low|high value=' '> <translation> <originalText><reference value=' '/></originalText> </translation></low|high >

Any <low> and <high> elements used for <doseQuantity> or <rateQuantity> should contain a <translation> element that provides a <reference> to the <originalText> found in the narrative body of the document. In a CDA document, any <low> and <high> elements used for <doseQuantity> or <rateQuantity> should contain a <translation> element that provides a <reference> to the <originalText> found in the narrative body of the document. In a message, the <originalText> may contain the original text used to describe dose quantity.

<rateQuantity><low value=' ' unit=' '/><high value=' ' unit=' '/></rateQuantity>

The rate is specified in the <rateQuantity> element. The rate is given in units that have measure over time. In this case, the units should be specified as a string made up of a unit of measure (see doseQuantity above), followed by a slash (/), followed by a time unit (s, min, h or d).

Again, if a range is given, then the <low> and <high> elements contain the lower and upper bound of the range, otherwise, they contain the same value.


The <consumable> element shall be present, and shall contain a <manufacturedProduct> entry conforming to the Product Entry template

<entryRelationship typeCode='REFR'>
&nsbp;<templateId root=''/>

The top level <substanceAdministration> element may contain a reference (typeCode='REFR') to related prescription activity as described in the Supply Entry.

<entryRelationship typeCode='COMP'>
 <sequenceNumber value=' '>

A top level <substanceAdministration> element may contain one or more related components, either to handle split, tapered or conditional dosing, or to support combination medications.

In the first three cases, the subordinate components shall specify only the changed <frequency> and/or <doseAmount> elements. For conditional dosing, each subordinate component shall have a <precondition> element that specifies the <observation> that must be obtained before administration of the dose. The value of the <sequenceNumber> shall be an ordinal number, starting at 1 for the first component, and increasing by 1 for each subsequent component. Components shall be sent in <sequenceNumber> order.

<entryRelationship typeCode='SUBJ' inversionInd='true'/>

At most one instruction may be provided for each <substanceAdministration> entry. If provided, it shall conform to the requirements listed for Patient Medication Instructions. The instructions shall contain any special case dosing instructions (e.g., split, tapered, or conditional dosing), and may contain other information (take with food, et cetera).

<entryRelationship typeCode='RSON'>
 <act classCode='ACT' moodCode='EVN'>
  <templateId root=''/>
  <id root=' ' extension=' '/>

A <substanceAdministration> event may indicate one or more reasons for the use of the medication. These reasons identify the concern that was the reason for use via the Internal Reference entry content module.

The extension and root of each observation present must match the identifier of a concern entry contained elsewhere within the CDA document.

A consumer of the Medical Summary is encouraged, but not required to maintain these links on import.

 <text><reference value=' '></text>

In a CDA document, the preconditions for use of the medication are recorded in the <precondition> element. The value attribute of the <reference> element is a URL that points to the CDA narrative describing those preconditions.

<condition typeCode='PRCN'>
  <value nullFlavor='UNK'/>
  <interpretationCode nullFlavor='UNK'/>

In a message, the preconditions for use of the medication are recorded in the <condition> element. The typeCode shall be PRCN. The <text> element of the criterion shall contain a text description of the precondition. The <value> element is required, and may be recorded in a structured data type if known, and if not, may be recorded using a nullFlavor as shown above. The same is true for <interpretationCode>.