MeridianMERIDIAN

Blood Type

identity.person.blood_type

ABO blood group system (A, B, AB, O) with optional Rh factor (±). Format: "A+", "B-", "AB", "O+", etc. The negative sign may be the ASCII hyphen or the minus sign (U+2212) that Rh nomenclature uses.

Worked samples

DuckDB 1.5.5 · finetype 0.6.64

ValueAs VARCHARblood_grouprh_factor
O+O+O+
A-A-A-
ABABAB
B+B+B+

Shape

Pattern
^(A|B|AB|O)[+\-−]?$
ValueLengthShape
O+2matches
A-2matches
AB2matches
B+2matches
O++3rejected: one character extra

Background

Origin

The ABO blood types were discovered by Karl Landsteiner in 1901.[1] Landsteiner received the Nobel Prize in Physiology or Medicine in 1930 for this discovery.[1] Landsteiner first classified human blood into three groups, namely group A, group B and group C.[1] The following year, his students Adriano Sturli and Alfred von Decastello discovered the fourth type.[1] In 1910, Ludwik Hirszfeld and Emil Freiherr von Dungern introduced the term 0 (null) for the group Landsteiner designated as C.[1] Hirszfeld and von Dungern also introduced the name AB for the type discovered by Sturli and von Decastello.[1]

Czech serologist Jan Janský independently introduced blood type classification in 1907, using the Roman numerals I, II, III and IV.[1] In Janský's scheme, I, II, III and IV correspond to modern O, A, B and AB.[1] American physician William L. Moss devised a slightly different classification using the same numerals, in which I, II, III and IV correspond to modern AB, A, B and O.[1] In 1927, as a member of a National Research Council committee concerned with blood grouping, Landsteiner suggested replacing both systems with the letters O, A, B and AB.[1] Some used the figure 0 for the German null and others the letter O for ohne, meaning without, and Landsteiner chose the letter.[1] By the early 1950s, the new system was universally followed.[1]

The term Rh was originally an abbreviation of Rhesus factor.[2] The Rh factor was discovered in 1939 by Karl Landsteiner and Alexander S. Wiener.[2] Rh(D) status is normally described with a positive (+) or negative (−) suffix after the ABO type.[2] The terms Rh factor, Rh positive and Rh negative refer to the Rh(D) antigen only.[2] The two most important blood group systems are ABO and Rh.[3] As of September 2026, 49 human blood group systems are recognised by the International Society of Blood Transfusion.[3]

Use

A value like A+ packs two separate results into one string, the ABO group and the RhD status, so split them into two fields before you count or compare anything. (Meridian's view) A value with no sign, such as AB, may simply mean the Rh status was never recorded, so keep it as unknown rather than reading it as positive or negative. (Meridian's view)

A Ukrainian marine uniform imprint shows the wearer's blood type as B (III) Rh+.[1] Expect variants like that one, with a Roman numeral beside the letter, an Rh prefix on the sign, or the sign spelt out as positive or negative, and map them to the short letter form before validating. (Meridian's view) Blood type is health information about a person, so handle the column under the same data-protection rules as the rest of a medical record. (Meridian's view)

Where you'll meet it

Malaysia's Ministry of Health publishes a dataset of daily blood donations by blood group, with a blood_type column.[4] That column holds one of the four major blood groups (A, B, AB, O) or all groups ('all').[4]

Sources

  1. [1]ABO blood group systemsecondary source
  2. [2]Rh blood group systemsecondary source
  3. [3]Blood typesecondary source
  4. [4]Daily Blood Donations by Blood Group | KKMNOWdataset

Detection notes

v1 migration: Was person.blood_type. Transform uppercases. Decompose extracts blood group (A, B, AB, O) and Rh factor (+, -, or null); the minus sign U+2212 is normalised to the ASCII hyphen.

Use it

CLI · DuckDB
$ finetype infer -i "O+" --mode column
→ identity.person.blood_type

SELECT ft_infer('O+');
-- → 'identity.person.blood_type'
Cast expression
UPPER(CAST({col} AS VARCHAR))

Schema

https://meridian.online/schemas/identity.person.blood_type · Frictionless type string

finetype taxonomy identity.person.blood_type -o json-schema

Type Registry