*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)
*
*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
*
*Aktivierungscodes per Hand verschickt:
*20181474
*20181578
*20181567
*20181538
*20181577
*20181579
*20181584
*20181582
*20181585
*20181586
*20181517
*20181554
*20181442
*20181583 SPK
*20181589
*20181550
*20181590
*20181576
*20181569
*20181588
*20181594
*20181581
*20181593
*20181598
*20181596
*20181595
*20181591
*20181597
*20181600
*20181513
*20181566
*20181601
*20181604
*20181605
*20181607
*20181608
*20181606
*20181599
*20181609
*
*
*20181135, 20181188, 20181189 auf 20181189 buchen
*2 Zahlungen bisher zugewiesen, 20181189 fehlt noch
*20181194, 20181196 auf 20181196 buchen
*20181244, 20181245 auf 20181245 buchen (?)
*20181308, 20181309 auf 20181309 buchen
*20181358, 20181360 auf 20181360 buchen
*20181482, 20181499 auf 20181499 buchen
*20181526, 20181528 auf 20181528 buchen
*20181544, 20181546 auf 20181546 buchen
*
*
*Liste mit Domains ins Handbuch aufnehmen
*Bennennung der Dateien unter dem Punkt "Hilfedateien" verbessern
*
*Offen,"dringlich" (Besprechung mit DKTIG 1.10.2018)
*- umgangssprachliche Beschreibungen exportieren (Liste xyz?)
*- Benutzer + Handbuch-Änderung
*- Aktueller Stand an Bearbeitung -> Wieviele KH sind fertig, in Bearbeitung und haben evtl. noch gar nicht angefangen (Erwartungswert)
*Die DKTIG wird dann evtl. über die LKGen ein Schreiben bzgl. der "nahenden" Abgabe schicken, DAS SCHADET NICHT!!
*Ab 15.10. wöchentlich, nächste Statistik zum 12.11.

*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,
*20181578,
*20181567,
*20181538,
*20181577,
*20181579,
*20181584,
*20181582,
*20181585,
*20181586,
*20181517,
*20181554,
*20181442,
*20181583,
*20181589,
*20181550,
*20181590,
*20181576,
*20181569,
*20181588,
*20181594,
*20181581,
*20181593,
*20181598,
*20181596,
*20181595,
*20181591,
*20181597,
*20181600,
*20181513,
*20181566,
*20181601,
*20181604,
*20181605,
*20181607,
*20181608,
*20181606,
*20181599,
*20181609
*}'::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 >= 1538352000000
* 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
*
*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.
*
*
*Frau Aßböck mbr@klinik-st-georg.de Aktivierungsmail wird wegen Spamrverdacht nicht versendet Mail 10:43 Uhr 03.09.18
*Frau Bowert barbara.bowert@lvr.de Aktivierungsmail wird wegen Spamrverdacht nicht versendet Mail 24.08.18 08:48
*
*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 ...
*
*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
*Kann man das mal prüfen? Ob da Probleme in der Datenbank "lauern"?
*260910238/00 B-1 Orthopädie >500 Zeichen
*-> User anschreiben sobald Bearbeitung beginnt
*
*Positiv-Liste 2017
*https://www.g-ba.de/downloads/39-261-3372/2018-06-21_Qb-R_Veroeffentlichung-Positivliste-2017_inkl-Anlage_BAnz.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;


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;

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"?
*
*Positiv-Liste 2017
*https://www.g-ba.de/downloads/39-261-3372/2018-06-21_Qb-R_Veroeffentlichung-Positivliste-2017_inkl-Anlage_BAnz.pdf

*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="&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&#0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041"
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
)














































































































































































































































































oder hlt cachen ... Wird um die oberen Baum-Ebenen noch erweitert. Es ist möglich Codes anzugeben und zu speichern die
es garnicht gibt, zB E-86 statt E86 (BUG!!)
Top 4: Tooltip fehlt bei A11/B11
Top 5: Formular unload beim Wechsel der Kategorie halte ich für unintuitiv; Spezielle Daten nicht aus XML übernehmen -> definitiv nicht mehr umsetzbar für dieses Jahr -> OK

*
Änderungen QB 17

Die Zeichenanzahl der Elemente <Titel>, <Vorname> und <Nachname> wurde auf 150 alphanumerische Zeichen beschränkt.
Das Element <Funktion_Arbeitsschwerpunkt> erhält die Beschränkung von 500 alphanumerischen Zeichen.
Das Element Vorwahl erhält – äquivalent zu Telefonnummer – die Beschränkung auf die numerischen Zeichen 0-9.
-> Hier muss der Validator in den Formularen ggf. angepasst werden

