Haun vastaus

Haun HTTP vastaus (response)

HTTP vastauksen tiedot palautetaan HTTP header- ja body-osuuksiin jaettuna.

Vastauksen HTTP header

Haun HTTP-vastauksen header-osuus noudattaa Kanta-palveluiden yhteistä Kanta FHIR HTTP header määrittelyä ja siinä kuvattuja tietoja.

Vastauksen HTTP body

Onnistuneen haun vastauksena palautuu Bundle resurssi-instanssi, joka on tyypiltään searchset (type). Bundle resurssin tiedoissa ilmaistaan hakutulosten määrä total-elementissä. Ajanvarauksen tiedot palautuvat Appointment-resursseissa ja niihin liittyvät metatiedot Provenance-resurseissa, nämä palautuvat Bundle-resurssin entry-elementin sisällä.

Esimerkki Bundle resurssi-instanssista, jonka sisällä palautuu kaksi ajanvarausta Appointment-resursseissa ja niiden metatiedot Provenance-resursseilla:

{
    "resourceType": "Bundle",
    "id": "92685db0-1b58-4cea-b1fa-289e8ab58811",
    "type": "searchset",
    "total": 2,
    "entry": [
        {
            "resource": {
                "resourceType": "Appointment",
                ...
            }
        },
        {
            "resource": {
                "resourceType": "Provenance",
                ...
            }
        }, 
        {
            "resource": {
                "resourceType": "Appointment",
                ...
            }
        },
        {
            "resource": {
                "resourceType": "Provenance",
                ...
            }
        } 
    ]
}

Esimerkki vastaussanomasta, jossa välitetään tieto potilaan antaman luovutusluvan puuttumisesta, mikä vaikuttaa palautettavaan tulosjoukkoon.

{
    "resourceType": "Bundle",
    "id": "92685db0-1b58-4cea-b1fa-289e8ab58811",
    "type": "searchset",
    "total": 1,
    "entry": [
        {
            "resource": {
                "resourceType": "Appointment",
                ...
            }
        },
        {
            "resource": {
                "resourceType": "Provenance",
                ...
            }
        }, 
        {
            "resource": {
                "resourceType": "OperationOutcome",
                "id": "warning",
                "issue": [
                    {
                        "severity": "warning",
                        "code": "not-found",
                        "details": {
                            "text": "Luovutuslupa puuttuu"
                        }
                    }
                ]
            }
        }
    ]
}

Haku on onnistunut myös silloin, jos vastauksena ei palaudu yhtään Appointment- ja Provenance resurssi-instanssiparia. Tällöin hakutulosten määrä (total) on nolla.

Esimerkki Bundle resurssi-instanssista, jonka hakutulos on nolla (ei ole löytynyt hakuehtoja täyttäviä ajanvarauksia):

{
    "resourceType": "Bundle",
    "id": "073ce2b1-4c39-4cae-a479-ca59c8f74fef",
    "type": "searchset",
    "total": 0,
}

Vastaussanoma virhetilanteessa

Virhetilanteissa vastauksena palautuu HTTP virhestatuskoodi sekä HTTP bodyssa OperationOutcome resurssi-instanssi, jolla ilmaistaan tarkempi virhe. Potilastietovarannossa käytettävää OperationOutcome-resurssia ei ole profiloitu.

OperationOutcome-sivulla on kuvattu tarkemmin, miten Potilastietovaranto palauttaa virheilmoitukset OperationOutcome-resussilla.

Mitätöityjen ajanvarausten palautuminen hauissa

Mitätöidyt ajanvaraukset eivät palaudu normaaleissa hauissa (search-interaktiolla).

Asiakirjan korvauksen syy -luokituksen koodilla 4 mitätöidyt ajanvaraukset ovat haettavissa ainoastaan arkistonhoitajan käyttöliittymän kautta.

Asiakirjan korvauksen syy -luokituksen koodilla 2 mitätöidyt ajanvaraukset palautetaan, kun haetaan ajanvarausten kaikki versiot history-interaktiolla.

Alla on esimerkki mitätöidyn ajanvarauksen palautumisesta history-interaktion haussa, esimerkissä palautetaan ajanvaraus, jolle löytyy Potilastietovarannosta

  • Ajanvarauksen mitätöinti syykoodilla 2
  • Ajanvarauksen 2. versio
  • Ajanvarauksen 1. versio
{
    "resourceType": "Bundle",
    "type": "searchset",
    "entry": [
        {
            "fullUrl": (kertoo, mitä resurssia entry koskee)
            "resource": {
                "resourceType": "Provenance",
                -- Mitätöinnissä käytetty provenance, joka sisältää mitätöijän tiedot, mitätöinnin syyn jne. --
            },
            "request": {
                "method": "POST",
                "url": "Provenance"
            }
        },
        {
            "fullUrl": (kertoo, mitä resurssia entry koskee)
            "request": {
                "method": "DELETE",
                "url": "Appointment/ce5ea340-adfd-40f2-87d4-a25e4f8bf201"
            }
        },
        {
            "fullUrl": (kertoo, mitä resurssia entry koskee)
            "resource": {
                "resourceType": "Appointment",
                "id": "ce5ea340-adfd-40f2-87d4-a25e4f8bf201",
                -- resurssin 2. versio --
            },
            "request": {
                "method": "PUT",
                "url": "Appointment/ce5ea340-adfd-40f2-87d4-a25e4f8bf201"
            }
        },
        {
            "fullUrl": (kertoo, mitä resurssia entry koskee)
            "resource": {
                "resourceType": "Provenance",
                -- 2. version provenance --
            },
            "request": {
                "method": "POST",
                "url": "Provenance"
            }
        },
        {
            "fullUrl": (kertoo, mitä resurssia entry koskee)
            "resource": {
                "resourceType": "Appointment",
                "id": "ce5ea340-adfd-40f2-87d4-a25e4f8bf201",
                -- resurssin 1. versio --
            },
            "request": {
                "method": "POST",
                "url": "Appointment"
            }
        },
        {
            "fullUrl": (kertoo, mitä resurssia entry koskee)
            "resource": {
                "resourceType": "Provenance",
                -- 1. version provenance --
            },
            "request": {
                "method": "POST",
                "url": "Provenance"
            }
        }
    ]
}