% ----------------------------------------------------------
%  FILE:     ANES_NET.PL
%  AUTHOR:   Tim Duncan
%  UPDATED:  7th June 1987
%  PURPOSE:  Hierarchy of Anaesthetic techniques for ATTENDING.       
% ----------------------------------------------------------


:- op(100,fx,*).
:- op(100,xfy,:).


/*
   node(Node_name,[Arc|Arcs]).
   arc(Anaesthetic_technique, Destination, Procedure).
*/

node(anes,[arc(ga,an1,tga),
     arc(regional,an1,treg)]).
node(an1,[arc(premed,an2,tprem),
     arc(no_premed,an2,tnopremeds)]).
node(an2,[arc(pop,t,t)]).

node(ga,[arc(intubation,g2,tintub)]).
node(g2,[arc(maintenance,g3,tmaint)]).
node(g3,[arc(induction,g4,tinduct)]).
node(g4,[arc(pop,t,t)]).

node(intubation,[arc(awake,int1,tawake),
     arc(none,int1,tnointub),
     arc(maskcricoid,int1,tmaskcricoid),
     arc(rapidseq,int1,trapidseq),
     arc(conventional,int1,tnormint)]).
node(int1,[arc(pop,t,t)]).

node(awake,[arc(awake_oral,aw1,toral),
     arc(awake_nasal,aw1,tnasal)]).
node(aw1,[arc(pop,t,t)]).

node(maskcricoid,[arc(relaxant,mc1,trelint),
     arc(no_relaxant,mc1,tnoirelaxant)]).
node(mc1,[arc(pop,t,t)]).

node(rapidseq,[arc(succinylcholine,rs1,tsux),
        arc(pancuronium,rs1,thighpav)]).
node(rs1,[arc(pop,t,t)]).

node(conventional,[arc(relaxant,ni1,trelint),
     arc(no_relaxant,ni1,tnoirelaxant)]).
node(ni1,[arc(pop,t,t)]).

node(induction,[arc(inhal,ind1,tinhalin),
        arc(thiopental,ind1,ttpl),                     
        arc(ketamine,ind1,tketamine)]).
node(ind1,[arc(pop,t,t)]).

node(maintenance,[arc(n2o,m1,tn2o),
        arc(no_n2o,m1,tnon2o)]).
node(m1,[arc(relaxant,m2,trelaxant),
        arc(no_relaxant,m2,tnomrelaxant)]).
node(m2,[arc(inhal,m3,tinhal),
        arc(balanced,m3,tbalanced)]).
node(m3,[arc(pop,t,t)]).

node(inhal,[arc(halothane,inh1,thalo),
        arc(enflurane,inh1,teth)]).
node(inh1,[arc(pop,t,t)]).

node(relaxant,[arc(succinylcholine,rel1,tsux),
        arc(curare,rel1,tdtc),                     
        arc(flaxedil,rel1,tgall),
        arc(metubine,rel1,tmet),
        arc(pancuronium,rel1,tpav)]).
node(rel1,[arc(pop,t,t)]).

node(balanced,[arc(morphine,b1,tmorph),
        arc(demerol,b1,tdem),
        arc(fentanyl,b1,tfent)]).
node(b1,[arc(pop,t,t)]).

node(premed,[arc(antichol,pm1,tanti),
        arc(no_antichol,pm1,tnoanti)]).
node(pm1,[arc(sedative,pm2,tsed),
        arc(no_sedative,pm2,tnosed)]).
node(pm2,[arc(pop,t,t)]).

node(sedative,[arc(narcotic,sed2,tpmnarc),
        arc(no_narcotic,sed2,tnonarcotic)]).

node(narcotic,[arc(morphine,nar1,tmorphpm),
        arc(demerol,nar1,tdem),
        arc(fentanyl,nar1,tfent)]).
node(nar1,[arc(pop,t,t)]).

node(sed2,[arc(barbiturate,sed2,tbarb),
        arc(valium,sed3,tval),
        arc(droperidol,sed3,tdrop),
        arc(vistaril,sed3,tvist),
        arc(phenergan,sed3,tphen),
        arc(no_sedative,sed3,tnosed1)]).
node(sed3,[arc(pop,t,t)]).

node(antichol,[arc(atropine,ant1,tatr),
        arc(glycopyrrolate,ant1,trob)]).
node(ant1,[arc(pop,t,t)]).

node(barbiturate,[arc(pentobarbital,bar1,tpento),
        arc(seconal,bar1,tsec)]).
node(bar1,[arc(pop,t,t)]).

node(conduction,[arc(epidural,cnd1,tepid),
        arc(spinal,cnd1,tspinal)]).
node(cnd1,[arc(pop,t,t)]).

node(regional,[arc(conduction,reg1,tconduct),
        arc(nb,reg1,tnb)]).
node(reg1,[arc(pop,t,t)]).

node(epidural,[arc(nesacaine,ep1,tnes),
        arc(marcaine,ep1,tmarc),
        arc(lidocaine,ep1,tsplido)]).
node(ep1,[arc(pop,t,t)]).

node(spinal,[arc(tetracaine,sp1,ttet),
        arc(lidocaine,sp1,tsplindo)]).
node(sp1,[arc(pop,t,t)]).

node(nb,[arc(nesacaine,nb1,tnes),
        arc(marcaine,nb1,tmarc),
        arc(lidocaine,nb1,tlido)]).
node(nb1,[arc(pop,t,t)]).
