Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: MEDICAL OFFICE - Anwenderforum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Dienstag, 5. Januar 2016, 20:43

[Gelöst] PHP-Code; Suche nach VKNR in einer Liste, wo liegt der Fehler und geht das in MO

Hallo

Ich versuche mittels PHP-Script über die Schnellinfo die BKKs herauszufiltern, für die in der KVNO die Vorsorgen für Kinder (U10 und U11) abgerechnet werden können.

Zitat

{PHP}
$needle={VKNR2};
$haystack='21405 19557 18403 42401 27484 27409 25401 18515 19402 19409 42402 21407 09402 03412 53408 42419 19479 45411 19540 19473 49411 02419 42405 68415 45405 58440 09409 08425 72421 18544 18405 42406 61487 47434 02422 61491 47410 31418 19418 02407 02406 67412 52405 61477';
Echo var_dump(strpos($haystack, $needle));
{/PHP}
Wenn ich obiges Beispiel in einer PHP-Sandbox laufen lasse und z.B. für VKNR2 die 18515 eintrage, erhalte ich als Ergebnis Boolean(false), obwohl der Suchstring offensichtlich enthalten ist.

Mache ich einen grundsätzlichen Denkfehler?

LG, Josmed

EDIT: Wenn ich {VKNR2} durch '18515' ersetze, also in (') setze, dann erhalte ich die richtige Position. Wie muss ich die Zuweisung von VKNR2 in $needle korrekt vornehmen? In der Vergangenheit habe ich mehrfach durch Codefehler die Schnellinfo zum Verschwinden gebracht :(

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Josmed« (12. Januar 2016, 18:50)


2

Dienstag, 5. Januar 2016, 21:11

so sieht es in der Sandbox aus;

Zitat

$VKNR2=18515;
$needle=$VKNR2;
$haystack='21405 19557 18403 42401 27484 27409 25401 18515 19402 19409 42402 21407 09402 03412 53408 42419 19479 45411 19540 19473 49411 02419 42405 68415 45405 58440 09409 08425 72421 18544 18405 42406 61487 47434 02422 61491 47410 31418 19418 02407 02406 67412 52405 61477';
Echo var_dump(strpos($haystack, $needle));
Echo $needle;
das kommt dort aus Ausgabe;

Zitat

bool(false)
18515
Wo liegt der Fehler?

LG, Josmed

3

Dienstag, 5. Januar 2016, 21:33

$VKNR2=18515;

Hallo Josmed,

die erste Zeile muss folgende sein: $VKNR2='18515';

Gesamt:
$VKNR2='18515';
$needle=$VKNR2;
$haystack='21405 19557 18403 42401 27484 27409 25401 18515 19402 19409 42402 21407 09402 03412 53408 42419 19479 45411 19540 19473 49411 02419 42405 68415 45405 58440 09409 08425 72421 18544 18405 42406 61487 47434 02422 61491 47410 31418 19418 02407 02406 67412 52405 61477';
Echo var_dump(strpos($haystack, $needle));
Echo $needle;


Ob es dann aber in MO funktioniert weiß ich nicht.


viele Grüße

M.Meier

PS: wenn es sich um alle BKK's handelt, kann das bei der Schnellinfo in den Darstellungsbedingungen eingestellt werde - KV-Fall, kostenträgerspezifische Einschränkungen - Kostenträger - BKK

4

Mittwoch, 6. Januar 2016, 08:54

Hallo Josmed,

Das oben genannte Script funktioniert in der PHP-Sandbox. Die Position des gesuchten strings wird mit "strpos" gesucht und angezeigt. Ich glaube aber nicht, dass es in der Schnellinfo von MO funktioniert.

Um in der Schnellinfo sich die Möglichkeit der Abrechnung bestimmter Untersuchungen anzeigen zu lassen, geht es mit folgendem Script mit "Oder-Verknüpfungen:

{PHP}
$VKNR = {Kostenträger.VKNR2} ;
if($VKNR===21405 OR $VKNR===19557 OR $VKNR===18403 OR $VKNR===42401) {echo 'U10/11 möglich';}else{echo 'U10/11 nicht möglich';};{/PHP}

Vielleicht hilft ihnen das.


viele Grüße

M.Meier

5

Mittwoch, 6. Januar 2016, 09:11

Hallo Herr Meier

Erst einmal Danke für die Rückmeldung. Ihre Lösung habe ich bewusst nicht gewählt, da die In Frage kommenden BKKs ständig wechseln und ich so nur den Haystack-String anpassen muss. Warum denken Sie, dass der Code in MO nicht laufen kann? Ich kann natürlich einfach testen, aber auf Grund obiger Fussfallen habe ich erst einmal hier nachgefragt.

Leider ist die Situation mit den diversen §73-Verträgen ziemlich unüberschaubar, so dass ich die Schnellinfo hier nutzen will, da 3 Ärzt e und 6 Kolleginnen an de Rezeption immer wieder neu informiert werden müssen, was da gerade geht und was nicht....

LG, Josmed

Deshalb geht die Frage natürlich auch an das Team von INDAMED, falls von dort jemand hier mit liest.

6

Mittwoch, 6. Januar 2016, 09:33

Ihre Lösung habe ich bewusst nicht gewählt, da die In Frage kommenden BKKs ständig wechseln und ich so nur den Haystack-String anpassen muss. Warum denken Sie, dass der Code in MO nicht laufen kann? Ich kann natürlich einfach testen, aber auf Grund obiger Fussfallen habe ich erst einmal hier nachgefragt.

Hallo Josmed,

bei meiner Lösung müssten sie auch nur die VKNR im Script ändern ;) Das macht auch nicht viel mehr Arbeit, als die Änderung des Haystack-String.

