Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
collapsetrue
{
  "time": "2021-12-01T05:50:00.92Z",
  "category": "dk.sds.nsp.audit.log.nxrg/iti-42",
  "audit": {
    "timestamp": "2021-12-01T06:50:00.894+01:00",
    "components": [
      {
        "component": "NXRG/ITI-42",
        "contexts": [
          {
            "context": "5912107379890312866.8220644980724288715.1638337800700",
            "information": [
              {
                "key": "CitizenId",
                "type": "SPI",
                "value": ""
              },
              {
                "key": "SubmissionSetInformation",
                "type": "RPI",
                "value": "{\"uniqueId\":\"5912107379890312866.8220644980724288715.1638337800700\"}"
              },
              {
                "key": "DoucmentEntryInformation",
                "type": "RPI",
                "value": "{\"entryUUid\":\"urn:uuid:5ea9015e-75f7-4cc5-85ff-079b56f36499\", \"uniqueId\":\"6660232118599018558.1142303413219772882.1638337800625\", \"replacesEntryUuid\":null}"
              },
              {
                "key": "Status",
                "type": "NPI",
                "value": "ERROR"
              },
              {
                "key": "Errors",
                "type": "RPI",
                "value": "{\"errorCode\":\"XDSRegistryMetadataError\", \"errorMessage\":null, \"codeContext\":\"External identifier value is missing: urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b3844 (patientId)\", \"location\":null, \"severity\":\"urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Error\"}"
              }
            ]
          }
        ]
      }
    ]
  },
  "access": {
    "code": 200,
    "duration": 17,
    "httpHeaders": {
      "Content-Type": "application/soap+xml; charset=UTF-8"
    },
    "httpHost": "localhost",
    "method": "POST",
    "path": "/nxrg/iti42",
    "query": "",
    "port": 8060,
    "protocol": "http",
    "reqSize": 8518,
    "resSize": 1221,
    "soapHeaders": {
      "w3Action": "urn:ihe:iti:2007:RegisterDocumentSet-b",
      "w3MessageID": "urn:uuid:215c930a-73c0-4a6f-84fe-0c24e3725ba7",
      "w3To": "http://localhost:8060/nxrg/iti42"
    },
    "threadId": "default task-1",
    "time": "2021-12-01T06:50:00.894+01:00",
    "stats": {
      "handlerDuration": 4,
      "RequestContentDuration": 0,
      "ResponseContentDuration": 0,
      "SecurityProtocolRequestDuration": 0,
      "SecurityProtocolResponseDuration": 0,
      "bufferAllocated": false,
      "usedBuffers": 2,
      "activeBuffersInPool": 2,
      "idleBuffersInPool": 0
    }
  }
}

Migreringstool

Migreringstoolet læser opentext data fra en Mariadb og producerer opdateringsscripts til indlæsning i NXRG databasen.

Migreringstoolet leveres som et Docker image og containeren kan startes som følger

Code Block
docker run --env migrationpath=/migrationoutput/ --volume /mymachine/output/run1:/migrationoutput registry.nspop.dk/components/nxrg-migration:snapshot

Migreringstoolet output'er SQL scripts. Outputsti til scripts kan sættes med en env variabel som vist ovenfor og volume mount til hostmaskinen som vist ovenfor.

Andre env, der kan sættes:

...

Migrering filen prefixes med tidsstempel per kørsel: Eksempel: 11_submissionset_20211020_150541_002.sql

Alle filer i samme kørsel vil have samme tidsstempel. Tidstemplet kan ses i log data.

1) Antal records der hermed håndteres er således migration_batchsize x migration_no_of_batches

Migreringsverifikationstool

Som beskrevet i NXRG - Design- og arkitekturbeskrivelse kan der efter en migrering foretages hhv

  • validering
  • verifikation

Disse to processer er implementeret som en del af NXRG og kan afvikles med følgende kommando

Code Block
docker run --env filepath=/migrationvalidation/ --volume /mymachine/migrationvalidation/run1:/migrationvalidation registry.nspop.dk/components/nxrg-migration-verification:snapshot validation
docker run --env filepath=/migrationverification/ --volume /mymachine/migrationverification/run1:/migrationverification registry.nspop.dk/components/nxrg-migration-verification:snapshot verification

