NHSCTブラウザー 、どこからでもアクセスできるとは限らないため、93880001には3人の親がいます:
- 肺の悪性腫瘍(障害)
- 胸腔内臓器の原発性悪性新生物(障害)
- 気道の原発性悪性新生物(障害)
と31人の子供:
- 肺実質のがん(障害)
- 肺の類上皮血管内皮腫(障害)
- 非ホジキンリンパ腫(障害)
- 非小細胞肺がん(障害)
- など...
階層の上位レベルと下位レベルを見つける方法は、relationship_f.sourceid
を使用することです。 およびrelationship_f.destinationid
。ただし、生のテーブルはユーザーフレンドリーではないため、いくつかのビューを作成することをお勧めします。 これ
GitHubリポジトリ。
まず、コンセプトIDと優先名を使用してビューを作成します。
create view conceptpreferredname as
SELECT distinct c.id conceptId, d.term preferredName, d.id descriptionId
FROM postgres.snomedct.concept_f c
inner JOIN postgres.snomedct.description_f d
ON c.id = d.conceptId
AND d.active = '1'
AND d.typeId = '900000000000013009'
inner JOIN postgres.snomedct.langrefset_f l
ON d.id = l.referencedComponentId
AND l.active = '1'
AND l.refSetId = '900000000000508004' -- GB English
AND l.acceptabilityId = '900000000000548007';
次に、関係のビューを作成します。
CREATE VIEW relationshipwithnames AS
SELECT id, effectiveTime, active,
moduleId, cpn1.preferredName moduleIdName,
sourceId, cpn2.preferredName sourceIdName,
destinationId, cpn3.preferredName destinationIdName,
relationshipGroup,
typeId, cpn4.preferredName typeIdName,
characteristicTypeId, cpn5.preferredName characteristicTypeIdName,
modifierId, cpn6.preferredName modifierIdName
from postgres.snomedct.relationship_f relationship,
conceptpreferredname cpn1,
conceptpreferredname cpn2,
conceptpreferredname cpn3,
conceptpreferredname cpn4,
conceptpreferredname cpn5,
conceptpreferredname cpn6
WHERE moduleId = cpn1.conceptId
AND sourceId = cpn2.conceptId
AND destinationId = cpn3.conceptId
AND typeId = cpn4.conceptId
AND characteristicTypeId = cpn5.conceptId
AND modifierId = cpn6.conceptId;
したがって、3つの親概念の名前とIDを出力するクエリは次のようになります。
select *
from relationshipwithnames r
where r.sourceId = '93880001'
and r.active = '1'
and r.typeIdName = 'Is a';
これは実際には3つの追加の概念を返すことに注意してください。これは、オンラインSNOMEDブラウザーが廃止されたと見なします。理由はわかりません。
子の概念の名前とIDを出力するには、destinationId
を置き換えます。 sourceId
を使用 :
select *
from relationshipwithnames r
where r.destinationId = '93880001'
and r.active = '1'
and r.typeIdName = 'Is a';
これは実際には16の追加の概念を返すことに注意してください。これは、オンラインSNOMEDブラウザーが廃止されたと見なします。繰り返しますが、これらの16個だけを結果から除外する信頼できる方法を見つけることができません。
ここから、祖父母と孫を取得するためのクエリは簡単です。