1 Aufruf
Ich möchte eine Satistik erstellen für

1. HZV Patienten

2. kje4 ist nicht enthalten

3. Diagnose z.B. f90.0,f90.1 .... sind beim Patienten eingetragen.

Soweit bin ich schon gekommen.

Nun brauch ich aber alle Diagnose die Gesichert sind.

Wie kann ich das einstellen und wo?

Denn wenn ich es über die SV-Schein eingebe, habe ich keine möglichkeit Gesichter oder Ausschluß oder... einzutragen

und jeden Patienten anzuklicken ist etwas viel arbeit.
Gefragt von (1k Punkte) | 1 Aufruf
0 Punkte

1 Antwort

Dies ist bisher nicht möglich. Ab v1.72 (Quartalsupdate Q3-19) wird die Statistik SV-Schein (sowie KV-Schein und Privatrechnungen) entsprechend angepasst.

Falls sie es eher benötigen, können Sie sich slebst folgende Statistik anlegen:

 

 

        drop table if exists tempHZVScheinTable;
        create temporary table tempHZVScheinTable as
        select     A.ident as HZVScheinID,
                A.quartal,
                A.jahr,
                A.sortierdatum as erstellt_am,
                P.ident as PatientID,
                P.vorname,
                P.nachname,
                P.geburtsdatum,
                D.name as Vertrag,
                CASE WHEN (D.TYP = 1) THEN 'Hausarztvertrag'
                     WHEN (D.TYP = 2) THEN 'Facharztvertrag'
                     WHEN (D.TYP = 3) THEN 'KV-Vertrag'
                     WHEN (D.TYP = 4) THEN 'IV Hausarzt'
                     WHEN (D.TYP = 5) THEN 'IV Facharzt'
                     ELSE ''
                END as Vertragstyp,
                CASE WHEN G.ersatzverfahrenTyp > 0 THEN 'Ersatzverfahren' ELSE G.subentitytype END as kartentyp,
                G.versichertennummer,
                G.kassenname as kassenname_laut_karte,
                CASE WHEN (G.abrechnenderKostentraeger != '' and G.abrechnenderKostentraeger is not null) THEN G.abrechnenderKostentraeger
                     WHEN (G.kostentraeger != '' and G.kostentraeger is not null) THEN G.kostentraeger
                     ELSE G.IK
                END as IK_laut_karte,
                CASE WHEN (G.versichertenstatus4112 != '' and G.versichertenstatus4112 is not null) THEN G.versichertenstatus4112
                     ELSE G.versichertenArt
                END as versichertenstatus,
                G.statusergaenzungostwest as KVK_status_Ost_West,
                G.rechtskreis as egk_rechtskreis,
                G.besondere_personengruppe as eGK_besondere_personengruppe,
                G.versichertenstatus_rsa as egk_risikostrukturausgleich,
                G.dmp_kennzeichnung as egK_dmp_kennzeichnung,
                E.bezeichnung as abrechnende_kasse,
                A.ignoriertFuerAbrechnung as ignoriert_Fuer_Abrechnung,
                B.inVertretung,
                BA.kuerzel as Abrechnender_Arzt,
                B.betreuArztExternLANR,
                B.betreuarztExternBSNR,
                A.praeventiverBehandlungsfall
        from (    select *
                from HZVschein
                where
                <ZS:queryParameter1> QUARTAL2;für Quartal;quartal;jahr;and </ZS>
                <ZS:queryParameter2> DATE;-1;Anlagedatum ab;sortierdatum >=; and </ZS>
                <ZS:queryParameter3> DATE; 1;Anlagedatum bis;sortierdatum <; and </ZS>
                <ZS:queryParameter4> SELECTION;0;Abrechnungsstatus;bereits abgerechnet; abgerechnet = true and;noch nicht abgerechnet;abgerechnet=false and </ZS>
                <ZS> IDLIST;HZVScheinID; ident in (<List>) and </ZS>
                visible = true
            ) A
        left join    hzvdetails            B    on (A.hzvdetails_ident = B.ident and (B.statusFAVDirektaktivierung != 4 or B.statusFAVDirektaktivierung is null)) -- keine Pseudo-Teilnahmen für FAV-Teilnahmeerklärung via HZV
        left join    hzvvertrag            D    on (D.ident = B.hzvvertrag_ident)
        left join    hzvKostentraeger    E    on (B.hzvKostentraeger_ident = E.ident)
        left join    kartendaten            G    on (A.kartendaten_ident = G.ident)
        -- determine patient (cannot be done via kartendaten, since schein doest not need to have kartendaten)
        join patientendetailsrelationen_hzvscheine H on (A.ident = H.hzvscheine_ident)
        left join    patientendetails    I    on (I.patientendetailsrelationen_ident = H.patientendetailsrelationen_ident)
        left join    patient                P    on (P.patientendetails_ident = I.ident)
        left join    Nutzer                BA    on (B.betreuarzt_ident = BA.ident)
        <ZS> IDLIST;PATIENTID;where P.ident in (<List>) </ZS>;

        drop table if exists tempHZVLeistungenTable;
        create temporary table tempHZVLeistungenTable as
        select     ungrouped.HZVScheinID,
            string_agg(ungrouped.leistung,',') as Leistungen,
            string_agg(ungrouped.bezeichnung,',') as Leistungsbezeichnungen,
            string_agg(distinct (ungrouped.Betriebsstaette),',') as Betriebsstaetten

        from (
                select A.HZVscheinID, A.leistung, A.bezeichnung, A.betriebsstaette
                from (
                    select
                        max(A.HZVscheinID) as HZVscheinID,
                        max(H.code) as leistung,
                        max(J.bezeichnung) as bezeichnung,
                        max(BS.kuerzel) as betriebsstaette,
                        max(G.datum) as datum
                    from        tempHZVScheinTable        A
                    join        HZVSchein_hzvLeistungen    B    on (A.hzvscheinID = B.hzvschein_ident )
                    join        leistung                G    on (G.ident = B.hzvleistungen_ident and G.visible = true)
                    join        HZVkatalogeintrag        H    on (G.HZVkatalogeintrag_ident = H.ident)
                    left join    HZVkatalogeintrag_HZVKatalogEintragDetails I on (I.HZVkatalogeintrag_ident = H.ident )
                    join        HZVKatalogEintragDetails J    on (
                        J.ident = I.HZVKatalogEintragDetails_ident
                        and (J.gueltigVon is null or J.gueltigVon <= G.datum)
                        and (J.gueltigBis is null or J.gueltigBis >= G.datum)
                    )
                    left join Betriebsstaette            BS    on (G.betriebsstaette_ident = BS.ident)
                    group by G.ident -- Leistungen koennen mehrere Details haben (z.B. pro KV-Bereich). Wir wählen irgendeine Bezeichnung aus.
                ) A
                order by A.HZVscheinID , A.datum
            ) ungrouped
        group by ungrouped.HZVscheinID;

        drop table if exists tempHZVDiagnosenTable;
        create temporary table tempHZVDiagnosenTable as
        select     ungrouped.hzvscheinID,
                string_agg(ungrouped.diagnose,',') as Diagnosen,
                string_agg(ungrouped.bezeichnung,',') as Diagnosenbezeichnungen
        from (
            select
                A.HZVscheinID,
                concat(H.code::text, ' ', G.typ::text) as diagnose,
                H.bezeichnung as bezeichnung
            from    tempHZVScheinTable            A
            join    HZVschein_quartalsdiagnosen    F    on (A.HZVscheinID = F.HZVschein_ident)
            join    diagnose                    G    on (G.ident = F.quartalsdiagnosen_ident and G.visible = true)
            join    icdkatalogeintrag            H    on (G.icdkatalogeintrag_ident = H.ident)
            order by A.HZVscheinID, G.datum) ungrouped
        group by ungrouped.hzvscheinID;

        drop table if exists tempHZVOPSTable;
        create temporary table tempHZVOPSTable as
        select     ungrouped.hzvscheinID,
                string_agg(ungrouped.ops,', ') as ops
        from (
            select
                A.HZVscheinID,
                CASE WHEN (zaops.seitenlokalisation5041 is not null and zaops.seitenlokalisation5041 != '' ) THEN ARRAY_TO_STRING(ARRAY[K.opscode, zaops.seitenlokalisation5041], ' ')
                ELSE K.opscode
                END as ops
            from    tempHZVScheinTable            A
            join    HZVschein_hzvleistungen        J1        on (A.HZVscheinID = J1.HZVschein_ident)
            join    Leistung                    L        on (L.ident = J1.hzvleistungen_ident and L.visible = true)
            join    leistung_zusatzangabenOPS    J2        on (J2.leistung_ident = L.ident)
            join    ZusatzangabeOPS                zaops    on (zaops.ident = J2.zusatzangabenOPS_ident)
            join    OPSKatalogEintrag            K        on (K.ident = zaops.katalogeintrag_ident)
            order by A.HZVscheinID, L.datum) ungrouped
        group by ungrouped.hzvscheinID;

        select     A.*,
                B.Leistungen,
                B.Leistungsbezeichnungen,
                C.Diagnosen,
                C.Diagnosenbezeichnungen,
                D.ops,
                B.Betriebsstaetten
        from tempHZVScheinTable A
        left join    tempHZVLeistungenTable    B    on (B.HZVscheinID = A.HZVscheinID)
        left join    tempHZVDiagnosenTable    C    on (C.HZVscheinID = A.HZVscheinID)
        left join    tempHZVOPSTable            D    on (D.HZVscheinID = A.HZVscheinID)
        where
        <ZS:queryParameter6> STRING;Leistungsliste;B.leistungen; and </ZS>
        <ZS:queryParameter7> STRING;Diagnosenliste;C.diagnosen; and </ZS>
        <ZS:queryParameter9> STRING;Abrechnender Arzt;A.Abrechnender_Arzt; and </ZS>
        <ZS:queryParameter10> STRING;Betriebsstaetten;B.Betriebsstaetten; and </ZS>
        true
        <ZS:queryParameter8> Limit;J;10000</ZS> ;
Beantwortet von (29.2k Punkte)
0 Punkte
4,321 Beiträge
7,724 Antworten
9,674 Kommentare
1,851 Nutzer