Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Osaston potilaiden hakeminen #10

Closed
mikajylha opened this issue Nov 29, 2022 · 5 comments · Fixed by #37
Closed

Osaston potilaiden hakeminen #10

mikajylha opened this issue Nov 29, 2022 · 5 comments · Fixed by #37
Assignees
Labels
question Further information is requested

Comments

@mikajylha
Copy link
Collaborator

Pystytäänkö tässä profiilissa linjaamaan miten Encounter-resurssilla voi vastata kysymykseen "Mitkä potilaat ovat osastolla X ajankohtana T"?

Mahdollinen ratkaisuehdotus

Encounterin class tulee rajata koodiin IMP (inpatient encounter) - tällöin tieto rajautuu vuodehoitojaksoihin.
Encounterin status tulee rajata koodiin in-progress.

Potilaan hakeminen hallinnollisen vastuun perusteella.

Kutsuva järjestelmä ei aina välttämättä tiedä organisaation sijaintihierarkiaa (vaikka sovelluksella olisikin käytettävissä Location-resurssit, niin sillä ei silti ole välttämättä kaikkea tarvittavaa tietoa siitä mitkä sijainnit ovat minkäkin organisaatioyksikön käytössä). Lisäksi joissakin organisaatioissa sijainteja voidaan käyttää vaihtelevasti eri yksiköiden tarpeisiin (esim. tiettyä huonetta käyttävä yksikkö saattaa muuttua viikonpäivästä riippuen). Kutsuvalle sovellukselle on siten luontevampaa hakea listaus potilaista jotka ovat jonkun tietyn yksikön vastuulla. Perinteisesti potilastietojärjestelmissä wd -tason sijaintia ja organisaatioyksikköä (osastoa) on ymmärretty tarkoittavan samaa asiaa. On kuitenkinn näköpiirissä, että kehitys siirtyy pois perinteisestä osasto=sijainti -mallista (tilojen käyttöä pyritään tehostamaan). Tämä muutos on kuitenkin vasta aluillaan ja siksi "osaston vastuulla olevien potilaiden" hakeminen on edelleen relevantti use case.

Vastuuta kuvaava tietokenttä Encounter-resurssissa on serviceProvider. Encounter spesifikaatio sanoo, että serviceProvider olisi "facility" -tasoinen, tämä voi aiheuttaa tulkintavaikeuksia. Facilityn voi tulkita tarkoittavan yksittäistä kokonaista rakennusta (tai sairaalakompleksia). Tässä ratkaisuehdotuksessa tulkinta viedään tarkemmalle tasolle ja tulkitaan että serviceProvider on se matalimman tason SOTE-palveluyksikkö (osasto), jonka vastuulla potilas on.

Vastuu -kysymys korostuu FHIR:n tapauksessa, jos vertaa sitä, miten vastaava on toteutettu HL7 v2:ssa. HL7 v2:ssa location toimii melko luontevasti, mutta v2:n liipaisu-pohjainen semantiikka ei täysin istu FHIR:n REST-resurssipohjaiseen semantiikkaan, esim. FHIR:ssä location-viittauksen päässä olevan Location resurssin päivittäminen (esim. managingOrganization) aiheuttaisi "yllättäviä" muutoksia encounteriin.

Osaston potilaiden haku onnistuisi FHIR haulla seuraavasti:

GET /Encounter

  • class = IMP
  • status = in-progress
  • period gt ja le -rajaukset
  • serviceProvider = osaston SOTE-rekisterin oid

Yllä kuvatulla haulla saadaan kaikki osaston vastuulla olevat potilaat haettua, mutta siihen liittyy muutama lisätulkinta potilaan varsinaisesta sijainnista.

Location elementti statukseltaan active kertoo että potilas on myös fyysisesti paikalla osastolla.

Poikkeuksena yllämainittuun on esimerkiksi teho- ja leikkaus-osasto "vierailut". Nämä vierailut tarkoittavat sitä että osastohoitojakso on tilassa in-progress mutta potilaalla on myös toinen aktiivinen encounter teho- tai toimenpide-yksikössä. Näissä tapauksissa active statuksella oleva location osoittaa location resurssiin jonka mode='kind' (Location). Muut location elementit eivät ole aktiivisiä samanaikaisesti (eli osaston sisäiset lokaatiot kuten vuodepaikka joka voi jäädä reserved tilaan).

