/*
 * STANDARD HL7 v2.1 IM UKBF
 *
 * Copyright (c) 1995, 1996 Gunther Schadow.  All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

:- module(ukbf,[]).

:- style_check(+string).
:- discontiguous table/3, value/4.

/*
 * ADMIT SOURCE -- Einweisende Quelle.
 *
 * Original HL7:
 *
 *   ``The code contained in this field indicates where the patient
 *     was admitted from.''
 *
 * Deutsche Übersetzung:
 *
 *   ``z. B. einw. Krankenhaus''
 *
 * Wenn der Patient selbständig kommt, d.h. ohne Überwiesen zu sein,
 * wird hier das `H' für `home' oder `von zu Hause' verwendet. Dies
 * dient weniger der Bestimmung des Ortes an dem der Patient vorher
 * war, sondern der der ihn zuvor Behandelnden Stelle. `H' ist somit
 * synonym zu `selbst' zu gebrauchen. `E', `external facility' oder
 * `externe Einrichtung' kann sowohl ein externes Krankenhaus sein,
 * sowie der Hausarzt. Dies(er) wird gegebenenfalls in `refering
 * doctor' (8) näher bestimmt.
 */

table(0023, "admit source", user_defined).

value(0023, 'h',   "home", user_defined).
value(0023, 'e',   "external facility", user_defined).
value(0023, 'naw', "Notawrzt-Wagen", user_defined).
value(0023, 'rtw', "Rettungs-Wagen", user_defined).
value(0023, 'rth', "Rettungs-Hubschrauber", user_defined).

/*
 * DISCHARGE DISPOSITION -- Bestimmung des Patienten bei Entlassung.
 *
 * Original HL7:
 *
 *   ``Disposition of patient at time of discharge''
 *
 * Als Beispiele werden gegeben: ``nach Hause entlassen'', oder
 * ``verstorben''. In folgender Tabelle findet sich dieser Eintrag
 * jedoch nicht. Hier wird das Feld nur im Sinne von ``verstorben''
 * gebraucht, d.h. warum der Patient entlassen wurde.
 */

table(0112, "discharge disposition", user_defined).

value(0112, 'd', "deceased", '').
value(0112, 'e', "emergency", '').
value(0112, 'c', "capacity", '').
value(0112, 'p', "planned", '').

table(0113, "discharge to location", user_defined).

value(0113, '001', "aug 001", '').
value(0113, '002', "med 002", '').
value(0113, '003', "psy-003", '').
value(0113, '004', "nro 004", '').
value(0113, '006', "medi 006", '').
value(0113, '008', "uro 008", '').
value(0113, '009', "neps-009", '').
value(0113, '010', "int 010", '').
value(0113, '012', "hno 012", '').
value(0113, '014', "nch 014", '').
value(0113, '016', "rad 016", '').
value(0113, '018', "psy 018", '').
value(0113, '030', "tra 030", '').
value(0113, '032', "hau 032", '').
value(0113, '034', "gyn 034", '').
value(0113, '036', "med 036", '').
value(0113, '038', "geb 038", '').
value(0113, '040', "priv 040", '').
value(0113, '042', "gyn 042", '').
value(0113, '044', "chi 044", '').
value(0113, '046', "chi 046", '').
value(0113, '048', "chi 048", '').
value(0113, '060-1', "iop 060-1", '').
value(0113, '060-4', "iop 060-4", '').
value(0113, '061-2', "wst 061-2", '').
value(0113, '061-3', "wst 061-3", '').
value(0113, '064', "ent 064", '').
value(0113, '065', "auf 065", '').
value(0113, '066', "auf 066", '').
value(0113, '067', "iso 067", '').
value(0113, '068', "num 068", '').
value(0113, '070', "neo1 070", '').
value(0113, '071', "neo2 071", '').
value(0113, 'e', "extern", '').
value(0113, 'h', "home", '').

/*
 * INSTALLATION
 */

:-
	forall(table(T,C,D),
	(
	    retractall(db:table(T,_,_)),
	    assert(db:table(T,C,D))
	)),
	forall(value(T,C,D,N),
	(
	    assert(db:value(T,C,D,N))
	)).
