Anrufernummer verlinken, PraxisKI-Link auf /anfragen/
Der Hinweis aus dem letzten Commit zeigte auf die Startseite von PraxisKI. Richtig ist https://ki-praxis.praxis.local/anfragen/. Neue Spalte anfragen.anrufernummer VARCHAR(255) NULL wird jetzt bei Telefonanfragen als anklickbarer tel:-Link ausgegeben. GetTelefonLink() baut das Ziel aus Ziffern und einem fuehrenden Plus, zeigt die Nummer aber unveraendert an - Leerzeichen, Klammern, Slashes und Durchwahl-Bindestriche stoeren den Link damit nicht. Nummern ganz ohne Ziffer, etwa bei unterdrueckter Rufnummer, bleiben Text ohne Link. Der Rohwert wird in der Funktion maskiert. GetAnruferZeile() liefert die beschriftete Zeile nur fuer source='telefon' und nur, wenn eine Nummer da ist. In der Liste steht sie in der Kontaktspalte, wo Telefonnummern hingehoeren; dort ersetzt sie bei Anfragen ohne zugeordneten Patienten den Platzhalter "Kontaktdaten siehe Nachricht". In Antwortformular, Hinweisseite, Antwort einsehen und Patientenhistorie steht sie bei den uebrigen Anfrageinformationen. Die Abfragen der letzten beiden lasen die Spalte nicht mit, sie ist dort ergaenzt. Die Spalte ist derzeit in allen 309 Telefonanfragen NULL - die Anlage schreibt sie noch nicht. Bis dahin aendert sich die Anzeige nicht, der bisherige Rueckfall greift. Geprueft: GetTelefonLink gegen internationale, geklammerte, mit Leerzeichen und Durchwahl geschriebene Nummern sowie gegen Leerwert, NULL, reinen Text und einen Injektionsversuch - das Script kommt maskiert heraus, nicht als Markup. Listenlogik ueber alle 12789 Anfragen mit simulierter Nummer durchgerechnet: der Link erscheint genau dann, wenn source='telefon' ist und eine Nummer vorliegt, und Nicht-Telefonzeilen bekommen kein zusaetzliches <br> in die Kontaktspalte. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+13
-1
@@ -252,14 +252,20 @@ if(!check_worker()){
|
||||
// werden konnte. Frueher fielen diese Zeilen durch den INNER
|
||||
// JOIN komplett aus der Liste.
|
||||
$hatPerson = ($row["vorname"] !== null || $row["nachname"] !== null);
|
||||
// Die Anlage haelt die Rufnummer des Anrufers getrennt von den
|
||||
// Stammdaten - sie kann von der hinterlegten abweichen.
|
||||
$anruferzeile = GetAnruferZeile($row["source"] ?? "mail", $row["anrufernummer"] ?? null);
|
||||
if($hatPerson){
|
||||
$userausgabe = $vorname . " " . $nachname . "<br>" . $ausgabegeburstag;
|
||||
$adresse = $plz . " " . $ort . "<br>" . $strasse ;
|
||||
$kontakt = "$mail <br>Tel:<a href='tel:$tel'>$tel</a>";
|
||||
if($anruferzeile !== ""){
|
||||
$kontakt .= "<br>" . $anruferzeile;
|
||||
}
|
||||
}else{
|
||||
$userausgabe = "<i>Kein Patient zugeordnet</i>";
|
||||
$adresse = "-";
|
||||
$kontakt = "<i>Kontaktdaten siehe Nachricht</i>";
|
||||
$kontakt = ($anruferzeile !== "") ? $anruferzeile : "<i>Kontaktdaten siehe Nachricht</i>";
|
||||
}
|
||||
echo "<tr style='background-color:". $farbe. ";'><td>$userausgabe <br> $kontakt</td><td>$adresse</td><td>$ordnungsstring - $anfrageart <br>$WeitereInfos</td><td>$datumausgabe</td><td>$update_time<br>$checkausgabe<br>$ausgabeworker</td><td>";
|
||||
// "Antworten" verschickt eine Mailvorlage. Ohne zugeordnete Person
|
||||
@@ -354,6 +360,7 @@ if(!check_worker()){
|
||||
echo "Bitte telefonisch beantworten und die Anfrage anschliessend ";
|
||||
echo "ueber <b>Telefonisch beantwortet</b> abschliessen.";
|
||||
echo "</div>";
|
||||
echo GetAnruferZeile($row["source"] ?? "mail", $row["anrufernummer"] ?? null);
|
||||
echo GetSprachnachrichtHinweis($row["source"] ?? "mail");
|
||||
echo "<b>Nachricht:</b><br>" . nl2br(e((string)$row["nachricht"])) . "<br><br>";
|
||||
ZuruckzumAnfrageOverView();
|
||||
@@ -402,6 +409,7 @@ if(!check_worker()){
|
||||
$antworttext = $row["antworttext"] ?? null;
|
||||
|
||||
$WeitereInfos = "";
|
||||
$WeitereInfos .= GetAnruferZeile($row["source"] ?? "mail", $row["anrufernummer"] ?? null);
|
||||
$WeitereInfos .= GetSprachnachrichtHinweis($row["source"] ?? "mail");
|
||||
if ($medikamenteins) $WeitereInfos .= "Medikament1: $medikamenteins<br>";
|
||||
if ($medikamentzwei) $WeitereInfos .= "Medikament2: $medikamentzwei<br>";
|
||||
@@ -1085,6 +1093,7 @@ if(!check_worker()){
|
||||
a.sicherenachricht,
|
||||
a.abholort,
|
||||
a.source,
|
||||
a.anrufernummer,
|
||||
|
||||
p.person_id,
|
||||
p.vorname,
|
||||
@@ -1141,6 +1150,7 @@ if(!check_worker()){
|
||||
|
||||
/* --- Anzeige-Strings --- */
|
||||
$WeitereInfos = "";
|
||||
$WeitereInfos .= GetAnruferZeile($row["source"] ?? "mail", $row["anrufernummer"] ?? null);
|
||||
$WeitereInfos .= GetSprachnachrichtHinweis($row["source"] ?? "mail");
|
||||
if (!empty($medikamenteins)) {
|
||||
$WeitereInfos .= "Medikament1: " . htmlspecialchars($medikamenteins, ENT_QUOTES, 'UTF-8') . "<br>";
|
||||
@@ -1333,6 +1343,7 @@ if(!check_worker()){
|
||||
a.medikament5,
|
||||
a.medikament6,
|
||||
a.source,
|
||||
a.anrufernummer,
|
||||
|
||||
aa.artname AS anfrageart_name,
|
||||
|
||||
@@ -1393,6 +1404,7 @@ if(!check_worker()){
|
||||
$ordnungsstring = GetOrdnungsid($ordnungsid);
|
||||
|
||||
$WeitereInfos = "";
|
||||
$WeitereInfos .= GetAnruferZeile($row["source"] ?? "mail", $row["anrufernummer"] ?? null);
|
||||
$WeitereInfos .= GetSprachnachrichtHinweis($row["source"] ?? "mail");
|
||||
if (!empty($med1)) $WeitereInfos .= "Medikament1: " . htmlspecialchars($med1, ENT_QUOTES, 'UTF-8') . "<br>";
|
||||
if (!empty($med2)) $WeitereInfos .= "Medikament2: " . htmlspecialchars($med2, ENT_QUOTES, 'UTF-8') . "<br>";
|
||||
|
||||
Reference in New Issue
Block a user