Migreringsrapport

Etter hvert som opplastede filer blir behandlet, skrives det til en migreringsrapport i databasen. Når alle opplastede filer er ferdigbehandlet, bør man sjekke migreringsrapporten for å se om noe gikk feil underveis.

Migreringsrapporten kan hentes ut med gjennom kall til SFM DatadelingsAPI. Løsningen er basert på en Basic resource som er en FHIR-standard resource, og som tar en query-parameter.

SFMs rapport-query heter MIGRATION_REPORT_01 og har også støtte for fra-og-med-dato og til-og-med-dato.

Et kall som henter migrerte data mellom 1. og 5. april vil da kunne se ut som dette:

https://datashare.test2.forskrivning.no/Basic?_query=MIGRATION_REPORT_01&date=ge2022-04-01&date=le2022-04-05

Mengden informasjon som returneres kan i tillegg styres med parameter patientLogLevel:

Information:
Return Information, Warning and Error log entries relating to individual patients.

Warning:
Return only Warning and Error log entries relating to individual patients, skip Information entries.

Error:
Return only Error log entries relating to individual patients, skip Information and Warning entries.

Rapporten returneres som et Base64Binary-kodet dataelement. Dette dataelementet kan dekodes i eksempelvis Notepad++.

Rapporten inneholder først et sammendrag (dvs. et sammendrag pr. SessionId som rapporten omfatter), og så detaljer om importen, og evt. advarsler og feil.

Det er lagt til nye felter i MigrationReportSummary i migreringsrapporten ("unprocessed" og "unprocessedWithErrors"). Det betyr følgende:

  • Unprocessed: En fil som venter på å bli behandlet.

  • UnprocessedWithErrors: En fil som er blitt forsøkt behandlet, men feilet på en måte som kan løses automatisk ved en retry. Dette betyr at filer i denne statusen kan senere blir oppdatert til ImportedWithoutWarnings eller ImportedWithWarnings, men hvis feilen ikke løser seg automatisk så blir de stående i UnprocessedWithErrors status.

  • Failed: En fil som er blitt forsøkt behandlet, men feilet på en måte som ikke kan løses automatisk ved en retry.

Eksempel på starten på en rapport:

{
        "SessionId": "c141e942-9d4a-4c69-b392-1b74d779f290",
        "SessionStart": "2022-04-11T10:53:53.6915401+02:00",
        "SessionEnd": "2022-04-11T10:54:01.9649241+02:00",
        "MigrationReportSummary": {
            "Organizations": {
                "ImportedWithoutWarnings": 0,
                "ImportedWithWarnings": 0,
                "Failed": 0
            },
            "Patients": {
                "ImportedWithoutWarnings": 3,
                "ImportedWithWarnings": 0,
                "Failed": 0
            },
            "Reports": {
                "ImportedWithoutWarnings": 0,
                "ImportedWithWarnings": 0,
                "Failed": 0
            },
            "Unknowns": {
                "ImportedWithoutWarnings": 0,
                "ImportedWithWarnings": 0,
                "Failed": 0
            }
        },
        "MigrationReportDetails": {
            "MigrationReportOrganizations": [],
            "MigrationReportPatients": [
                {
                    "Id": "e37afe6f-af30-43f2-a5d6-1e4fe17af252",
                    "MigrationReportFileId": "2b49834b-59f4-4fb3-ba59-a8fa27806376",
                    "OperationType": "Create",
                    "Message": "Processing Element: Meldinger",
                    "TableName": null,
                    "KeyValues": null,
                    "OperationDateTime": "2022-04-11T10:53:54.8091534+02:00",
                    "LogLevel": "Information"
                },
                {
                    "Id": "3bae166b-0f05-4403-9409-657fd198a539",
                    "MigrationReportFileId": "2b49834b-59f4-4fb3-ba59-a8fa27806376",
                    "OperationType": "Create",
                    "Message": "Processing Element: Behandlinger",
                    "TableName": null,
                    "KeyValues": null,
                    "OperationDateTime": "2022-04-11T10:53:55.6207104+02:00",
                    "LogLevel": "Information"
                },