Leerzeichen in Textfeldern
Ausprägung von „ja“, „nein“ und „teilweise“ bzw. „trifft nicht zu“ Um Verwechslungen zu vermeiden, werden die Ausprägungen „ja“, „nein“, „teilweise“ und „trifft nicht zu“ nicht mehr numerisch repräsentiert (0 = „ja“, 1 = „nein“, etc.),
* sondern der Wert wird als String für das Element geschrieben: • „ja“ • „nein“ • „teilweise“ • „trifft_nicht_zu“ • „keine_Angabe_notwendig“ (nur XML)
Umsortierung XMlExport :
Krankenhaus (A-1), Krankenhausträger (A-2), Krankenhaus Art (A-3), Psychiatrisches Krankenhaus (A-4), Medizinisch-pflegerische Leistungsangebote (A-5), Nicht-medizinische Leistungsangebote (A-6), [..], Anzahl Betten (A-9), Fallzahlen (A-10) (nur XML)
Personen-Kontaktdaten Begrenzungen
Krankenhaus Kontaktdaten (nur XML?) Nur XML ...
Umbennenung:
* A-12.3.2.1 Hygienestandard ZVK (nur XML)
*A-12.3.2.2 Antibiotikaprophylaxe Antibiotikatherapie (nur XML)
*A-12.3.2.3 Umgang mit Wunden (nur XML)
A-12.3.2.4 Händedesinfektion Auswahl Allgemein und Intensiv -> Formular angepasst -> XML/PDF ausstehend -> XML Import angepasst
Ja / Nein Auswahl A-12.4
*Strukturiertes Beschwerdemanagement (nur XML)
*Schriftliches Konzept (nur XML)
*Umgang mit mündlichen Beschwerden (nur XML)
*Umgang mit schriftlichen Beschwerden (nur XML)
*Zeitziele für Rückmeldung (nur XML)
*Anonyme Eingabemöglichkeiten (nur XML)
*Patientenbefragungen (nur XML)
*Einweiserbefragungen (nur XML)
B-[X].2 Zielvereinbarungen Umbennungen (nur XML)
B-[X].6 Hauptdiagnosen nach ICD (nur XML)
C-1.1 Dokumentationsraten Umbenennung (nur XML)
C-1.2 Ergebnis Umbennung <Ergebnis> <Bundesdurchschnitt> (nur XML)
C-6 Neue Elemente <Angabe_Erfuellung_Personalvorgaben> <Mitteilung_Nichterfuellung_pflegerische_Versorgung_erfolgt> -> Formular angepasst -> XML/PDF ausstehend
A-12.3.2.4 Händedesinfektion Ist eine Intensivstation vorhanden? In die Validierung einpflegen -> validator.csv Funktioniert nun? Sieht so aus




Auswahllisten

*
A-6 Leistungsangebot URL, keine Hilfe bei Fehleingabe
Hilfe Verlinkung Beispiel A-11 verlinkt noch auf alten Pfad
Bearbeitung beenden und Formular freigeben Button optisch besser unterscheiden
Tests Rules:
Validierung keine Quellfab
Validierung keine Rule


Gesamt-Asciidoc [HTML]:
Teil C - Qualitätssicherung
C-2 Externe Qualitätssicherung nach Landesrecht gemäß § 112 SGB V
trifft nicht zu / entfällt === C-3 Qualitätssicherung bei Teilnahme an Disease-Management-Programmen (DMP) nach § 137f SGB V === C-4 Teilnahme an sonstigen Verfahren der externen vergleichenden Qualitätssicherung
C-3 und C-4 haben keine Daten, ist triff nicht zu / entfällt ausgewählt werden die Formulare nicht gerendert
Das ist doppelt falsch, dort muss stehen keine Angabe,die Struktur muss immer gleich sein. Und im HTML steht/stand dort eben ===, dasist ja auf jeden Fall falsch
Also bitte dort "trifft nicht zu / entfällt" ergänzen oder leer lassen ABER auf jeden Fall als Formular/ins Inhaltsverzeichnis aufnehmen

