Closed schoenenb closed 6 years ago
Die Patientengruppen Zugriff: *
steuern den Zugriff.
Beispiel:
http://optinomic.suedhang.ch/client.new/#/patients/group/27/edit
Ist aktuell wie folgt definiert:
LEFT JOIN stay ON(p.id = stay.patient)
LEFT JOIN (SELECT *, cast(value as json) AS json FROM annotations) AS ann ON ann.patient_id = p.id AND ann.module = 'com.optinomic.init.poly_stay'
WHERE
(ann.json#>>'{aktuell_letzter,bel_selector,org_current}' = 'QuEA')
OR (ann.json#>>'{aktuell_letzter,bel_selector,org_current}' = 'PTS')
AND (stay.stop is null OR stay.stop >= (now() - interval '15 day'))
AND stay.start <= now()
=> Diese Fallgruppen basieren auf Belegung von Polypoint (com.optinomic.init.poly_stay
) und sind somit durch den fehlenden ODBC betroffen!
Eine einfache Lösung wäre es m.E. diese Zugriff: *
Fallgruppen diesbezüglich zu entflechten.
Bsp.:
LEFT JOIN stay ON(p.id = stay.patient)
WHERE
(stay.stop is null OR stay.stop >= (now() - interval '15 day'))
AND stay.start <= now()
Dies führt jedoch dazu dass der Zugriff sehr erweitert wird - doch m.E. ist dies i.O.!
Die Erstellung von solchen Fallgruppen SQL kann in der SQL-Toolbox getestet/erarbeitet werden:
SELECT p.* FROM patient AS p
LEFT JOIN stay ON(p.id = stay.patient)
WHERE
(stay.stop is null OR stay.stop >= (now() - interval '15 day'))
AND stay.start <= now()
Du kannst gerne die Zugriff: *
Fallgruppen bearbeiten. Halte jedoch eine COPY des "aktuellen Stands" - allenfalls als "PASTE" hier. ODBC sollte hoffentlich bald kommen - Erne hat zugesichert. Maaaaan!
Vielen lieben Dank – habe die SQL-Box folgendermassen angepasst:
LEFT JOIN stay ON(p.id = stay.patient)
WHERE
(stay.stop is null OR stay.stop >= (now() - interval '15 day'))
AND stay.start <= now()
AND stay.class = 'S3'
bisheriger Code siehe https://github.com/Optinomic/apps/issues/182#issuecomment-396560813
Dies sollte für alle Zugriff: *
Patientengruppen vorgenommen werden - or?
Nur für QuEA & PTS, da habe ich die gleiche Abfrage reingespielt.
Für die TK habe ich's nun auch angepasst: alt:
LEFT JOIN stay ON(p.id = stay.patient)
LEFT JOIN (SELECT *, cast(value as json) AS json FROM annotations) AS ann ON ann.patient_id = p.id AND ann.module = 'com.optinomic.init.poly_stay'
WHERE
(ann.json#>>'{aktuell_letzter,bel_selector,bel_id}' = '4')
AND (stay.stop is null OR stay.stop >= (now() - interval '15 day'))
AND stay.start <= now()
neu:
LEFT JOIN stay ON(p.id = stay.patient)
WHERE
(stay.stop is null OR stay.stop >= (now() - interval '15 day'))
AND stay.start <= now()
AND stay.class = 'T3'
Wenn du schon so zackig am Antworten bist, hätte ich nochmals etwas: Im Confing-File ist doch festgehalten, wer worauf Zugriff hat?! Ich weiss grad nicht mehr, wo ich das einsehen könnte… Bisher hattest du’s mir immer als File geschickt.
Fall Sonja: Sie hat anscheinend keinen Zugriff auf einen Patienten, bei dem sie als Fallführende eingetragen ist. (http://optinomic.suedhang.ch/client.new/#/patient/474/stay/5633)
Weiter sollten die Fallverantwortlichen auf alle Patienten Ihres Teams zugreifen können. Ist das ohne die Polypoint-Schnittstelle überhaupt möglich?