0

There is a LOINC concept 55284-4 that appears in some FHIR resources, for example: https://syntheticmass.mitre.org/v1/fhir/Patient/0000aa42-c235-4447-8389-8a2640f44466/$everything

This code is for "Blood pressure systolic and diastolic" and is in the OMOP concept table as shown below.

enter image description here

This concept is not a standard concept, is not a valid concept (from OMOP's perspective) and does not have a mapping to any standard concept in OMOP.

enter image description here

This concept appears in the FHIR resource in the snippet shown below (from the synthmass url shown above).

What records should be created in OMOP to represent the snippet shown below?

        "resource": {
            "category": [
                {
                    "coding": [
                        {
                            "code": "vital-signs",
                            "display": "vital-signs",
                            "system": http://hl7.org/fhir/observation-category
                        }
                    ]
                }
            ],
            "code": {
                "coding": [
                    {
                        "code": "55284-4",
                        "display": "Blood Pressure",
                        "system": http://loinc.org
                    }
                ],
                "text": "Blood Pressure"
            },
            "component": [
                {
                    "code": {
                        "coding": [
                            {
                                "code": "8462-4",
                                "display": "Diastolic Blood Pressure",
                                "system": http://loinc.org
                            }
                        ],
                        "text": "Diastolic Blood Pressure"
                    },
                    "valueQuantity": {
                        "code": "mmHg",
                        "system": http://unitsofmeasure.org,
                        "unit": "mmHg",
                        "value": 84.88290301982099
                    }
                },
                {
                    "code": {
                        "coding": [
                            {
                                "code": "8480-6",
                                "display": "Systolic Blood Pressure",
                                "system": http://loinc.org
                            }
                        ],
                        "text": "Systolic Blood Pressure"
                    },
                    "valueQuantity": {
                        "code": "mmHg",
                        "system": http://unitsofmeasure.org,
                        "unit": "mmHg",
                        "value": 117.69213707496547
                    }
                }
            ],
            "context": {
                "reference": "Encounter/52430cb1-a0d3-4d1e-926c-c878c218502e"
            },
            "effectiveDateTime": "2018-05-06T04:07:24-04:00",
            "id": "186e8672-f9ac-4419-8c5d-1e824bf6e536",
            "issued": "2018-05-06T04:07:24.278-04:00",
            "meta": {
                "lastUpdated": "2019-04-09T08:36:08.363897+00:00",
                "versionId": "MTU1NDc5ODk2ODM2Mzg5NzAwMA"
            },
            "resourceType": "Observation",
            "status": "final",
            "subject": {
                "reference": "Patient/0000aa42-c235-4447-8389-8a2640f44466"
            }
        }

EDIT: ADDITIONAL INFORMATION It looks like these are probably commonly used concepts for blood pressure in OMOP

select 
    * 
from 
    concept 
where 1=1
    and (
        lower(concept_name) = 'systolic blood pressure' or
        lower(concept_name) = 'diastolic blood pressure')
    and domain_id = 'Measurement'
    and standard_concept = 'S';

enter image description here

And there are lots of other potential candidates (about 380 of them):

select 
    * 
from 
    concept 
where 1=1
    and lower(concept_name) like '%blood pressure%'
    and domain_id = 'Measurement'
    and standard_concept = 'S';

enter image description here

John
  • 3,458
  • 4
  • 33
  • 54
  • 1
    what does OMOP use for a blood pressure code then? – Grahame Grieve Feb 24 '22 at 02:47
  • Hi Grahame, I've added some additional information in the section marked "EDIT" in the original post. It looks like that have both LOINC codes and SNOMED codes that are used as "Standard" concepts for diastolic and systolic blood pressure with lots of other codes for other specific types of blood pressure measurements. – John Feb 24 '22 at 03:14
  • 1
    Looking at them, there's no apparent matching code in OMOP for 'systolic + diastolic blood pressure', which is what the LOINC code you asked for is. So either OMOP should have a code for the pair, or you ignore the pairing, and just import the components. – Grahame Grieve Feb 24 '22 at 05:50

1 Answers1

1

I would map it the same as if it was LOINC code 85354-9. However, you should file an issue with Synthea because using the code 55284-4 without also having a translation of 85354-9 is non-conformant. (All FHIR conformant systems conveying a combined 'blood pressure' Observation are required to adhere to this profile, which mandates the 85354-9 code.)

Lloyd McKenzie
  • 6,345
  • 1
  • 13
  • 10
  • I'm thinking that this code will appear "in the wild" (i.e. in real emr systems) so is a valid use case and therefore a valuable inclusion in the synthea data set? – John Feb 24 '22 at 03:00
  • 1
    Lloyd's issue isn't that 55284-4 is present, but that 85354-9 is not present – Grahame Grieve Feb 24 '22 at 05:51
  • It may indeed appear in the wild - but it'd be an example of a non-conformant instance if it did appear. If you're sending a blood pressure, you MUST send the 85354-9 code if you want to be compliant. If Synthea wants to have a flag that spits out bad data to see how systems handle it, that's not a bad idea - and this would be a good example. But it shouldn't be spitting it out in 'good ' data. – Lloyd McKenzie Feb 24 '22 at 06:20
  • So if a clinician enters an invalid code all of a sudden the FHIR server is non-compliant? Or is the software supposed to add a code that was not added by the clinician? – John Feb 24 '22 at 13:53
  • It'd be pretty weird for a clinician to be directly typing a LOINC code at all. Typical behavior is for clinician to select "Blood pressure" from a dropdown or a type-ahead look-up. The code is chosen in the background. But yes, if the clinician directly types a code for a blood pressure (or pulse-ox or height or weight or one of the other 10 vital signs that have mandatory profiles), then the software would be expected to include the mandatory LOINC code as a translation. – Lloyd McKenzie Feb 24 '22 at 17:36
  • Even if all of the coding is done by the EMR software, shouldn't we assume there will be cases where less than optimal codes are used by the EMR software? In these cases shouldn't the FHIR server faithfully pass through these codes? Why would it be non-conformant for a FHIR server to faithfully use the codes of the underlying EMR? – John Feb 24 '22 at 17:50
  • 1
    FHIR mandates that if you're sending weight, blood pressure, height, and about 7 other codes that you must use specific codes - just as we mandate that you must use specific codes for gender and various other elements. There's no issue with sending the less-optimal codes for Observation.code *too* (code.coding is 0..*), but if you want to be conformant - and interoperate with everyone else - then you MUST send the codes that HL7 mandates. Note that we've *only* done this for 10 vital signs because of the low effort to map and high value in doing so. – Lloyd McKenzie Feb 24 '22 at 21:05
  • At this point, we're not going to go back and patch SyntheticMass, which is a static STU3 server. I'm addressing this issue going forward with https://github.com/synthetichealth/synthea/pull/1066 – jay May 17 '22 at 20:13