Top Prioritäten:
• Prüfen auf Anpassungsbedarf bzgl. der DSGVO -> Impressum angepasst, Formular für Datenauskunft erstellt
• Plausibilitätsprüfung der Daten aus dem Vorjahr -> Allg. bzgl. der hinterlegten Validatoren + Personalcheck (?)
• Verbesserung Fehlerausgabe, insbesondere bei Vorprüfungs-Tool: §21-Import Also im Javascript schon! Was genau ist denn verbessert worden? Entspricht das den Fehlern/Rückmeldungen aus dem letzten Jahr oder sind noch Dinge offen???
-> Ein Import der Daten aus 2016 war ohne Probleme möglich, was natürlich NICHT SEIN SOLLTE Natürlich soll das so sein, es wird alles importiert was 2016/2017 ist, die 2016er dann natürlich als Überlieger. Was nicht mehr importiert weden darf, sind Fälle aus 2015 -> NEIN, wenn keine Fälle aus 2017 vorhanden sind, sollte der Import nicht durchgeführt werden. Dann sind es nämlich falsche Daten Bitte testen!
• Form: Serverseitige Validierungsanzeige verbessern, nach Änderung ausblenden -> Falls die Serverseitige validierung fehlschlug, kann man jetzt per Buttondruck erneut validieren.
• BUG A-12: Teilnahmefragen mit "Nein" beantwortet, aber Schlüssel angegeben, z.B. IF oder EF
• BUG A-12 bei einigen Schlüsseln werden die Pflichtfelder nicht markiert, z.B. IF Für IF/EF angepasst, andere Fälle konkret benennen
• Kasten Anzahl der Fachabteilungen anpassen, evtl. auf Aktivierungsseite verschieben, siehe H01 unten
• Integration Bezahlmodul [Maaß]
• Anleitung [Dietrich]
• Info Slideshow [Dellwing]
• Kopieren-Funktion: 1:1 beibehalten oder Änderung? gibt es einen Grund die Funktion zu ändern? Archiv?
• Integration Plausibilitätsprüfung -> wird per REST erfolgen, Aufruf des Service ergibt json-Antwort, diese sollte dem Benutzer aufbereitet präsentiert werden
* Service URL zum Test: https://plausi-test.g-ba-qualitaetsberichte.de/api/sqb/plausibilitycheck/upload
*-> http://git.netfutura.de/?p=netfutura/sqb-api-wrapper.git enthält einen PHP Wrapper zum einfachen Testen
*-> Implementiert
• Import Personalzahlen in A-11, B-11, dazu ist auch ein Export notwendig (als CSV?), um es dem Benutzer einfacher zu machen,
die Datei zu editieren und wieder hochzuladen, Format ist dann schon in der Datei festgelegt
-> Implementiert
• §21-Import-Regeln [Code-Muster -> Fachabteilung], getrennt von §21-Import zu verwalten/aufzurufen, auf eigenem Menüpunkt
• Button, um Formular direkt freizugeben, ohne Umweg über Freigabe-Maske, optimal wäre es in einem Schritt freigeben zu können ...
• C-1 wieder ausblenden oder Dummy hinterlegen
• Besseres Styling für mibew
• Kontrollbericht und PDF-Ausgabe anpassen !! [Muss man bei der Planung gleich berücksichtigen], Verbesserung Customizing, siehe http://www.qualitaetsberichte.net/?Category=products&Topic=Layout-Konzept
• Siehe auch Referenzdatenbank der (PDF-)Qualitätsberichte: https://g-ba-qualitaetsberichte.de/api/records/6ed2f956-bec7-4a77-bbdc-efc924e3f6be/pdf, es sollte unser Bericht auf jeden Fall nicht "schlechter " sein als der von der GFL generierte [https://www.g-ba-qualitaetsberichte.de/#/] - Besser wirkt natürlich: https://res.empira.de/global/qbx/downloads/Musterklinik-01.pdf

Warnung: /pages/export/plausibility.xhtml @40,155 actionListener="#{plausibility.run()}": java.nio.file.FileSystemException: \tmp\88cc5535-4395-49b7-8d03-63d3a81b50d1.zip: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.
javax.el.ELException: /pages/export/plausibility.xhtml @40,155 actionListener="#{plausibility.run()}": java.nio.file.FileSystemException: \tmp\88cc5535-4395-49b7-8d03-63d3a81b50d1.zip: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.