In der Schnellinfo vom MO funktionieren einige PHP-Scripte nicht. PHP ist dort ist irgendwie eingeschränkt. Aber ihr Script funktioniert in der Sandbox, ist als richtig. Sie müssen nur $VKNR2='18515' für die Suche verwenden (s.o.) und dann wird die Position des strings angezeigt. Sie könne es also probieren.
Sie können dann ja berichten. es interessiert mich schon, ob es klappt.

Viele Grüße

M.Meier

7

Mittwoch, 6. Januar 2016, 10:12

bei meiner Lösung müssten sie auch nur die VKNR im Script ändern ;) Das macht auch nicht viel mehr Arbeit, als die Änderung des Haystack-String.

Ich meinte damit, dass die sequentiellen If-Abfragen immer wieder angepasst werden müssten, das fällt bei der Needle/Haystack-Variante weg.

Ich werde es jetzt einmal testen, wenn richtiger Code MO zum Crashen bringt, muss mir INDAMED aus der Patsche helfen :thumbsup:

8

Mittwoch, 6. Januar 2016, 10:18

Viel Glück :)

9

Mittwoch, 6. Januar 2016, 10:41

Was mir noch einfällt:
Im MO müssen sie wahrscheinlich $needle={Kostenträger.VKNR2}; im PHP-Script einsetzen, statt $needle={VKNR2};


viele Grüße

M.Meier

10

Mittwoch, 6. Januar 2016, 13:08

Hallo Herr Meier

es klappt--fast--aber eben nur fast. Die Ausgabe bei einer der relevanten Kassen lautet: bool(false) 1287, auch wenn die VKNR2 02407 lautet und bei Ausgabe von {Kostenträger.VKNR2} in einer 2. Schnellinfo auch korrekt angezeigt wird.

Somit Scheint die Zuweisung an $needle nicht den korrekten Inhalt zu übergeben, evtl. wegen der führenden Null? JA, das war es, ich muss $needle='{Kostenträger.VKNR2}' schreiben. Somit war ihr Tipp doppelt wirksam. Danke

Nun bin ich einen großen Schritt weiter.

Bis moin, Josmed

11

Mittwoch, 6. Januar 2016, 13:21

es klappt--fast--aber eben nur fast. Die Ausgabe bei einer der relevanten Kassen lautet: bool(false) 1287, auch wenn die VKNR2 02407 lautet und bei Ausgabe von {Kostenträger.VKNR2} in einer 2. Schnellinfo auch korrekt angezeigt wird.

Hallo Josmed,

schön das es fast funktioniert und sie einen Schritt weiter sind :)
Nur als Hinweis: In der PHP-Sandbox funktioniert es auch mit der führenden 0.


viele Grüße

