Wenn die Teilnahmeprüfung ein mal im Quartal erfolgreich abgeschlossen wurde ( das bedeutet, dass vom HÄVG eine Antwort "ja", "nein" oder "unbekannt" kam) wird diese Information in tomedo gespeichert und an manchen Stellen benutzt statt wieder eine online-Anfrage zu senden. Man kann diese Information nutzen, um die SV-Scheine auszufiltern.
Z.B. man kann die SV-Schein Statistik (Statistiken/Selektivverträge der HÄVG/SV-Schein) wie folgt erweitern (als Admin in Statistik-Verwaltung eine Kopie anlegen und bearbeiten):
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,
CAST(P.geburtsdatum as date) as geburtsdatum,
D.name as Vertrag,
D.ident as VertragID,
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,
....................
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;
drop table if exists tempHZVCachedTeilnahmeTable;
create temporary table tempHZVCachedTeilnahmeTable as
select ungrouped.HZVscheinID as HZVscheinID,
coalesce((array_agg(ungrouped.status))[1], 0) as StatusTeilnahme
from (
select A.HZVscheinID as HZVscheinID, ct.status
FROM tempHZVScheinTable A
LEFT JOIN Patient P ON A.PatientID = P.ident
LEFT JOIN Patientendetails_hzvcachedteilnahmen PDCT ON P.patientendetails_ident = PDCT.patientendetails_ident
LEFT JOIN hzvcachedteilnahmeinfo CT ON PDCT.hzvcachedteilnahmen_ident = CT.ident
WHERE CT.jahr = A.jahr AND CT.quartal = A.quartal AND CT.hzvvertrag_ident = A.VertragID
order by A.HZVscheinID) ungrouped
group by ungrouped.HZVscheinID;
select A.*,
B.Leistungen,
B.Leistungsbezeichnungen,
C.Diagnosen,
C.Diagnosenbezeichnungen,
D.ops,
B.Betriebsstaetten,
(CASE
WHEN (F.StatusTeilnahme = 1) THEN 'aktive Teilnahme'
WHEN (F.StatusTeilnahme = 2) THEN 'keine Teilnahme'
ELSE 'Unbekannt'
END) as CachedStatusTeilnahme
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)
left join tempHZVCachedTeilnahmeTable F on (F.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> ;