• Rework B-8, erste Ideen ??? Also keine Idee? DataTables, wie bei Rules? Es sind schon DataTables? Aber ohne API-Nutzung, oder? Nein, DataTables kann man garnicht ohne API nachträglich verändern. Siehe "enhanceServiceTable()" und addServicetableRow(). -> Rework eingebaut
• B6/7/9 trifft nicht zu Verhalten verbessern, es sollte einfach überall einheitlich sein -> Es ist (jetzt?) überall einheitlich, es funktioniert nur manchmal in B6/B7/B9 nicht korrekt Funktioniert jetzt
Vorbereitungen Arbeitssystem ca. 01.04 -> Soll dann ein Rücksetzen/Archivierung der Daten in der Live-Version erfolgen? Ja, und eine Archivierung der dann "alten" Daten
- XML Import aus G-BA-Datei 2016 analog zu EasyQB-Rettungssystem Aktuell keine Fehlermeldung bei nicht vorhandener Datei. Bzw. Schwerwiegend: PWC6117: File "null" not found
- Import §21 Was heisst hier durchgestrichen? Import_21.groovy müsste dafür angepasst sein, Javaskript zum Check der .CSV-Dateien muss angepasst sein Durchgestrichen heißt: Die Grundsätzliche Funktionalität steht seit 4fd4e5f608fb9c82869b6a844a161a481ef3f8a3 zur Verfügung, was heisst? Für ein aktualisiertes Arbeitssystem braucht man eine funktionierende Variante genau, also bitte die vorliegende Variante mit Daten testen -> Echtdaten kommen diese oder nächste Woche
- Import/Anpassung Schlüssellisten [stehen lt. G-BA Seite {leider} erst in Q2 zur Verfügung, genauso wie Änderungsdokument ...] -> Q2 hat schon begonnen, jetzt aber los, lieber G-BA
- Mindestens Leerung §21 Daten, B5, 6,7,9 A10, Komplett zurücksetzen und auf Datenübernahme verweisen? Definitiv besser falls wir für das System bereits den Plausibilitätstest für fehlerhafte Daten aus dem Vorjahr integriert haben
-> Alles kann aus FormularJson und Formular gelöscht werden bzw. diese Tabellen in ArchivedFormularJson und ArchivedFormular umbenannt werden
- Bezahlsystem zurücksetzen (paid, paid_stamp,paid_code, code_send, paid_location/departments, isdktig, disclaimer ? ) -> Kein Disclaimer notwendig zum akt. Zeitpunkt
- Assistant Step zurücksetzen
- Gesamtbericht entfernen/bereinigen
- Willkommenstext
- Mailing
- Hinterlegen Q-Berichte 2016 als XML im passenden /opt-Ordner
- Browserversionen anpassen, ggf. Sicherheitslücken ergänzen [oder wir lassen das jetzt weg, wird es überhaupt gelesen?] Zumindest die Ampel wurde beachtet. Aktuelle Liste wird aber erst kurz vor Liveschaltung gemacht
- Gibt es aktuell noch weitere Exporte (PDF, RTF, C1, XML) ? Ja
- Schnittstelle Asciidoc/Customizing für Benutzer erweitern
- Den Text Captcha benötigt:Bitte setzten Sie den Haken bei 'Ich bin kein Roboter'. nur 1x anzeigen -> Nicht machbar solange sich mehrere p:message auf der Seite befinden, dann bitte nur 1x p:message auf die Seite.
- Browser-Erkennung aktualisieren?
System:
Betriebsystem: Windows 10 64-bit
Browser: Chrome 65.0.3325.162
Meldung:
Sie nutzen einen Browser der über 6 Monate alt ist, wir empfehlen Ihnen dringend, die aktuellste Version von Chrome zu nutzen. Ist bereits aktualisiert. Fehler im Parsing, sollte gefixxt sein. Hat nun wieder funktioniert
- Alte Anwendung (komplett!) inkl. Daten archivieren?

B6/B7/B9
*Abweichendes Verhalten von trifft nicht zu
*-> Wird nicht direkt beim anklicken gespeichert

DOCX Templates
7z x -y %~1.docx word\document.xml
sed "s/<w:tblStyle w:val=\"TableNormal\"/<w:tblStyle w:val=\"BlueTableStyle\"/g" word\document.xml > word\document2.xml
copy word\document2.xml word\document.xml /y
7z u -y %~1.docx word\document.xml

Import der hbci4Java lib : Lib/hbci4Java/hbci4j-core-3.0.13-SNAPSHOT.jar

SQL ::

