Uploaded image for project: 'QRDA Issue Tracker'
  1. QRDA Issue Tracker
  2. QRDA-302

Not providing a Medication Information section (CONF:1098-32049) always generates a 1098-9333 error and this shouldn't be the case.

XMLWordPrintable

    • Icon: Certification Certification
    • Resolution: Deferred
    • Icon: Minor Minor
    • None
    • Valid QRDA-1 files are being rejected with a 1098-9333 error.
    • DECC/PQRS
    • Dave Wade
    • 410-8727652
    • Rewrite 1098-9333 (see description), add a new constraint (1098-9333X), and delete 1098-32092, 1098-32093, and 1098-32096.

      Constraints 1098-9333, 1098-32092, 1098-32093, and 1098-32096 are very badly written (some are nonsense) and, to make matters worse, there are many errors in the way they were implemented in the Schematron rules provided by ESAC.

      The wording of these constraints in the 2016 Base QRDA-1 HL7 IG (i.e. "HL7 CDA® R2 Implementation Guide: Quality Reporting Document Architecture Category I (QRDA I); Release 1, DSTU Release 3 - US Realm, Draft Standard for Trial Use, Volume 2 - Templates and Supporting Material, June 2015") is like this:

      13. A supply act SHALL contain one product/Medication Information OR one product/Immunization Medication Information template (CONF:1098-9333).

      9. MAY contain zero or one [0..1] product (CONF:1098-32049) such that it
      a. SHALL contain exactly one [1..1] Medication Information (V2) (identifier: urn:hl7ii:2.16.840.1.113883.10.20.22.4.23:2014-06-09) (CONF:1098-32050).
      b. If the product is Medication Information (V2) (2.16.840.1.113883.10.20.22.4.23.2) then the product SHALL NOT be Immunization Medication Information (2.16.840.1.113883.10.20.22.4.54.2) and the participant SHALL NOT be Product Instance (CONF:1098-32092).

      10. MAY contain zero or one [0..1] product (CONF:1098-32051) such that it
      a. SHALL contain exactly one [1..1] Immunization Medication Information (V2) (identifier: urn:hl7ii:2.16.840.1.113883.10.20.22.4.54:2014-06-09) (CONF:1098-32052).
      b. If the product is Medication Information (V2) (2.16.840.1.113883.10.20.22.4.23.2) then the product SHALL NOT be Immunization Medication Information (2.16.840.1.113883.10.20.22.4.54.2) and the participant SHALL NOT be Product Instance (CONF:1098-32093).

      14. MAY contain zero or one [0..1] participant (CONF:1098-32094) such that it
      a. SHALL contain exactly one [1..1] Product Instance (identifier: urn:oid:2.16.840.1.113883.10.20.22.4.37) (CONF:1098-32095).
      b. If the participant is Product Instance then the product SHALL NOT be Medication Information (V2) (2.16.840.1.113883.10.20.22.4.23.2) and the product SHALL NOT be Immunization Medication Information (V2) (2.16.840.1.113883.10.20.22.4.54.2) (CONF:1098-32096).

      The first thing to notice is that the Medication Information template ID is specified incorrectly in multiple places in these constraints. It is specified as 2.16.840.1.113883.10.20.22.4.54.2 but the HL7 IG consistently defines the template ID as 2.16.840.1.113883.10.20.22.4.54. (The wrong way ends in ...4.54.2 and the correct way ends in ...4.54, without the '2').

      For example, the template ID constraint inside the Medication Information section defines the template ID like this:

      2. SHALL contain exactly one [1..1] templateId (CONF:1098-9004) such that it
      a. SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.22.4.54" (CONF:1098-10499).
      b. SHALL contain exactly one [1..1] @extension="2014-06-09" (CONF:1098-32602).

      It might be the case that the "2" is supposed to be on the end of this template ID but then the 10 other places in the HL7 IG have to be updated to agree with that. These constraints are the only place that identify the template ID with a "2" on the end of it.

      However, the bigger problem is that all the constraints, except for the 1098-9333 are new to the Release 3 of the HL7 IG and they are horribly written.

      It is clear what they are trying to do. A 'product' can have either a Medication Information section or a Immunization Medication Information section but not both.

      Also, a 'participant' can have either a Product Instance section or a Immunization Medication Information section but not both.

      This could be corrected deleting most of these constraints and just by rewriting 1098-9333, and writing another constraint (just like 1098-9333) for the 'participant' situation. The 'new' 1098-9333 should look like this...

      13. A supply act SHALL contain one product/Medication Information OR one product/Immunization Medication Information template (CONF:1098-9333) but not both.

      Also, 1098-32049, 1098-32051, 1098-32094 are all badly written 'such that' clauses. All of there 'b.' sub-constraints are not part of the 'such that' and should be indented to a lower level

      Also, constraint 1098-32092 can never fail. It is saying "If I'm a Medication Information section then I can't be a Immunization Medication Information". And 1098-32093 make even less sense. It is saying "If I'm a Immunization Medication Information section then, if I'm a Medication Information section I can't be a Immunization Medication Information"

      Again, these are all trying to enforce the mutual exclusiveness of some of these sections. All can be fixed by adding the 'but not both' clause to the 1098-9333 constraint.

      All of the above is highlighting how badly these R3 HL7 IG constrainst are written. Another, problem is how badly they have been implemented in the Schematron rules.

      First off, to their credit, no one even tried to implement rules for 1098-32049, 1098-32051, 1098-32094. As I pointed out above, as written, they are basically nonsense. That said, just ignoring them is also wrong. They are the constraints that are trying to make these sections mutually exclusive.

      The worse problem is how badly the Schematron assertion for 1098-9333 was written. Here is that assertion:

      <sch:assert id="a-1098-9333-c" test="cda:product/cda:manufacturedProduct[cda:templateId[@root='2.16.840.1.113883.10.20.22.4.23'][@extension='2014-06-09'] or cda:templateId[@root='2.16.840.1.113883.10.20.22.4.54.2'][@extension='2014-06-09']]">A supply act SHALL contain one product/Medication Information OR one product/Immunization Medication Information template (CONF:1098-9333).</sch:assert>

      The first problem with this constraint is that the text does not match the text in the HL7 IG. The HL7 IG does not have asterisks around the 'SHALL' or the 'OR'. This is a small issue but our test team will write a defect on this and, also, there is no reason to add the asterisks.

      The bigger problem is that this assertion uses the wrong template ID for Immunization Medication Information (i.e. ending in "2" as mentioned above) and so, if you don't provide a Medication Information section, even if you've included a valid Immunization Medication Information, this constraint fires and you get the 1098-9333 error.

            michael.holck Michael Holck
            davewade David Wade (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: