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> ;