Organizations leeren:
update organization
set paid = false,
disclaimer = false,
paid_locations = null,
paid_departments = null,
paid_code = null,
rechnung_nummer = null,
imported_departments = null,
paid_stamp = null,
code_send = null,
isdktig = false,
terms_accepted = null;

update hospital set assistant_last_step = 0;

CREATE MATERIALIZED VIEW public.current_icd_ops AS
SELECT listentry.identifier,
listentry.description
FROM listentry
WHERE listentry.type = ANY (ARRAY[248, 249])
WITH DATA;

alter table organization rename paid_stamp to order_stamp;
alter table rbacuser alter column rbacpassword TYPE varchar(60);
alter table rbacuser add column show_slideshow boolean default true;

CREATE TABLE public.hospital_rules
(
hospitalid bigint NOT NULL,
jsondata text NOT NULL,
CONSTRAINT hr_p_h PRIMARY KEY (hospitalid)
);

alter table organization add column invoice_total numeric(16,6);
alter table organization add column left_to_pay numeric(16,6);
alter table organization add column activated boolean default false;

CREATE TABLE transfer
(
id serial primary key,
valuta bigint,
customerref character varying,
value numeric(14,6),
usage character varying,
isbooked boolean DEFAULT false,
autobooked boolean DEFAULT false,
checksum character(32),
comment character varying,
bdate bigint,
executionstamp bigint
);

