XooCode(){

MedicalTest

MedicalTest is a direct MedicalEntity subtype for clinical tests. It is the parent of BloodTest, ImagingTest, PathologyTest, and MedicalTestPanel; use the most specific subtype where it applies.

It has 5 direct properties:

  • normalRange (Text): the reference range for a typical patient.
  • signDetected (MedicalSign): a sign the test detects.
  • usedToDiagnose (MedicalCondition): the condition the test diagnoses or rules out.
  • affectedBy (Drug): drugs known to affect the test result.
  • usesDevice (MedicalDevice): the device the test runs on.

Full example of schema.org/MedicalTest json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/MedicalTest
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": ["MedicalTest", "BloodTest"],
  "name": "Hemoglobin A1c (HbA1c)",
  "alternateName": "Glycated haemoglobin",
  "description": "Measures the percentage of haemoglobin in the blood that is glycated, reflecting average blood glucose over the previous 8-12 weeks. Primary monitoring test for diabetes mellitus.",
  "normalRange": "4.0%-5.6% (non-diabetic); 5.7%-6.4% (prediabetes); >=6.5% (diabetes)",
  "usedToDiagnose": [
    { "@type": "MedicalCondition", "name": "Type 2 diabetes mellitus" },
    { "@type": "MedicalCondition", "name": "Prediabetes" }
  ],
  "signDetected": { "@type": "MedicalSign", "name": "Hyperglycaemia" },
  "affectedBy": [
    { "@type": "Drug", "name": "Erythropoietin (falsely lowers A1c)" },
    { "@type": "Drug", "name": "Iron supplements (variable effect)" }
  ],
  "code": [
    { "@type": "MedicalCode", "codeValue": "4548-4", "codingSystem": "LOINC" },
    { "@type": "MedicalCode", "codeValue": "83036", "codingSystem": "CPT" }
  ],
  "relevantSpecialty": ["https://schema.org/Endocrine", "https://schema.org/PrimaryCare", "https://schema.org/LaboratoryScience"]
}
</script>

Where MedicalTest lives

It appears as the value of availableTest on DiagnosticLab and on Hospital via availableService. It also lives standalone on patient-education pages explaining what a particular test measures.

Always pair MedicalTest with one or more MedicalCode entries (LOINC for lab tests, CPT for procedure billing). Multi-coded tests collapse cleanly into healthcare knowledge graphs.

Minimal valid version

The smallest markup that still produces a valid MedicalTest entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/MedicalTest (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "MedicalTest",
  "name": "Hemoglobin A1c",
  "normalRange": "4.0%-5.6%",
  "usedToDiagnose": { "@type": "MedicalCondition", "name": "Type 2 diabetes mellitus" }
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

  • No dedicated rich result (used by patient-information graphs and AI healthcare assistants)
    Google docs

Common MedicalTest mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    MedicalTest where BloodTest / ImagingTest fits

    Wrong
    Bare MedicalTest on an HbA1c or chest X-ray
    Right
    Dual-type to the most specific subtype: ["MedicalTest", "BloodTest"]

    Subtype signalling lets healthcare consumers route tests to the right discipline (haematology lab vs radiology suite).

  2. 02

    normalRange omitted on quantitative tests

    Wrong
    Quantitative test with no reference range
    Right
    Always populate normalRange in the format clinical readers expect

    The reference range is what makes a number actionable; without it, the test result is uninterpretable.

  3. 03

    Missing LOINC code

    Wrong
    Lab test with no LOINC code
    Right
    Pair every lab test with at least its LOINC code (and ideally CPT for billing)

    LOINC is the universal lab-test identifier; FHIR / EHR consumers cannot reconcile tests across labs without it.

About the example data

HbA1c (haemoglobin A1c) as offered by Lackawanna Diagnostic Services and used in Dunmore Family Clinic's diabetes-management workflow.

Comments

Loading comments...

Leave a comment