Encounterin location elementit:

"location": [
        {
            "location": {
                "reference": "Location/vuoteen-id"
            },
            "status": "reserved",
            "physicalType": "bd",
            "period": {
                "start": "2001-02-02T12:00:00+02:00"
            }
        },
        {
            "location": {
                "reference": "Location/teho-id-numero"
            },
            "status": "active",
            "period": {
                "start": "2001-02-02T12:10:00+02:00"
            }
        }
    ],

Teho-osaston Location resurssi:

{
  "resourceType": "Location",
  "id": "teho-id-numero",
  "status": "active",
  "name": "TEHO Osasto",
  "description": "Potilas on tehohoidossa (kts. erillinen encounter tehokaksosta)",
  "mode": "kind",
  
}

Muita vaihtoehtoja

  • Vastuussa olevalle organisaatioyksikölle oma extension encounteriin.

Vaihtoehdot jotka eivät vaikuta hyvin soveltuvilta

  • Encounter.location:n hyödyntäminen. Location.managingOrganization on "liian kaukana", jotta se voisi vastata hyvin vastuukysymykseen (kts. tarkempi pohdinta yo. ratkaisuehdotuksesta)

Taustatietoa

https://fhirblog.com/2013/10/24/adventures-in-searching-getting-a-list-of-patients-in-a-ward/

@mikajylha mikajylha added the question Further information is requested label Nov 29, 2022
@mrinnetmaki
Copy link
Collaborator

Oma ensi tuntuma on, että en linjaisi tuota profiilissa, mutta tuo voisi olla hyvä esimerkki. Esimerkin kuvaukseen siis käyttötapaus ja käytetty haku ja sitten myös haulla palautuvat tiedot.

@mrinnetmaki
Copy link
Collaborator

Ihan vain sivuhuomiona, olen kuullut tapauksista, joissa esimerkiksi lääkitystä ei "saanut" toimittaa teholle, jonne potilas oli siirretty, koska järjestelmä väitti potilaan olevan vuodeosastolla. Tai jotakin vastaavaa... Tarkkana noissa siis sovelluksia toteuttettaessa. Tuli vain mieleen, kun olit huolella kuvannut myös nuo "vierailut".

@mrinnetmaki
Copy link
Collaborator

Encounter spesifikaatio sanoo, että serviceProvider olisi "facility" -tasoinen, tämä voi aiheuttaa tulkintavaikeuksia.

Itse en tulkitsisi noin. Resurssin pääsivulla (http://hl7.org/fhir/encounter.html#Encounter) kyllä mainitaan tuo facility sulkeissa, mutta määritelmäsivu http://hl7.org/fhir/encounter-definitions.html#Encounter.serviceProvider kertoo tarkemmin:

The organization that is primarily responsible for this Encounter's services. This MAY be the same as the organization on the Patient record, however it could be different, such as if the actor performing the services was from an external organization (which may be billed seperately) for an external consultation.

@mikajylha
Copy link
Collaborator Author

Ok. Alkaa näyttää selvältä, että serviceProvider:n käyttö aiheuttaa tulkintavaikeuksia :)

Ehdottaisin että tätä varten määriteltäisiin erillinen extension, joka on reference Organization resurssiin.

Kuvaus voisi olla jotain tämän suuntaista: "Palveluyksikkö (SOTE-organisaatiorekisteristä), joka kantaa hoitovastuun potilaasta Encounter:n period:n aikana." (Kuvauksen sanamuoto kaipaisi vielä hiomista isommalla porukalla.)

@mikajylha
Copy link
Collaborator Author

Keskusteltiin tapaamisessa. Ymmärsin väärin tuon facility kommentin. Siispä scratch my last ;).

Eli serviceProvider:n käyttö hoitovastuun kantavan osaston (tai polin) ilmaisemiseen on ok. Extensionia ei tarvita!

@mikajylha mikajylha self-assigned this Dec 29, 2022
@mikajylha mikajylha linked a pull request Jan 26, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants