Logic
If only the ingredient(s) present, construct a Medicinal Product, OR
If form is also present, construct a Medicinal Product Form, OR
If amount is also present construct a Clinical Drug
Construct one role group in the template per ingredient object.
Assertion: Cannot have an amount without form.
Assertion: Cannot have numerator value without denominator value, although this may be "per 1 tablet"
Ignore any non-active ingredients - not part of SNOMED Drug Model.
Issues
- Does not allow for amounts being based on the Basis of Substance Strength (BoSS). Might be better to leave this attribute out, to avoid errors in subsumption calculation.
- Will we have to create a map for the unit of presentation from the dose form?
- SNOMED CT is still using "concepts as numbers" which we'd have to map to.
ingredient.amount.numerator.unit is a string. We'll have to map to the SNOMED CT code from there, if "code" is not supplied. Check system = snomed if code is supplied.
Still waiting for finalization of "Ingredient Count" attribute.
- We'd want to normalize the amount using >1000 <1 rules eg 1500mg → 1.5g and 0.05 g → 50mg.
- No current SNOMED model for the "amount" which sits above the ingredient eg I want 5ml of 250mg/10ml We have no representation for the 5ml, only the concentration.
SNOMED CT Template for Drugs
763158003 |Medicinal product (product)| :
[[0..1]] 411116001 |Has manufactured dose form (attribute)| = [[(<736542009 | Pharmaceutical dose form (dose form)|) @form ]],
[[0..1]] 763032000 |Has unit of presentation (attribute)| = [[+(<732935002 | Unit of presentation (unit of presentation)|) @??? ]],
[[1..*]] {
[[1..1]] 762949000 |Has precise active ingredient (attribute)| = [[+(<261217004 |Substance (attribute)|) @ingredient.item ]],
[[0..1]] 7732943007 |Has basis of strength substance (attribute)| = [[+(<261217004 |Substance (attribute)|) @ingredient.item ]],
[[0..1]] 732944001 |Has presentation strength numerator value (attribute)| = [[+(<260299005|Number (qualifier value)|) @ingredient.amount.numerator.value ]],
[[0..1]] 732945000 |Has presentation strength numerator unit (attribute)| = [[+(<258666001|Unit (qualifier value)) @ingredient.amount.numerator.code ]],
[[0..1]] 732947008 |Has presentation strength denominator unit (attribute)| = [[+(<260299005|Number (qualifier value)|) @ingredient.amount.denominator.value ]],
[[0..1]] 732947008 |Has presentation strength denominator unit (attribute)| = [[+(<258666001|Unit (qualifier value)) @ingredient.amount.denominator.code ]]
}