Dödsorsak >

Verifiera fullständig DODSORSAK

null
null

Antal poster i DODSORSAK: 209441

Verifiering

Detta villkor är uppfyllt... ...om denna SQL... ...returnerar Kommentar
Om antalet individer inte är 0
select sign(count(*)) from DODSORSAK
1
Om antalet individer utan identitet är 0
select count(distinct ddbid) from DODSORSAK where ddbid = 0
0
Om antalet individer som har icd10h=R99% inte är 0
select sign(count(distinct ddbid)) from DODSORSAK where icd10h like 'R99%'
1
Om antalet individer som har icd10h=R99.099 är 0
select count(distinct ddbid) from DODSORSAK where icd10h = 'R99.099'
0
Om antalet individer som har en post i DODSORSAK men saknas i SV.DB är 0
with temp as (
    select distinct DDBID
    from DODSORSAK
        except
    select distinct DDBID
    from sv.db d
    join sv.individ i on i.postnr=d.postnr
    join sv.notering n on n.postnr=d.postnr
    join REG.kbsid ks on n.kbsidid=ks.kbsidid
    join REG.kbkalla kk on ks.kbkallaid=kk.kbkallaid
    join REG.kyrkbok ky on kk.kyrkbokid=ky.kyrkbokid
    join REG.projektfas pf on ky.projektid=pf.projektid
    where i.individtyp=0 and pf.fas>=7 and n.overblivenind=0
)
select count(distinct ddbid) from temp 
0
Om ICD10h_description och ICD10_desc_en i DODSORSAK överensstämmer med Kodtabellens
with temp as (
select distinct ddbid,ICD10H, ICD10HBESKRIVNING
from DODSORSAK
where ICD10h is not NULL
except
select distinct d.ddbid,d.ICD10H, coalesce(k2.description,k3.icd10desc_en) as ICD10HBESKRIVNING
from DODSORSAK d
join kod.kodicd10h k1 on k1.icd10h=d.icd10h
left join kod.kodicd10hdescriptions k2 on k2.icd10h=k1.icd10h
left join kod.kodicd10 k3 on k3.icd10=k1.icd10
)
select count(*) from temp
0
Test av regel 1. Individer som saknar DODORSTXT i DB ska inte finnas i DODSORSAK
with AllaDBnoteringarForLankadeForsamlingarSorteradPaLangdOchPostnr as (
select distinct a.ddbid, coalesce(b.dodorstxt,'') as dodorstxt, length(trim(coalesce(b.dodorstxt,'')),CODEUNITS16) as lgd,
dense_rank()over(partition by ddbid order by length(trim(coalesce(b.dodorstxt,'')),CODEUNITS16) desc,b.postnr asc) as nr
from SV.individ a
join SV.db b on a.postnr=b.postnr
join SV.notering c on a.postnr=c.postnr and c.overblivenind=0
join REG.kbsid ks on c.kbsidid=ks.kbsidid
join REG.kbkalla kk on ks.kbkallaid=kk.kbkallaid
join REG.kyrkbok ky on kk.kyrkbokid=ky.kyrkbokid
join REG.projektfas pf on ky.projektid=pf.projektid
where a.individtyp=0 and pf.fas>=7
)
,PrioriteradeDBnoteringar as (
select ddbid from AllaDBnoteringarForLankadeForsamlingarSorteradPaLangdOchPostnr where nr=1 and lgd=0
)
select count(distinct DDBID) from PrioriteradeDBnoteringar where ddbid in (select x.ddbid from DODSORSAK x)
                
0
Test av regel 2. Individer med enbart överblivna noteringar ska inte finnas i DODSORSAK
with temp as (
    select distinct DDBID
    from DODSORSAK
        intersect
    select distinct DDBID
    from sv.db d
    join sv.individ i on i.postnr=d.postnr
    join sv.notering n on n.postnr=d.postnr
    join REG.kbsid ks on n.kbsidid=ks.kbsidid
    join REG.kbkalla kk on ks.kbkallaid=kk.kbkallaid
    join REG.kyrkbok ky on kk.kyrkbokid=ky.kyrkbokid
    join REG.projektfas pf on ky.projektid=pf.projektid
    where i.individtyp=0 and pf.fas>=7 and n.overblivenind=1
        except
    select distinct DDBID
    from sv.db d
    join sv.individ i on i.postnr=d.postnr
    join sv.notering n on n.postnr=d.postnr
    join REG.kbsid ks on n.kbsidid=ks.kbsidid
    join REG.kbkalla kk on ks.kbkallaid=kk.kbkallaid
    join REG.kyrkbok ky on kk.kyrkbokid=ky.kyrkbokid
    join REG.projektfas pf on ky.projektid=pf.projektid
    where i.individtyp=0 and pf.fas>=7 and n.overblivenind=0
)
select count(distinct ddbid) from temp
                
