PMG2224 4/DB Beleg/Magdalena

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
=DBMS zur Patientenaktendigitalisierung=

==Ziel der Datenbank==

Das Ziel und die Aufgabe der Folgenden Datenbank ist es, mittels eines Datenbankmanagementsystems über die Beziehung zwischen Arzt und Patient Abfragen zu erstellen. Dabei kann bspw. ermittelt werden, welcher Patient bei welchem Arzt in Behandlung ist. Des weiteren sind Abfragen über diverse Erkrankungen und Spezialisierungen der Ärzte möglich. Ich habe mich für diese Thema u.A. aus aktuellem Anlass, der Digitalisierung von Patientenakten und Rezepten, entschieden.

==Modellierung in einem ERM==
[[Bild:Magda_Screenshot_(102).png]]

==Transformation in das Relationsmodell==
* Arzt ('''Arzt_ID''', Vorname, Name, PLZ, Wohnort, Straße, Telefon)
* Patient ('''Patient_ID''', Vorname, Name, PLZ, Wohnort, Straße, Telefon, VersicherungsNr)
* Spezialisierung ('''Spezialisierungs_ID''', Beschreibung)
* Diagnose ('''Diagnose_ID''', Detail) 
* Arzt_Patient ('''Arzt_ID''', '''Patient_ID''')

==Erstellen der Datenbank==
<code id="65fb2e0269a8c">

CREATE TABLE Arzt (
    Arzt_ID PRIMARY KEY,
    Vorname VARCHAR(100),
    Nachname VARCHAR(100),
    PLZ VARCHAR(10),
    Wohnort VARCHAR (20),
    Straße VARCHAR (25),
    Telefon VARCHAR (20)
);

CREATE TABLE Patient (
    Patient_ID PRIMARY KEY,
    Vorname VARCHAR(100),
    Nachname VARCHAR(100),
    PLZ VARCHAR(10),
    Wohnort VARCHAR (20),
    Straße VARCHAR (25),
    Telefon VARCHAR (20),
    VersicherungsNr VARCHAR (100)
);

CREATE TABLE Spezialisierung (
    Spezialisierung_ID PRIMARY KEY,
    Beschreibung VARCHAR (100),
    Arzt_ID VARCHAR,
    FOREIGN KEY (Arzt_ID) REFERENCES Arzt(Arzt_ID)
);

CREATE TABLE Diagnose (
    Diagnose_ID PRIMARY KEY,
    Code VARCHAR (100),
    Details VARCHAR (200),
    Patient_ID VARCHAR,
    FOREIGN KEY (Patient_ID) REFERENCES Patient(Patient_ID)
);

CREATE TABLE Arzt_Patient (
    Arzt_ID VARCHAR,
    Patient_ID VARCHAR,
    FOREIGN KEY (Arzt_ID) REFERENCES Arzt(Arzt_ID),
    FOREIGN KEY (Patient_ID) REFERENCES Patient(Patient_ID)
);

</code>

<code id="65fb32ffcb103">

INSERT INTO Arzt VALUES (1, 'Anna', 'Schmidt', '12345', 'Berlin', 'Hauptstraße 1', '030-1234567');
INSERT INTO Arzt VALUES (2, 'Michael', 'Müller', '54321', 'Hamburg', 'Musterweg 2', '040-9876543');
INSERT INTO Arzt VALUES (3, 'Julia', 'Wagner', '12345', 'München', 'Am Park 3', '089-5555555');
INSERT INTO Arzt VALUES (4, 'Thomas', 'Koch', '45678', 'Köln', 'Strasse 8', '0221-2222222');
INSERT INTO Arzt VALUES (5, 'Petra', 'Bauer', '98765','Frankfurt', 'Rosenweg 5', '069-3333333');
INSERT INTO Arzt VALUES (6, 'Markus', 'Schulz', '23456','Stuttgart', 'Birkenstraße 6', '0711-4444444');
INSERT INTO Arzt VALUES (7, 'Sabine', 'Hoffmann', '76543', 'Dresden', 'Elbstraße 7', '0351-6666666');
INSERT INTO Arzt VALUES (8, 'Andreas', 'Becker', '34567', 'Leipzig', 'Goetheplatz 9', '0341-7777777');
INSERT INTO Arzt VALUES (9, 'Monika', 'Schneider', '56789', 'Hannover', 'Lindenstraße  9', '0511-8888888');
INSERT INTO Arzt VALUES (10, 'Christian', 'Kühn', '87654', 'Düsseldorf', 'Kaiserallee 10', '0211-9999999');


INSERT INTO Patient VALUES (1, 'Lutz', 'Holz', '12345', 'Berlin', 'Hauptstraße 10', '030-1899567', 'V123456');
INSERT INTO Patient VALUES (2, 'Mike', 'Rof', '54771', 'Heiden', 'Musterweg 9', '040-9006543', 'V234567'); 
INSERT INTO Patient VALUES (3, 'Tom', 'Hanke', '67890', 'München', 'Am Park 12', '089-5995555', 'V345678');
INSERT INTO Patient VALUES (4, 'Tom', 'Kohl', '45778', 'Kalen', 'Lindenstraße 4', '0221-2992222', 'V456789');
INSERT INTO Patient VALUES (5, 'Reiner', 'Bernd', '99965', 'Plauen', 'Rosenallee 5', '069-3399833', 'V567890');
INSERT INTO Patient VALUES (6, 'Mario', 'Scholz', '23439', 'Bautzen', 'Birkenweg 6', '0711-4490444', 'V678901');
INSERT INTO Patient VALUES (7, 'Sandra', 'Hiertsch', '70943', 'Pirna', 'Elbuferweg 7', '0351-6897666', 'V789012');
INSERT INTO Patient VALUES (8, 'Andre', 'Bäcker', '04567', 'Kamenz', 'Goetheweg 8', '0341-7709777', 'V890123');
INSERT INTO Patient VALUES (9, 'Moni', 'Schubert', '56989', 'Halle', 'Lindenweg 10', '0511-8883458', 'V901234');
INSERT INTO Patient VALUES (10, 'Christoph', 'Kun', '97654', 'Zieschen', 'Kaiserstraße 12', '0211-9999079', 'V012345');


INSERT INTO Spezialisierung VALUES (1, 'Allgemeinmedizin', '1');
INSERT INTO Spezialisierung VALUES (2, 'Chirurgie', '5');
INSERT INTO Spezialisierung VALUES (3, 'Innere Medizin', '9');
INSERT INTO Spezialisierung VALUES (4, 'Orthopädie', '2');
INSERT INTO Spezialisierung VALUES (5, 'Gynäkologie', '4');

INSERT INTO Diagnose VALUES (1, 'D123', 'Erkältung');
INSERT INTO Diagnose VALUES (2, 'I456', 'Grippe');
INSERT INTO Diagnose VALUES (3, 'A789', 'Allergie');
INSERT INTO Diagnose VALUES (4, 'H234', 'Hypertonie');
INSERT INTO Diagnose VALUES (5, 'C567', 'Diabetes');


--INSERT INTO Arzt_Patient VALUES (1, 1);
--INSERT INTO Arzt_Patient VALUES (2, 2);
--INSERT INTO Arzt_Patient VALUES (3, 1);
--INSERT INTO Arzt_Patient VALUES (3, 3);

</code>

==Beispielhafte Abfragen==

Gesamtheit der Ärzte mit Anschrift (= Arztpraxen)
<run id="65fb196820614"></run>

==Kritische Reflexion zu Modellierung und Umsetzung==

==Quellen==
• ERDplus