MedicalSignOrSymptom
MedicalSignOrSymptom is a MedicalCondition subtype for clinical findings: signs (objective, observed by a clinician) and symptoms (subjective, reported by the patient). It adds 1 direct property:
possibleTreatment(Drug, DrugClass, LifestyleModification, or MedicalTherapy): treatments commonly applied for the sign or symptom.
Because it inherits from MedicalCondition, it also carries the full condition vocabulary: cause, differentialDiagnosis, typicalTest, signOrSymptom, riskFactor, and the diagnostic / prognostic properties.
Full example of schema.org/MedicalSignOrSymptom json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "MedicalSignOrSymptom",
"name": "Polyuria",
"alternateName": "Excessive urination",
"description": "Production of abnormally large volumes of dilute urine (typically more than 3 litres per day in adults). Common early symptom of poorly controlled diabetes mellitus and a range of renal and endocrine disorders.",
"cause": [
{ "@type": "MedicalCause", "name": "Hyperglycaemia (osmotic diuresis)" },
{ "@type": "MedicalCause", "name": "Diabetes insipidus" },
{ "@type": "MedicalCause", "name": "Excessive fluid intake" }
],
"typicalTest": [
{ "@type": "MedicalTest", "name": "Hemoglobin A1c", "@id": "https://dunmoreregional.example/tests/hba1c" },
{ "@type": "MedicalTest", "name": "Fasting plasma glucose" },
{ "@type": "MedicalTest", "name": "Urine specific gravity" }
],
"possibleTreatment": [
{ "@type": "MedicalTherapy", "name": "Treat underlying cause (glycaemic control, fluid restriction, hormone replacement)" },
{ "@type": "LifestyleModification", "name": "Time fluid intake away from bedtime" }
],
"code": [
{ "@type": "MedicalCode", "codeValue": "R35.8", "codingSystem": "ICD-10" },
{ "@type": "MedicalCode", "codeValue": "162247003", "codingSystem": "SNOMED CT" }
],
"relevantSpecialty": ["https://schema.org/Endocrine", "https://schema.org/PrimaryCare"]
}
</script>Sign vs symptom
Schema.org has a sibling type, MedicalSign, specifically for objective findings; you can use either MedicalSignOrSymptom (the parent) or MedicalSign (more specific) when the finding is objective. For patient-reported symptoms, MedicalSignOrSymptom is the canonical choice.
Where it fits
Patient-education pages (symptom checkers, condition explainers) get the highest value from MedicalSignOrSymptom markup. AI healthcare assistants reading symptom-search content collapse signs and symptoms onto their parent conditions and diagnostic tests through the typed graph.
Minimal valid version
The smallest markup that still produces a valid MedicalSignOrSymptom 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.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "MedicalSignOrSymptom",
"name": "Polyuria",
"description": "Production of abnormally large volumes of dilute urine.",
"typicalTest": { "@type": "MedicalTest", "name": "Hemoglobin A1c" }
}
</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.
- Google docsNo dedicated rich result (used by symptom-search and AI healthcare assistants)
Common MedicalSignOrSymptom 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.
- 01
Symptom modelled as a MedicalCondition
WrongMedicalCondition on a symptom like 'fatigue' or 'headache'RightMedicalSignOrSymptom for findings; MedicalCondition for the underlying diseaseSymptom-vs-condition is a meaningful clinical distinction. Symptom-search consumers expect MedicalSignOrSymptom and surface the condition through the symptom's typicalTest / cause graph.
- 02
Missing typicalTest and cause
WrongBare MedicalSignOrSymptom with name and description onlyRightAlways populate typicalTest and cause to make the symptom navigableThe graph value comes from the links: a symptom's tests and causes let consumers traverse from a search query into the diagnostic workup.
- 03
possibleTreatment as free text
Wrong"possibleTreatment": "Treat underlying cause"RightTyped MedicalTherapy / Drug / LifestyleModification objects with nameStrings short-circuit the typed treatment vocabulary; drug and therapy graphs cannot match them.
Schema properties in this example
About the example data
Polyuria (excessive urination) as a symptom of new-onset Type 2 diabetes, used on Dunmore Family Clinic's diabetes patient-education pages.
Comments
Loading comments...