0
Test av regel 3. Överensstämmer valet av DODORSTXT och DODORSSTANDARD med prioriteringsreglerna, 1. Välj den längsta, 2. Välj den med lägst postnr, Inkludera endast individer med flera DB-noteringar, testfall: DDBID 10659185 och 18224361.
with temp as (
select distinct a.ddbid, coalesce(b.dodorstxt,'') as dodorstxt, a.postnr, length(trim(coalesce(b.dodorstxt,'')),CODEUNITS16) as lgd,
dense_rank()over(partition by ddbid order by length(trim(coalesce(b.dodorstxt,'')),CODEUNITS16) desc,b.postnr asc) as nr,
trim(case when length(d2.qualifier,CODEUNITS16)>0 then d2.dodorsstd||' ('||d2.qualifier||')' else d2.dodorsstd end) as dodorsstandard,d3.icd10h
from SV.individ a
join SV.db b on a.postnr=b.postnr
join SV.notering c on a.postnr=c.postnr and c.overblivenind=0
join REG.kbsid ks on c.kbsidid=ks.kbsidid
join REG.kbkalla kk on ks.kbkallaid=kk.kbkallaid
join REG.kyrkbok ky on kk.kyrkbokid=ky.kyrkbokid
join REG.projektfas pf on ky.projektid=pf.projektid
join CEDAR.dodorsupp d1 on b.dodorstxt=d1.dodorstxt
join REG.dodors d2 on d1.dodors=d2.dodors
join REG.dodorsstd d3 on d2.dodorsstd=d3.dodorsstd and d2.qualifier=d3.qualifier
where a.individtyp=0 and pf.fas>=7
)
,temp2 as (
select ddbid,dodorsstandard,icd10h from temp where ddbid in (10659185,18224361) and nr=1
except
select ddbid,dodorsstandard,icd10h from DODSORSAK where ddbid in (10659185,18224361)
)
select count(*) from temp2
                
0
Test av regel 7. Om det saknas icd10hdescription så väljs den moderna texten från ICD10 på engelska.
with temp as (
    SELECT a.icd10, b.icd10h, c.description as ICD10HDESCRIPTION_orig
    , a.icd10maincat, a.icd10se, a.icd10desc_en
    FROM "KOD"."KODICD10" a
    left join kod.kodicd10h b on b.icd10=a.icd10
    left join kod.KODICD10HDESCRIPTIONS c on c.icd10h=b.icd10h
)
,ICD10HDESCRIPTIONExtendedWithModernICD10 as (
    select icd10, icd10h, ICD10HDESCRIPTION_orig,
    case when ICD10HDESCRIPTION_orig is not null then ICD10HDESCRIPTION_orig
         when ICD10HDESCRIPTION_orig is null then ICD10DESC_EN
         else 'SAKNAS'
    end as ICD10HDESCRIPTION_NEW,
    icd10maincat, icd10se, icd10desc_en
    from temp
)
,ValideringRegel7 as (
    select a.icd10, a.icd10h,a.ICD10HDESCRIPTION_orig, a.ICD10HDESCRIPTION_NEW, b.ICD10hbeskrivning
    from ICD10HDESCRIPTIONExtendedWithModernICD10 a
    join DODSORSAK b on b.ICD10h=a.ICD10H
    where ICD10HDESCRIPTION_ORIG is null and ICD10HDESCRIPTION_NEW!=ICD10HBESKRIVNING
)
select count(*)
from ValideringRegel7
0
Test av regel 9. Om en ICD10H kod uppkommer högst en gång för varje individ.
select count(*) from (select ddbid,icd10h,count(*) from sv.dodsorsak group by ddbid,icd10h having count(*)>1)
0