validation - lave sql'er mod NXRG database:

  • output'er lister med CPR numre i angivet sti
    • cprAssociations.txt
    • cprDocumententries.txt
    • cprSubmissionset.txt
    • cprTop100.txt
  • output'er resultater til std out samt en fil i den angivet sti
    • result.txt

verification - laver ITI-18 kald mod NXRG og Open Text registry:

  • indlæser liste med CPR numre til anvendelse i kald fra angivet sti
    • cpr.txt (på samme format som cprDocumententries.txt eller cprTop100.txt (output af validation kan anvendes med omdøbning af fil til cpr.txt))
  • output'er sammenligninger til std out samt to filer i den angivet sti
    • result.txt
    • resultCount.csv - mulighed for hurtigere søgning på forskelle ved at åbne  som regneark og anvende funktioner heri
  • output'er request og response kald indhold
    • 0101010304_nxrg_request.txt
    • 0101010304_nxrg_response.txt
    • 0101010304_opentext_request.txt
    • 0101010304_opentext_response.txt
    • etc

Sti'er kan sættes med en env variabel som vist ovenfor og volume mount til hostmaskinen som vist ovenfor.

Env, der kan sættes i forbindelse med validering:

...

Env, der kan sættes i forbindelse med verifikation:

...

Replaytool

Som beskrevet i NXRG - Design- og arkitekturbeskrivelse kan der inden idriftsættelse køres en række "anvender integrationstest", som er replay af en række "gamle" open text request. Efter kørsel kan response sammenlignes med det svar som i sin tid blev givet af open text.

Disse er implementeret som en del af NXRG og kan afvikles med følgende kommando

Code Block
docker run --network=host --env filepath=/replay/ --env replay_file=/replay/logs --volume /mymachine/migrationvalidation/run1:/replay registry.nspop.dk/components/nxrg-migration-verification:snapshot replay

replay - laver en række kald mod NXRG og vurderer resultatet i forhold til tidligere resultat. Desuden laver den en output fil, som indeholder information om forventet og faktisk rasultat, som man kan bruge til at vurdere forskellene ud fra.

  • filePath skal pege ned den folder, hvor output af kørslen skal placeres.
    • result.txt: alle id'er og om det gik godt eller eller ej
    • result.csv: resultatet med flere detaljer (se nedenfor)
  • replay_file skal pege på de request/ response som skal genspilles
    • skal være en specifik fil eller et bibliotek med filer, hvor request og response er
    • format skal være som filen testlog18.txt, der findes i NXRG projektet under modulet nxrg-migration-verification i resources

Env, der kan sættes i forbindelse med replay:

...

Output i result.csv:

...

Der er en række kombinationer af svar fra kaldende, som vurderes at være ok. F.eks. når NXRG ikke kan finde et specifik dokument i forbindelse med en replace.

Dette er implementeret i klassen StatusCodeCombination, hvor kombinationer kan læses for nu.

...

Er ForventetFejlkodeAntal og FaktiskFejlkodeAntal ens?

FejlKodeAntal er de antal fejl, som er blevet returnernet. 

...

ForventetFejlkode1

ForventetFejlContext1

ForventetFejlLocation1

ForventetFejlSeverity1

...

FaktiskFejlkode1

FaktiskFejlContext1

FaktiskFejlLocation1

FaktiskFejlSeverity1

...



Migrering

Migrering er ikke længere aktuelt, og indholdet der indeholder migreringstool - og relaterede tools til verification etc - er flyttet til "Yderligere dokumentation - Migration"

Filen kan med fordel åbnes i et regneark, og funktioner som autofilter og pivot tabeller anvendes til vurdering af dens indhold.

Ved vurdering af resultat:

  • Resultat kolonnen bør være "OK"
  • ForventetFejlkodeAntal og FaktiskFejlkodeAntal bør kun indeholde værdien 0 eller 1 (se ovenfor)
  • Kig på Operation, ForventetFejl*  og FaktiskFejl* og vurder

Datareperationstool

For at reparere på forkerte data er der lavet et reperationstool.

Code Block
docker run --network=host --env cpr_file=/input/cprinput.txt --env nxrg_data_url=jdbc:mysql://localhost:3307/nxrg --env nxrg_data_user=nxrg --env nxrg_data_pass=nxrg --volume /mymachine/cprinput.txt:/input/cprinput.txt registry.nspop.dk/components/nxrg-migration-verification:snapshot repair

Env, der skal sættes i forbindelse med kørsel:

...