Suunnittelu ja skedulointi terveydenhuollossa 27.11.2009
1/2 Terveydenhuolto edustaa merkittävää osaa bruttokansantuotteesta monissa maissa Terveydenhuoltokustannukset ovat kasvaneet huomattavasti viimeisten vuosikymmenten aikana Yleensä kalleimpia resursseja sairaalassa ovat leikkaussalit, kirurgit ja anestesialääkärit Leikkaussalin tunti on hyvin kallista, samoin tunti kirurgin aikaa
2/2 Leikkaukset vaativat paljon muita oheistoimintoja (tehohoito, vuodepaikat, hoitajat,...) Tyypillisiä minimointikohteita ovat leikkaussalien ja kirurgien joutoajat Leikkauksien kestot ovat satunnaisia Leikkausten aikajakaumasta on usein tietoa, koska sairaalat pitävät yllä tilastoja Aikataulutuksessa kaksi ongelmaa, leikkausten järjestys ja resurssien jako
Sisältö
Merkintöjä 1/2 Alaindeksi k viittaa leikkaukseen k, kun taas (k) on k:s leikkaus leikkausjonossa (eivät siis välttämättä samoja) d (k) on ajanhetki, jolla (k + 1):nnen leikkauksen uskotaan voivan alkaa C (k) on ajanhetki, jolloin leikkaus (k + 1) todellisuudessa alkaa
Merkintöjä 2/2 Leikkaussalin joutoajasta maksetaan maksetaan sakkoa funktion (d (k) C (k) )w or mukaisesti Kirurgin joutoajasta maksetaan sakkoa funktion (C (k) d (k) )w sg mukaisesti Oleta: n:n leikkauksen järjestys annettu. Aikataulun tekijän täytyy valita d (1),d (2),..., d (n 1) siten, että kustannukset minimoituvat Olkoon Y j satunnaismuuttuja leikkauksen j kestosta Olkoon f j satunnaismuuttujan tiheysfunktio ja F j kertymäfunktio.
2 leikkausta Leikkausten järjestys 1,2 ja kirurgille luvataan, että leikkaus 2 voidaan aloittaa hetkellä d (1) Kokonaiskustannus tällöin Z d(1) 0 (d (1) x)w orf 1(x)dx + Z d (1) (x d (1) )w sgf 1(x)dx Ei välttämättä saada yleistä ratkaisua arvolle d (1), jos f 1 on mielivaltaisesta jakaumasta. Optimaaliselle d (1) :lle pätee että marginaalisakko pienestä δ:n kokoisesta lykkäyksestä on suurinpirtein yhtäsuuri kuin marginaalihyöty samasta lykkäyksestä.
2 leikkausta Oletettu marginaalisakko saadaan kertomalla todennäköisyys, että Y 1 on pienempi kuin d (1), sakolla, eli w orf 1(d (1) ). Oletettu marginaalihyöty saadaan kertomalla todennäköisyys, että Y 1 on suurempi kuin d (1), kirurgin sakolla, eli w or(1 F 1(d (1) )). Asettamalla nämä yhtäsuuriksi, saadaan, että tai w sg F 1(d (1) ) = w sg + w or d (1) = F 1 1 ( w sg w sg + w or )
Esimerkki 12.2.1 2 leikkausta, kestot satunnaismuuttujia Y 1 Uniform(9,21) ja Y 2 Uniform(37, 43) (E[Y 1] = 15, E[Y 2] = 40, Var[Y 1] = 12, Var[Y 2] = 3) w sg = 2 ja w or = 1 Tarkastele ensin järjestystä 1, 2: Z 17 9 d (1) = F 1 1 (2/3) = 17 (17 x)1 1 12 dx + Z 21 17 (x 17)2 1 12 dx = 4
Esimerkki 12.2.1 Tarkastele järjestystä 2, 1: Z 41 37 d (1) = F 1 1 (2/3) = 41 (41 x)1 1 Z 43 6 dx + (x 41)2 1 6 dx = 2 Odotettu hinta järjestykselle 2,1 on selvästi vähemmän joten työ, jonka odotusarvo on suurempi ja varianssi pienempi, kannattaa tehdä ensin Oleta Y 2 Uniform(3, 9) ja Y 1 säilyy ennallaan. Tällöin E[Y 2] = 6 ja Var[Y 2] = 3. Tulos on edelleen sama kannattaa noudattaa SV-sääntöä (Smallest variance first) 41
Merkintöjä 1/3 n leikkausta, m leikkaussalia, t (aika) on diskreetti H aikapaikkojen lukumäärä suunnitteluhorisontissa (esim. kahdeksan tunnin päivä voisi koostua 96 viiden minuutin jaksosta) R tot olkoon kaikkien mahdollisten resurssien joukko RC j olkoon kaikkien mahdollisten resurssikombinaatioiden joukko, jotka tarvitaan leikkaukseen j Sopivalla resurssikombinaatiolla l RC j on suositeltu aloitusaika t l j
Merkintöjä 2/3 Olkoon joukko U l j kokonaislukujen osajoukko, joka ilmaisee, kuinka paljon leikkauksen j aloitusaika voi varioida parhaasta aloitusajasta t l j Esimerkiksi U l j = { 1, 0,1, 2,3} ja jos u U l j, niin silloin todellinen aloitusaika voi olla t l j + u I lu jrt on binaarimuuttuja, joka on 1, jos leikkaus j resurssikombinaatiolla l ja aloitusajalla t l j + u tarvitsee resurssin r aikapaikassa t A rt on binaarimuuttuja, joka on 1, jos r R tot on saatavilla ajanhetkellä t
Merkintöjä 3/3 Päätösmuuttujina ovat x lu j, jotka saavat arvon 1, jos leikkaus j aloitetaan aikapaikassa t l j + u ja 0 muuten Olkoon πj lu hyöty, joka saadaan, kun leikkaus j alkaa aikapaikassa tj l + u Leikkausten voidaan muotoilla niin sanotuksi joukon pakkausongelmaksi (Set Packing Problem)
Leikkausten joukon pakkausongelmana max nx X X j=1 l RC j u U j l s.t X X l RC j u U j l nx X j=1 l RC j u U j l πj lu xj lu x lu j 1 kun j = 1,..., n X I lu jrtx lu j A rt kun t = 1,..., H; r R tot x lu j {0, 1} kun j = 1,..., n; l RC j; u U l j
Esimerkki 12.3.1 Tarkastellaan tilannetta, jossa meillä on 3 leikkaussalia, 3 kirurgia, 3 anestesialääkäriä ja 5 leikkausta. Aikahorisontti on 96 kpl viiden minuutin aikapaikkoja. Nyt R tot = 9, ja merkitään, että leikkaussalit ovat numeroilla 1, 2,3, kirurgit numeroilla 4, 5,6 ja anestesialääkärit numeroilla 7, 8,9. Leikkausten kestot ovat Leikkaukset j 1 2 3 4 5 Kesto p j 42 42 12 48 48
Esimerkki 12.3.1 Resurssikombinaatiot ovat sallittuja kolmikoita (x,y, z), jossa x viittaa leikkaussaliin, y kirurgiin ja z anestesialääkäriin leikkaukset sallitut resurssikombinaatiot 1 RC 1 = {(1, 4,7), (1,4,8), (1,5,7), (3,4, 7),(3,4, 8)} 2 RC 2 = {(1, 4,7), (1,5,7), (3,4,7)} 3 RC 3 = {(3, 4,7), (3,4,8), (1,6,7)} 4 RC 4 = {(2, 4,7), (2,4,8), (3,4,7), (3,4, 8)} 5 RC 5 = {(2, 5,8), (2,5,9), (3,5,8), (1,5, 8)}
Esimerkki 12.3.1 Saatavuusdatasta tiedetään, että kirurgi 6 ei ole käytettävissä päivän ensimmäisen tunnin aikana, eikä anestesialääkäri 9 ole käytettävissä ensimmäisen 4:n tunnin aikana. Kaikki muut resurssit ovat käytettävissä koko päivän. Oletetaan, että leikkauksen j aloittaminen aikapaikassa tj l + u käyttäen resurssikombinaatiota l ei tuota hyötyä πj lu, vaan kustannuksen cj lu. Silloin kohdefunktiota minimoidaan. c l0 j = 0, jos käytetään leikkaussalia 1 tai 2. c l0 j = 600, jos käytetään leikkaussalia 3 Jokainen 5 minuutin myöhästys maksaa 5 Jokainen 5 minuutin aikaistus maksaa 20
Esimerkki 12.3.1 j l Res. komb. t l j U l j 1 1 (1,4,7) 0 {0, 1,2, 3,4, 5,6} 1 2 (1,4,8) 48 { 3, 2, 1,0,1, 2,3} 1 3 (1,5,7) 48 { 6, 4, 2,0,2, 4,6} 1 4 (3,4,7) 0 {0, 1,2, 3,4, 5,6} 1 5 (3,4,8) 48 { 3, 2, 1,0,1, 2,3} 2 1 (1,4,7) 0 {0, 1,2, 3,4, 5,6} 2 2 (1,5,7) 0 {0, 1,2, 3,4, 5,6} 2 3 (3,4,7) 0 {0, 1,2, 3,4, 5,6} 3 1 (3,4,7) 0 {0, 1,2, 3,4, 5,6} 3 2 (3,4,8) 0 {0, 1,2, 3,4, 5,6} 3 3 (1,6,7) 48 { 6, 4, 2,0,2, 4,6} 4 1 (2,4,7) 48 { 6, 4, 2,0,2, 4,6} 4 2 (2,4,8) 48 { 6, 4, 2,0,2, 4,6} 4 3 (3,4,7) 48 { 6, 4, 2,0,2, 4,6} 4 4 (3,4,8) 48 { 6, 4, 2,0,2, 4,6} 5 j (x, y,z) 0 {0, 1,2, 3,4, 5,6}
Esimerkki 12.3.1 Kohdefunktio min nx X X j=1 l RC j u U j l s.t X X l RC j u U j l nx X j=1 l RC j u U j l cj lu xj lu x lu j 1 kun j = 1,..., 5 X I lu jrtx lu j A rt kun t = 1,..., 96; r = 1,..., 9 x lu j {0, 1} kun j = 1,..., 5; l RC j; u U l j
Esimerkki 12.3.1 Tulokset Leikkaukset 2,3,1 tässä järjestyksessä leikkaussaliin 1 Leikkaukset 5,4 tässä järjestyksessä leikkaussaliin 2 Resurssi 7 on koko päivän leikkaussalissa 1 Resurssi 8 on koko päivän leikkaussalissa 2
Merkintöjä 1/4 Oletetaan taas, että leikkauksen kesto on satunnainen Leikkauksen j odotusarvo on µ j ja varianssi σ 2 j m leikkaussalia Aika diskreetti ja suunnitteluhorisontti H päivää N p erilaista erikoisalaa (neurologia, sydäntaudit jne) Erikoisalalla l,l = 1,... N p on t-päivänä annettu joukko leikkaussaleja, joita merkitään M lit, eli i viittaa leikkaussaliin Joukon M lit alkiota kutsutaan LS-päiväksi (OR-Day) ja merkitään kolmikolla (l, i, t)
Merkintöjä 2/4 Olkoon J kaikkien leikkausten joukko Olkoon J l kaikkien l-erikoisalaa olevien leikkausten joukko Olkoon J lit kaikkien l-erikoisalaa olevien leikkausten joukko, jotka tehdään t-päivänä leikkaussalissa i Oleta, että on olemassa perusaikataulu, joka kiinnittää kunkin leikkauksen johonkin LS-päivään. Tavoitteena aikatauluttaa tilanne uudelleen siten, että saataisiin vapautettua leikkaussaleja kokonaisiksi päiviksi
Merkintöjä 3/4 Yksi minimoitava kohde on odetettu yliaika yhtenä LS-päivänä Koska leikkausten kestot ovat satunnaisia, aina on mahdollista, että viimeinen leikkaus menee yliajalle Nyt minimoidaan siis odotettua yliaikaa Silloin aikatauluttaja lisää väljyyttä (slack) systeemiin Lisättävä väljyys perustuu kyseisen LS-päivän leikkausten keston kokonaisvarianssiin
Merkintöjä 4/4 Kokonaiskeston odotusarvo on µ lit = X j J lit µ j Kokonaiskeston varianssi on σlit 2 = X j J lit σ 2 j Suunniteltu väljyysaika δ lit LS-päivälle (l, i, t) on s X δ lit = β σj 2, j J lit missä β on parametri, jonka aikatauluttaja valitsee
Tavoitteet Annetulla leikkauksilla J lit LS-päivän (l, i, t) yliaika määritellään O lit = max(0, µ lit + δ lit T lit), missä T lit on LS-päivän (l,i, t) käytettävissä oleva kokonaisaika Tavoitteena on generoida aikataulu, joka sopii hyvin seuraaville kolmelle tavoitteelle 1 min P l,i,t O lit 2 Maksimoi kokonaan tyhjien LS-päivien lukumäärä 3 max P l,i,t max(0, T lit µ lit δ lit ) Näistä kolmesta 1. on yleensä tärkein ja 3. vähiten tärkein
Aliongelman tarkastelu, LPT Jos oletetaan, että leikkaukset voidaan liittää vain niihin päiviin, joihin kiinnitettyy erikoisalaan leikkaukset kuuluvat Tällöin yleinen onglema voidaan jakaa N p aliongelmaan, jotka ovat riippumattomia Tarkastellaan tällaista yhtä aliongelmaa Jos päätavoitteena on minimoida kokonaisyliaika, silloin ongelmaa voidaan lähestyä rinnakkaisten koneiden ongelmana (Luku 5, tai esitelmä 4 (Tony Nysten)), jolloin minimoidaan kokonaissuoritusaikaa (makespan) Jos käytetään LPT-heuristiikkaa, niin leikkaukset laitetaan laskevassa järjestyksessä systeemiin, ja järjestyksen määrää µ j + βσ j Leikkaus asetetaan sellaiselle LS-päivälle, jonka kuorma on pienin sillä hetkellä
Aliongelman tarkastelu, FFD Jos päätavoitteena on minimoida käytettyjen LS-päivien lukumäärä, silloin ongelmaa voidaan lähestyä lokerointiongelmana (bin-packing problem) (Luku 9, tai esitelmä 12 (Arttu Klemettilä)) Sopiva heuristiikka voisi olla FFD (first fit decreasing) Leikkaukset järjestetään samalla järjestysperiaatteella, kuin LPT (eli µ j + βσ j) Leikkaukset astetetaan sille LS-päivälle (l, i, t), jonka kokonaistaakka on suurin, mutta johon silti mahtuu vielä kyseinen leikkaus. Mahtumisen mittaamisessa tarvitaan sen päivän kokonaisaika T lit
Aliongelman tarkastelu Sekä LPT, että FFD perustuvat leikkausten odotettuun kestoon (sisältäen suunnitellun väljyysajan). Huomaa, kuitenkin, että samalle LS-päivälle liitettyjen leikkausten varianssit vuorovaikuttavat toisiinsa β X s X σ j > β σj 2 = δ lit j J lit j J lit Näinollen saattaa olla parempi muokata aikatauluja yrittäen yhdistää leikkaukset perustuen niiden variansseihin, jotta suunniteltu kokonaisväljyysaika pienenee
Esimerkki 12.4.1 4 leikkausta, 2 LS-päivää µ j = 100 j, σ 1 = σ 2 = 50, σ 3 = σ 4 = 10 Odotettu leikkausten 1 ja 2 kesto on 100 + 50β Odotettu leikkausten 3 ja 4 kesto on 100 + 10β Oleta, että β = 1 ja T = 400 LPT: 1 ja 3 toisena päivänä ja loput toisena FFD: 1 ja 2 toisena päivänä ja loput toisena
Esimerkki 12.4.1 Nyt LPT:n tuottaman aikataulun standardipoikkeama molempina päivinä on p 502 + 10 2 = 51, jolloin suunniteltu kokonaisväljyysaika on 102 FFD:n tuottaman aikataulun standardipoikkeama yhteensä on p 502 + 50 2 + p 10 2 + 10 2 = 84.9 Joten vähentääkseen suunniteltua kokonaisväljyyttä, aikatauluttajan kannattaa laittaa korkeavarianssiset leikkaukset samalle päivälle.
1/2 Tutki sydänleikkausten (l = 1) ta Käytössäsi on 2 leikkaussalia ja 2 työpäivää (T = 480 molemmille päiville ja molemmille saleille), eli yhteensä 4 LS-päivää Jaa 10 leikkausta saleihin käyttäen LPT- ja FFD-heuristiikkoja Laske vapaaksi jäänyt kokonaiskapasiteetti P l,i,t max(0, Tlit µlit δlit) molemmille heuristiikoille, kun β = 1 Kumpi heuristiikka tuottaa paremman tuloksen, kun tavoitteenasi on maksimoida vapaaksi jäänyttä kokonaiskapasiteettia? Miksi? Leikkausten data seuraavalla kalvolla
2/2 Leikkaus j µ j σ j 1 50 10 2 60 10 3 70 30 4 90 40 5 100 50 6 120 60 7 200 10 8 160 60 9 150 80 10 200 40