M.Meier

12

Donnerstag, 28. Januar 2016, 10:43

es klappt--fast--aber eben nur fast.

Hallo Josmed,

funktioniert die Abfrage jetzt und mit welchem PHP-Script?

viele Grüße

M.Meier

13

Freitag, 29. Januar 2016, 13:33

Hallo Herr Meier

Im moment läuft es so;

Zitat

{PHP}
$needle='{Kostenträger.VKNR2}';
$haystack='21405 19557 18403 42401 27484 27409 25401 18515 19402 19409 42402 21407 09402 03412 53408 42419 19479 45411 19540
19473 49411 02419 42405 68415 45405 58440 09409 08425 72421 18544 18405 42406 61487 47434 02422 61491 47410 31418 19418 02407
02406 67412 52405 61477';
$pos = strpos($haystack, $needle);

If ($pos !== false) {
echo "U10 / U11 möglich";}

{/PHP}
Lg, Josmed

14

Freitag, 29. Januar 2016, 13:40

Hallo Josmed,

Danke, das ist nur aus Interesse und für die Zukunft, falls ich so etwas auch mal brauche ;)
Funktioniert das Script auch mit den Nullen am Anfang?

viele Grüße und ein schönes Wochenende

M.Meier

15

Freitag, 29. Januar 2016, 13:55

urps
Funktioniert das Script auch mit den Nullen am Anfang?
nein ;-(((

Merke ich auch erst durch Ihre Nachfrage. Somit Danke, da werde ich wohl noch etwas tunen müssen.

LG und schönes Wochenende, Josmed

KORREKTUR:: Es klappt doch, ich hatte nur noch einen zusätzlichen Filter verwendet (Alter 7-11) und der täuschte ein nicht funktionieren vor.

Also, ES KLAPPT :D

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Josmed« (29. Januar 2016, 14:01)


16

Freitag, 29. Januar 2016, 13:58

Ich muss doch mal als ganz doofer fragen:
woher können Sie sowas??
(der Begriff "needle" ist mir natürlich in seiner deutschen Übersetzung von Blutabnahmen auch bekannt.... Und meine Kinder haben auch in einer Sandbox gespielt, wenn Sie mir diesen Anglizismus verzeihen....)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Dr. Roland Steinmetz« (29. Januar 2016, 14:04)


17

Freitag, 29. Januar 2016, 14:03

Hallo Her Steinmetz
woher können Sie sowas??
Für mich kann ich antworten, ich kann es ja nicht, ich mache es so, wie Babies laufen lernen, Schritt für Schritt. Früher habe ich ein bisschen Basic programmiert, später AHK-Scripte zusammen-geschrammelt, nun hier also PHP. Es ist wie beim Teufel, in der Not....

LG, schönes wochenende und bis bald, Josmed

18

Freitag, 29. Januar 2016, 14:30

Es klappt doch,

:) :) :)

(der Begriff "needle" ist mir natürlich in seiner deutschen Übersetzung von Blutabnahmen auch bekannt.... Und meine Kinder haben auch in einer Sandbox gespielt, wenn Sie mir diesen Anglizismus verzeihen....)

Hallo Her Steinmetz,

ich mache es auch Schritt für Schritt (wie Josmed) und das geht nur, wenn man sich damit beschäftigt, eine Fragestellung hat und sich PHP-Befehle und Scripte im Internet anschaut. Da gibt es ein ganze Menge Seiten. " $needle"´ist nur eine Variable (vielleicht von "Nadel im Heuhaufen finden", da sie ja nach der Variable "$needle" suchen). Man könnte auch alles andere nehmen (z.B. $VKNR...) Im Handbuch des DPS sind Countbefehle beschriebe. Damit kann man auch schon einiges machen ;)

Die PHP-Sandbox ist Programm im Internet, mit dem man online seinen PHP-Code testen kann :) ( http://sandbox.onlinephpfunctions.com/ ).

viele Grüße und ein schönes Wcchenende

M.Meier

19

Freitag, 29. Januar 2016, 16:45

In der Tat stammt die Nadel aus dem Heuhaufen der im englischen Haystack genannt wird. War also nicht meine Erfindung :-)

Steht so auch in diversen Php Manuals.

LG,Josmed