CREATE TABLE public.transfer_organization
(
id serial primary key,
transferid bigint,
organizationid bigint,
value numeric(14,6),
CONSTRAINT transfer_organization_organizationid_fkey FOREIGN KEY (organizationid)
REFERENCES public.organization (organizationid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT transfer_organization_transferid_fkey FOREIGN KEY (transferid)
REFERENCES public.transfer (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
);
CREATE TABLE public.dashboard_errors
(
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)




































































































































































































































































































































































































































































































































































































































































































































































































oder hlt cachen ... Wird um die oberen Baum-Ebenen noch erweitert. Es ist möglich Codes anzugeben und zu speichern die
es garnicht gibt, zB E-86 statt E86 (BUG!!)
Top 4: Tooltip fehlt bei A11/B11
Top 5: Formular unload beim Wechsel der Kategorie halte ich für unintuitiv; Spezielle Daten nicht aus XML übernehmen -> definitiv nicht mehr umsetzbar für dieses Jahr -> OK

*
Änderungen QB 17

Die Zeichenanzahl der Elemente <Titel>, <Vorname> und <Nachname> wurde auf 150 alphanumerische Zeichen beschränkt.
Das Element <Funktion_Arbeitsschwerpunkt> erhält die Beschränkung von 500 alphanumerischen Zeichen.
Das Element Vorwahl erhält – äquivalent zu Telefonnummer – die Beschränkung auf die numerischen Zeichen 0-9.
-> Hier muss der Validator in den Formularen ggf. angepasst werden

Leerzeichen in Textfeldern
Ausprägung von „ja“, „nein“ und „teilweise“ bzw. „trifft nicht zu“ Um Verwechslungen zu vermeiden, werden die Ausprägungen „ja“, „nein“, „teilweise“ und „trifft nicht zu“ nicht mehr numerisch repräsentiert (0 = „ja“, 1 = „nein“, etc.),
* sondern der Wert wird als String für das Element geschrieben: • „ja“ • „nein“ • „teilweise“ • „trifft_nicht_zu“ • „keine_Angabe_notwendig“ (nur XML)
Umsortierung XMlExport :
Krankenhaus (A-1), Krankenhausträger (A-2), Krankenhaus Art (A-3), Psychiatrisches Krankenhaus (A-4), Medizinisch-pflegerische Leistungsangebote (A-5), Nicht-medizinische Leistungsangebote (A-6), [..], Anzahl Betten (A-9), Fallzahlen (A-10) (nur XML)
Personen-Kontaktdaten Begrenzungen
Krankenhaus Kontaktdaten (nur XML?) Nur XML ...
Umbennenung:
* A-12.3.2.1 Hygienestandard ZVK (nur XML)
*A-12.3.2.2 Antibiotikaprophylaxe Antibiotikatherapie (nur XML)
*A-12.3.2.3 Umgang mit Wunden (nur XML)
A-12.3.2.4 Händedesinfektion Auswahl Allgemein und Intensiv -> Formular angepasst -> XML/PDF ausstehend -> XML Import angepasst
Ja / Nein Auswahl A-12.4
*Strukturiertes Beschwerdemanagement (nur XML)
*Schriftliches Konzept (nur XML)
*Umgang mit mündlichen Beschwerden (nur XML)
*Umgang mit schriftlichen Beschwerden (nur XML)
*Zeitziele für Rückmeldung (nur XML)
*Anonyme Eingabemöglichkeiten (nur XML)
*Patientenbefragungen (nur XML)
*Einweiserbefragungen (nur XML)
B-[X].2 Zielvereinbarungen Umbennungen (nur XML)
B-[X].6 Hauptdiagnosen nach ICD (nur XML)
C-1.1 Dokumentationsraten Umbenennung (nur XML)
C-1.2 Ergebnis Umbennung <Ergebnis> <Bundesdurchschnitt> (nur XML)
C-6 Neue Elemente <Angabe_Erfuellung_Personalvorgaben> <Mitteilung_Nichterfuellung_pflegerische_Versorgung_erfolgt> -> Formular angepasst -> XML/PDF ausstehend
A-12.3.2.4 Händedesinfektion Ist eine Intensivstation vorhanden? In die Validierung einpflegen -> validator.csv Funktioniert nun? Sieht so aus




Auswahllisten

*
A-6 Leistungsangebot URL, keine Hilfe bei Fehleingabe
Hilfe Verlinkung Beispiel A-11 verlinkt noch auf alten Pfad
Bearbeitung beenden und Formular freigeben Button optisch besser unterscheiden
Tests Rules:
Validierung keine Quellfab
Validierung keine Rule


Gesamt-Asciidoc [HTML]:
Teil C - Qualitätssicherung
C-2 Externe Qualitätssicherung nach Landesrecht gemäß § 112 SGB V
trifft nicht zu / entfällt === C-3 Qualitätssicherung bei Teilnahme an Disease-Management-Programmen (DMP) nach § 137f SGB V === C-4 Teilnahme an sonstigen Verfahren der externen vergleichenden Qualitätssicherung
C-3 und C-4 haben keine Daten, ist triff nicht zu / entfällt ausgewählt werden die Formulare nicht gerendert
Das ist doppelt falsch, dort muss stehen keine Angabe,die Struktur muss immer gleich sein. Und im HTML steht/stand dort eben ===, dasist ja auf jeden Fall falsch
Also bitte dort "trifft nicht zu / entfällt" ergänzen oder leer lassen ABER auf jeden Fall als Formular/ins Inhaltsverzeichnis aufnehmen

Top Prioritäten:
• Prüfen auf Anpassungsbedarf bzgl. der DSGVO -> Impressum angepasst, Formular für Datenauskunft erstellt
• Plausibilitätsprüfung der Daten aus dem Vorjahr -> Allg. bzgl. der hinterlegten Validatoren + Personalcheck (?)
• Verbesserung Fehlerausgabe, insbesondere bei Vorprüfungs-Tool: §21-Import Also im Javascript schon! Was genau ist denn verbessert worden? Entspricht das den Fehlern/Rückmeldungen aus dem letzten Jahr oder sind noch Dinge offen???
-> Ein Import der Daten aus 2016 war ohne Probleme möglich, was natürlich NICHT SEIN SOLLTE Natürlich soll das so sein, es wird alles importiert was 2016/2017 ist, die 2016er dann natürlich als Überlieger. Was nicht mehr importiert weden darf, sind Fälle aus 2015 -> NEIN, wenn keine Fälle aus 2017 vorhanden sind, sollte der Import nicht durchgeführt werden. Dann sind es nämlich falsche Daten Bitte testen!
• Form: Serverseitige Validierungsanzeige verbessern, nach Änderung ausblenden -> Falls die Serverseitige validierung fehlschlug, kann man jetzt per Buttondruck erneut validieren.
• BUG A-12: Teilnahmefragen mit "Nein" beantwortet, aber Schlüssel angegeben, z.B. IF oder EF
• BUG A-12 bei einigen Schlüsseln werden die Pflichtfelder nicht markiert, z.B. IF Für IF/EF angepasst, andere Fälle konkret benennen
• Kasten Anzahl der Fachabteilungen anpassen, evtl. auf Aktivierungsseite verschieben, siehe H01 unten
• Integration Bezahlmodul [Maaß]
• Anleitung [Dietrich]
• Info Slideshow [Dellwing]
• Kopieren-Funktion: 1:1 beibehalten oder Änderung? gibt es einen Grund die Funktion zu ändern? Archiv?
• Integration Plausibilitätsprüfung -> wird per REST erfolgen, Aufruf des Service ergibt json-Antwort, diese sollte dem Benutzer aufbereitet präsentiert werden
* Service URL zum Test: https://plausi-test.g-ba-qualitaetsberichte.de/api/sqb/plausibilitycheck/upload
*-> http://git.netfutura.de/?p=netfutura/sqb-api-wrapper.git enthält einen PHP Wrapper zum einfachen Testen
*-> Implementiert
• Import Personalzahlen in A-11, B-11, dazu ist auch ein Export notwendig (als CSV?), um es dem Benutzer einfacher zu machen,
die Datei zu editieren und wieder hochzuladen, Format ist dann schon in der Datei festgelegt
-> Implementiert
• §21-Import-Regeln [Code-Muster -> Fachabteilung], getrennt von §21-Import zu verwalten/aufzurufen, auf eigenem Menüpunkt
• Button, um Formular direkt freizugeben, ohne Umweg über Freigabe-Maske, optimal wäre es in einem Schritt freigeben zu können ...
• C-1 wieder ausblenden oder Dummy hinterlegen
• Besseres Styling für mibew
• Kontrollbericht und PDF-Ausgabe anpassen !! [Muss man bei der Planung gleich berücksichtigen], Verbesserung Customizing, siehe http://www.qualitaetsberichte.net/?Category=products&Topic=Layout-Konzept
• Siehe auch Referenzdatenbank der (PDF-)Qualitätsberichte: https://g-ba-qualitaetsberichte.de/api/records/6ed2f956-bec7-4a77-bbdc-efc924e3f6be/pdf, es sollte unser Bericht auf jeden Fall nicht "schlechter " sein als der von der GFL generierte [https://www.g-ba-qualitaetsberichte.de/#/] - Besser wirkt natürlich: https://res.empira.de/global/qbx/downloads/Musterklinik-01.pdf

Warnung: /pages/export/plausibility.xhtml @40,155 actionListener="#{plausibility.run()}": java.nio.file.FileSystemException: \tmp\88cc5535-4395-49b7-8d03-63d3a81b50d1.zip: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.
javax.el.ELException: /pages/export/plausibility.xhtml @40,155 actionListener="#{plausibility.run()}": java.nio.file.FileSystemException: \tmp\88cc5535-4395-49b7-8d03-63d3a81b50d1.zip: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.

• Rework B-8, erste Ideen ??? Also keine Idee? DataTables, wie bei Rules? Es sind schon DataTables? Aber ohne API-Nutzung, oder? Nein, DataTables kann man garnicht ohne API nachträglich verändern. Siehe "enhanceServiceTable()" und addServicetableRow(). -> Rework eingebaut
• B6/7/9 trifft nicht zu Verhalten verbessern, es sollte einfach überall einheitlich sein -> Es ist (jetzt?) überall einheitlich, es funktioniert nur manchmal in B6/B7/B9 nicht korrekt Funktioniert jetzt
Vorbereitungen Arbeitssystem ca. 01.04 -> Soll dann ein Rücksetzen/Archivierung der Daten in der Live-Version erfolgen? Ja, und eine Archivierung der dann "alten" Daten
- XML Import aus G-BA-Datei 2016 analog zu EasyQB-Rettungssystem Aktuell keine Fehlermeldung bei nicht vorhandener Datei. Bzw. Schwerwiegend: PWC6117: File "null" not found
- Import §21 Was heisst hier durchgestrichen? Import_21.groovy müsste dafür angepasst sein, Javaskript zum Check der .CSV-Dateien muss angepasst sein Durchgestrichen heißt: Die Grundsätzliche Funktionalität steht seit 4fd4e5f608fb9c82869b6a844a161a481ef3f8a3 zur Verfügung, was heisst? Für ein aktualisiertes Arbeitssystem braucht man eine funktionierende Variante genau, also bitte die vorliegende Variante mit Daten testen -> Echtdaten kommen diese oder nächste Woche
- Import/Anpassung Schlüssellisten [stehen lt. G-BA Seite {leider} erst in Q2 zur Verfügung, genauso wie Änderungsdokument ...] -> Q2 hat schon begonnen, jetzt aber los, lieber G-BA
- Mindestens Leerung §21 Daten, B5, 6,7,9 A10, Komplett zurücksetzen und auf Datenübernahme verweisen? Definitiv besser falls wir für das System bereits den Plausibilitätstest für fehlerhafte Daten aus dem Vorjahr integriert haben
-> Alles kann aus FormularJson und Formular gelöscht werden bzw. diese Tabellen in ArchivedFormularJson und ArchivedFormular umbenannt werden
- Bezahlsystem zurücksetzen (paid, paid_stamp,paid_code, code_send, paid_location/departments, isdktig, disclaimer ? ) -> Kein Disclaimer notwendig zum akt. Zeitpunkt
- Assistant Step zurücksetzen
- Gesamtbericht entfernen/bereinigen
- Willkommenstext
- Mailing
- Hinterlegen Q-Berichte 2016 als XML im passenden /opt-Ordner
- Browserversionen anpassen, ggf. Sicherheitslücken ergänzen [oder wir lassen das jetzt weg, wird es überhaupt gelesen?] Zumindest die Ampel wurde beachtet. Aktuelle Liste wird aber erst kurz vor Liveschaltung gemacht
- Gibt es aktuell noch weitere Exporte (PDF, RTF, C1, XML) ? Ja
- Schnittstelle Asciidoc/Customizing für Benutzer erweitern
- Den Text Captcha benötigt:Bitte setzten Sie den Haken bei 'Ich bin kein Roboter'. nur 1x anzeigen -> Nicht machbar solange sich mehrere p:message auf der Seite befinden, dann bitte nur 1x p:message auf die Seite.
- Browser-Erkennung aktualisieren?
System:
Betriebsystem: Windows 10 64-bit
Browser: Chrome 65.0.3325.162
Meldung:
Sie nutzen einen Browser der über 6 Monate alt ist, wir empfehlen Ihnen dringend, die aktuellste Version von Chrome zu nutzen. Ist bereits aktualisiert. Fehler im Parsing, sollte gefixxt sein. Hat nun wieder funktioniert
- Alte Anwendung (komplett!) inkl. Daten archivieren?

B6/B7/B9
*Abweichendes Verhalten von trifft nicht zu
*-> Wird nicht direkt beim anklicken gespeichert

DOCX Templates
7z x -y %~1.docx word\document.xml
sed "s/<w:tblStyle w:val=\"TableNormal\"/<w:tblStyle w:val=\"BlueTableStyle\"/g" word\document.xml > word\document2.xml
copy word\document2.xml word\document.xml /y
7z u -y %~1.docx word\document.xml

Import der hbci4Java lib : Lib/hbci4Java/hbci4j-core-3.0.13-SNAPSHOT.jar

SQL ::

Organizations leeren:
update organization
set paid = false,
disclaimer = false,
paid_locations = null,
paid_departments = null,
paid_code = null,
rechnung_nummer = null,
imported_departments = null,
paid_stamp = null,
code_send = null,
isdktig = false,
terms_accepted = null;

update hospital set assistant_last_step = 0;

CREATE MATERIALIZED VIEW public.current_icd_ops AS
SELECT listentry.identifier,
listentry.description
FROM listentry
WHERE listentry.type = ANY (ARRAY[248, 249])
WITH DATA;

alter table organization rename paid_stamp to order_stamp;
alter table rbacuser alter column rbacpassword TYPE varchar(60);
alter table rbacuser add column show_slideshow boolean default true;

CREATE TABLE public.hospital_rules
(
hospitalid bigint NOT NULL,
jsondata text NOT NULL,
CONSTRAINT hr_p_h PRIMARY KEY (hospitalid)
);

alter table organization add column invoice_total numeric(16,6);
alter table organization add column left_to_pay numeric(16,6);
alter table organization add column activated boolean default false;

CREATE TABLE transfer
(
id serial primary key,
valuta bigint,
customerref character varying,
value numeric(14,6),
usage character varying,
isbooked boolean DEFAULT false,
autobooked boolean DEFAULT false,
checksum character(32),
comment character varying,
bdate bigint,
executionstamp bigint
);

CREATE TABLE public.transfer_organization
(
id serial primary key,
transferid bigint,
organizationid bigint,
value numeric(14,6),
CONSTRAINT transfer_organization_organizationid_fkey FOREIGN KEY (organizationid)
REFERENCES public.organization (organizationid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT transfer_organization_transferid_fkey FOREIGN KEY (transferid)
REFERENCES public.transfer (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
);
CREATE TABLE public.dashboard_errors
(
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)