Synthetic clinical notes with answer keys
Every file in a CohortLoom dataset comes with its own answer key, and every synthetic patient comes with a master key. You always know what the right answer is, and exactly where it sits in the text.
One note and its answer key
Here is a made-up outpatient progress note for an established patient with type 2 diabetes, stage 3b chronic kidney disease and hypertension, and a simplified version of its key. The highlighted text is the evidence each label points to; the offsets are character positions in the note, computed from the text when this page is built. Select a key entry to jump to its evidence. Watch this note being written.
*** SYNTHETIC RECORD: NOT A REAL PERSON ***
OUTPATIENT PROGRESS NOTE
Clinic: Family Medicine (synthetic clinic)
Patient: SYNTHETIC, Walter MRN: SYN-PT-0417
DOB: 04/18/1958 (67 y) Sex: M
Date of service: 03/12/2026
Encounter: SYN-PT-0417-E03 (visit 3 of 5)
Author: SYN-Clinician 12, MD (family medicine)
CHIEF COMPLAINT
3-month follow-up: diabetes, kidney function, BP.
HPI
67 y/o M with T2DM (dx 2014), CKD stage 3b and HTN,
seen for scheduled follow-up. Home fasting glucose
mostly 150s-170s, a few readings near 190 after late
dinners. No hypoglycemia. Uses a pill organizer; admits
missing the evening metformin about twice a week.
Home BP log averages 138/82 over the last 2 weeks.
Nocturia x1-2/night, unchanged. Walking 20 min 3x/week.
Stopped regular soda in January. No NSAID use since
counseled at last visit. Dilated eye exam 10/2025:
no retinopathy per patient report.
ROS
Constitutional: no fever, weight stable.
Eyes: no change in vision.
CV: no chest pain or palpitations; mild ankle
swelling at end of day.
Resp: no shortness of breath.
GU: nocturia as above; no dysuria or hematuria.
Neuro: no numbness or tingling in the feet.
Endo: mild increase in thirst.
All other systems reviewed and negative.
CURRENT MEDICATIONS
1. metformin 500 mg PO BID
2. empagliflozin 10 mg PO daily
3. lisinopril 40 mg PO daily
4. amlodipine 5 mg PO daily
5. atorvastatin 40 mg PO nightly
Allergies: NKDA
EXAM
BP 142/86 (repeat 138/84), HR 76, RR 14, T 98.1 F,
SpO2 97% RA, Wt 98.4 kg, BMI 31.2
Gen: well-appearing, NAD.
CV: RRR, no murmur.
Lungs: clear bilaterally.
Ext: trace bilateral pedal edema; DP pulses 2+.
Feet: monofilament intact bilaterally; no ulcers,
no calluses.
LABS (fasting) 09/04/25 12/03/25 03/05/26
Hemoglobin A1c, % 7.4 7.8 8.1
Creatinine, mg/dL 1.71 1.79 1.86
eGFR, mL/min/1.73m2 43 41 39
UACR, mg/g 182 226 264
Potassium, mmol/L 4.6 4.7 4.8
LDL-C, mg/dL 88 -- 79
(eGFR by CKD-EPI 2021.)
ASSESSMENT AND PLAN
67 y/o M with T2DM, CKD 3b with moderately increased
albuminuria, and HTN. A1c has risen across 3 visits,
eGFR is slowly declining with rising UACR, and BP is
above goal.
1. Type 2 diabetes mellitus with diabetic chronic
kidney disease (E11.22) and hyperglycemia (E11.65)
- A1c 8.1% (03/05/26), up from 7.4% (09/04/25).
Individualized goal <7.5%.
- Metformin: keep 500 mg BID (max 1,000 mg/day at
this eGFR). Stop if eGFR falls below 30.
- Continue empagliflozin 10 mg daily (glycemic and
kidney benefit).
- Start semaglutide 0.25 mg subcut weekly x 4 weeks,
then 0.5 mg weekly. Reviewed GI side effects and
hydration; hold and call if vomiting. Pen teaching
by RN today.
- Long-term use of oral hypoglycemic drugs (Z79.84).
- Foot exam normal today. Eye exam up to date.
2. Chronic kidney disease, stage 3b (N18.32)
- eGFR 39, down from 43; UACR 264 mg/g and rising.
K 4.8.
- Continue lisinopril at max dose and empagliflozin.
- Discussed finerenone for persistent albuminuria;
revisit next visit once K is rechecked on the new
regimen.
- Avoid NSAIDs. Renally dose any new medicines.
- Refer to nephrology if eGFR <30 or UACR keeps
rising.
3. Hypertensive chronic kidney disease (I12.9)
- Above goal of <130/80 in clinic and at home.
- Increase amlodipine to 10 mg PO daily.
- Low-sodium diet reviewed. Keep home BP log.
4. Hyperlipidemia, unspecified (E78.5)
- LDL 79 on atorvastatin 40 mg. Continue.
Follow-up: return in 3 months; A1c, BMP, UACR and
lipid panel 1 week before. RN phone check in 2 weeks
on semaglutide tolerance and home BP.
Visit level: established patient, moderate medical
decision making (chronic illnesses with progression;
prescription drug management).
Electronically signed: SYN-Clinician 12, MD
03/12/2026 16:42
*** SYNTHETIC RECORD: NOT A REAL PERSON ***
Each entry links to its evidence; [start, end) are character offsets into the note.
- time point Visit 3 of 5, 2026-03-12 [198, 225)
- medication metformin 500 mg oral twice daily (active) [1259, 1282)
- medication empagliflozin 10 mg oral daily (active) [1286, 1314)
- medication lisinopril 40 mg oral daily (active) [1318, 1343)
- medication amlodipine 5 mg oral daily (active, dose increased this visit) [1347, 1371)
- medication atorvastatin 40 mg oral nightly (active) [1375, 1404)
- lab Hemoglobin A1c 8.1 % on 2026-03-05 (trend 7.4 → 7.8 → 8.1) [1792, 1795)
- lab Creatinine 1.86 mg/dL on 2026-03-05 (trend 1.71 → 1.79 → 1.86) [1840, 1844)
- lab eGFR (CKD-EPI 2021) 39 mL/min/1.73m2 on 2026-03-05 (trend 43 → 41 → 39) [1889, 1891)
- lab Urine albumin-to-creatinine ratio 264 mg/g on 2026-03-05 (trend 182 → 226 → 264) [1936, 1939)
- diagnosis E11.22 Type 2 diabetes mellitus with diabetic chronic kidney disease [2255, 2328)
- diagnosis E11.65 Type 2 diabetes mellitus with hyperglycemia [2333, 2355)
- diagnosis Z79.84 Long term (current) use of oral hypoglycemic drugs [2803, 2852)
- medication semaglutide 0.25 mg subcutaneous weekly (new this visit) [2619, 2658)
- diagnosis N18.32 Chronic kidney disease, stage 3b [2908, 2949)
- diagnosis I12.9 Hypertensive chronic kidney disease with stage 1 through stage 4 chronic kidney disease, or unspecified chronic kidney disease [3314, 3357)
- medication amlodipine 10 mg oral daily (dose change this visit) [3413, 3450)
- diagnosis E78.5 Hyperlipidemia, unspecified [3505, 3540)
- visit level Visit level: established patient, moderate complexity [3742, 3795)
The same key as JSON
{
"document_id": "SYN-PT-0417/doc-03",
"patient_id": "SYN-PT-0417",
"document_type": "outpatient progress note",
"persona": "family medicine physician, problem-oriented note",
"labels": [
{
"type": "time_point",
"date": "2026-03-12",
"encounter": 3,
"of": 5,
"evidence": {
"text": "Date of service: 03/12/2026",
"start": 198,
"end": 225
}
},
{
"type": "medication",
"name": "metformin",
"dose": "500 mg",
"route": "oral",
"frequency": "twice daily",
"status": "active",
"evidence": {
"text": "metformin 500 mg PO BID",
"start": 1259,
"end": 1282
}
},
{
"type": "medication",
"name": "empagliflozin",
"dose": "10 mg",
"route": "oral",
"frequency": "daily",
"status": "active",
"evidence": {
"text": "empagliflozin 10 mg PO daily",
"start": 1286,
"end": 1314
}
},
{
"type": "medication",
"name": "lisinopril",
"dose": "40 mg",
"route": "oral",
"frequency": "daily",
"status": "active",
"evidence": {
"text": "lisinopril 40 mg PO daily",
"start": 1318,
"end": 1343
}
},
{
"type": "medication",
"name": "amlodipine",
"dose": "5 mg",
"route": "oral",
"frequency": "daily",
"status": "active, dose increased this visit",
"evidence": {
"text": "amlodipine 5 mg PO daily",
"start": 1347,
"end": 1371
}
},
{
"type": "medication",
"name": "atorvastatin",
"dose": "40 mg",
"route": "oral",
"frequency": "nightly",
"status": "active",
"evidence": {
"text": "atorvastatin 40 mg PO nightly",
"start": 1375,
"end": 1404
}
},
{
"type": "lab",
"name": "Hemoglobin A1c",
"value": 8.1,
"unit": "%",
"date": "2026-03-05",
"trend": [
{
"date": "2025-09-04",
"value": 7.4
},
{
"date": "2025-12-03",
"value": 7.8
},
{
"date": "2026-03-05",
"value": 8.1
}
],
"evidence": {
"text": "8.1",
"start": 1792,
"end": 1795
}
},
{
"type": "lab",
"name": "Creatinine",
"value": 1.86,
"unit": "mg/dL",
"date": "2026-03-05",
"trend": [
{
"date": "2025-09-04",
"value": 1.71
},
{
"date": "2025-12-03",
"value": 1.79
},
{
"date": "2026-03-05",
"value": 1.86
}
],
"evidence": {
"text": "1.86",
"start": 1840,
"end": 1844
}
},
{
"type": "lab",
"name": "eGFR (CKD-EPI 2021)",
"value": 39,
"unit": "mL/min/1.73m2",
"date": "2026-03-05",
"trend": [
{
"date": "2025-09-04",
"value": 43
},
{
"date": "2025-12-03",
"value": 41
},
{
"date": "2026-03-05",
"value": 39
}
],
"evidence": {
"text": "39",
"start": 1889,
"end": 1891
}
},
{
"type": "lab",
"name": "Urine albumin-to-creatinine ratio",
"value": 264,
"unit": "mg/g",
"date": "2026-03-05",
"trend": [
{
"date": "2025-09-04",
"value": 182
},
{
"date": "2025-12-03",
"value": 226
},
{
"date": "2026-03-05",
"value": 264
}
],
"evidence": {
"text": "264",
"start": 1936,
"end": 1939
}
},
{
"type": "diagnosis",
"code_system": "ICD-10-CM",
"code": "E11.22",
"display": "Type 2 diabetes mellitus with diabetic chronic kidney disease",
"evidence": {
"text": "Type 2 diabetes mellitus with diabetic chronic\n kidney disease (E11.22)",
"start": 2255,
"end": 2328
}
},
{
"type": "diagnosis",
"code_system": "ICD-10-CM",
"code": "E11.65",
"display": "Type 2 diabetes mellitus with hyperglycemia",
"evidence": {
"text": "hyperglycemia (E11.65)",
"start": 2333,
"end": 2355
}
},
{
"type": "diagnosis",
"code_system": "ICD-10-CM",
"code": "Z79.84",
"display": "Long term (current) use of oral hypoglycemic drugs",
"evidence": {
"text": "Long-term use of oral hypoglycemic drugs (Z79.84)",
"start": 2803,
"end": 2852
}
},
{
"type": "medication",
"name": "semaglutide",
"dose": "0.25 mg",
"route": "subcutaneous",
"frequency": "weekly",
"status": "new this visit",
"evidence": {
"text": "Start semaglutide 0.25 mg subcut weekly",
"start": 2619,
"end": 2658
}
},
{
"type": "diagnosis",
"code_system": "ICD-10-CM",
"code": "N18.32",
"display": "Chronic kidney disease, stage 3b",
"evidence": {
"text": "Chronic kidney disease, stage 3b (N18.32)",
"start": 2908,
"end": 2949
}
},
{
"type": "diagnosis",
"code_system": "ICD-10-CM",
"code": "I12.9",
"display": "Hypertensive chronic kidney disease with stage 1 through stage 4 chronic kidney disease, or unspecified chronic kidney disease",
"evidence": {
"text": "Hypertensive chronic kidney disease (I12.9)",
"start": 3314,
"end": 3357
}
},
{
"type": "medication",
"name": "amlodipine",
"dose": "10 mg",
"route": "oral",
"frequency": "daily",
"status": "dose change this visit",
"evidence": {
"text": "Increase amlodipine to 10 mg PO daily",
"start": 3413,
"end": 3450
}
},
{
"type": "diagnosis",
"code_system": "ICD-10-CM",
"code": "E78.5",
"display": "Hyperlipidemia, unspecified",
"evidence": {
"text": "Hyperlipidemia, unspecified (E78.5)",
"start": 3505,
"end": 3540
}
},
{
"type": "visit_level",
"value": "established patient, moderate complexity",
"evidence": {
"text": "established patient, moderate medical\ndecision making",
"start": 3742,
"end": 3795
}
}
],
"master_key_link": "SYN-PT-0417/master.json#encounter-3"
}Illustrative only: a made-up patient, marked SYNTHETIC, and a simplified key. Diagnosis codes are ICD-10-CM; the visit level is stated in words. The full schema has more fields; it comes with the sample.
What a per-file answer key holds
Labels
Diagnoses, labs, medications, vitals and other facts the document contains, typed and normalised.
Codes
ICD-10-CM codes for diagnoses, so coding tools can be scored directly.
Evidence spans
The exact text supporting each label, with start and end character offsets.
Context
The patient, the visit, the author style and the document type, so you can slice results.
The master key: one per patient
A patient's history spans several visits and several documents. The master key ties them together: for each visit, what was true in the chart at that moment, and which documents were written from it. That lets you test things a single note can't show, such as whether a model tracks a rising A1c across visits or picks up a diagnosis that was first recorded two visits earlier.
Checked before packaging
Before a file goes into a dataset, it is checked against both keys:
- every labelled fact is present, and every offset points at the text it claims to;
- the document mentions nothing that isn't in the patient's chart at that visit;
- a separate reviewer re-extracts the labels independently, and the two must agree;
- a scan finds no text that looks like a real-world identifier.
A file that fails is revised. If it still fails, it is left out of the dataset rather than shipped with a wrong key.