Detta dokument beskriver testsviten för GetECGOutcome 1.0. Testsviten innehåller ett antal testfall som kan användas för att verifiera implementationen innan integrationen med den nationella tjänsteplattformen.
Testsviten innehåller ett antal testfall som kan användas för att samla in information om anslutande system. Denna information kan sedan ligga till grund för ett underlag för godkännande.
Ett testfall med ej förväntat utfall ska med andra ord ses som en informationskälla för den avvikelse som ska rapporteras i självdeklarationen.
I dessa fall rekommenderas mer omfattande tester och en utförlig dokumentation av vad man observerat, för att informationen redan i första granskningsrundan skall vara tillräcklig för beslut.
Detta underlag för godkännande kommer att granskas av ICC på Inera som rapporterar avvikelser. Dessa granskas därefter av Ineras avvikelsegrupp. Utkomsten av denna granskning kan leda till en eller flera avvikelser av tre olika typer där en avvikelse kan anses vara:
Innan man kör testfallen i SoapUI så måste den data som skickas med i anropen anpassas utifrån det system som man vill testa. Detta görs genom att ändra i filen data.xml enligt nedan.
Filen är i XML-format och i början finns en sektion som heter "globaldata". Här anger man den konfiguration som kommer att användas av alla testfall.
Varje element i "globaldata" kan omdefinieras för ett specifikt testfall vid behov. Följande element är globala:
De parametrar man anger för ett specifikt testfall kompletterar och/eller omdefinierar de parametrar som anges i "globaldata".
Det betyder att både parametrar från "globaldata" och det specifika testfallets sektion i filen används för det aktuella testfallet.
OBS! Om en parameter med samma namn definieras både i "globaldata" och specifikt för testfallet, så kommer värdet från testfalls-sektionen att användas.
Ett exempel kan vara "patientId". Denna definieras i "globaldata", eftersom det är troligt att det mesta av testdatan kommer att röra samma patient.
Men för vissa testfall vill man kunna använda en annan patient och för dessa testfall definierar man detta genom att ta bort kommentars-markeringen runt parametern "patientId" i testfallets sektion.
Glöm inte att spara data.xml efter att du har ändrat i den.
- 1.1.1 Personnummer
Filtrering. Verifierar att resultatet endast innehåller poster för given patient.
- 1.1.2 Samordningsnummer
Filtrering. Testfall för filtrering på samordningsnummer. Ersätt patientId med det samordningsnummer som du vill filtrera på.
Testfalls-specifika parametrar
- 1.1.3 Lokalt reservnummer
Filtrering. Testfall för filtrering på reservnummer. Ersätt patientId med det reservnummer som du vill filtrera på och ersätt patientIdType med lokalt definierat OID för reservnummer.
Testfalls-specifika parametrar
- 1.2 Tidsfiltrering
Följande tester på tidsfiltrering består av flera steg.
- Anrop utan filtrering.
- Sökintervall beräknas (se respektive testfall).
- Anrop med tidsfiltrering för varje beräknat sökintervall. Resultatet jämförs med förväntat resultat.
För bra testning på dessa punkter är en varierad testdata avseende tidpunkter viktig.
Om möjligt bör poster skapas så att de olika tidsfälten har olika datum.
- 1.2.1 DatePeriod
Tidsfiltrering. Sökning sker på alla datum i elementen header.authorTime, resultTime och referral.authorTime i det ofiltrerade svaret.
-
header.authorTime är tidpunkt när dokumentet skapades.
-
resultTime är svarstidpunkt (när svaret skickas till framställaren av vårdbegäran).
-
referral.authorTime är tidpunkt när vårdbegäran framställdes.
- 1.2.2 DatePeriod intervall
Tidsfiltrering. Sökning sker på slumpvisa intervall mellan första och sista datum som förekommer i det ofiltrerade svaret.
numberOfIntervals anger antal intervall som skapas.
Testfalls-specifika parametrar
- 1.2.3 DatePeriod tomt svar
Tidsfiltrering. Sökning sker på datum före alla tidpunkter i det ofiltrerade svaret, så att förväntat svar är tomt (inga informationsposter).
- 1.2.4 DatePeriod manuell
Tidsfiltrering. Sökintervall sätts manuellt. Detta kan användas för utforskade testning och felsökning.
datePeriodStart är sökintervallets starttidpunkt (format ÅÅÅÅMMDD).
datePeriodEnd är sökintervallets sluttidpunkt (format ÅÅÅÅMMDD).
Testfalls-specifika parametrar
- datePeriodStart
- datePeriodEnd
- 1.2.5 DatePeriod start
Tidsfiltrering. Sökning sker på slumpvisa intervall mellan första och sista datum som förekommer i det ofiltrerade svaret.
numberOfIntervals anger antal intervall som skapas.
Testfalls-specifika parametrar
- 1.2.6 DatePeriod end
Tidsfiltrering. Sökning sker på slumpvisa intervall mellan första och sista datum som förekommer i det ofiltrerade svaret.
numberOfIntervals anger antal intervall som skapas.
Testfalls-specifika parametrar
- 1.3 CareUnit
Filtrering. Verifierar att resultatet endast innehåller poster för given vårdenhet.
Testfalls-specifika parametrar
- 1.4 SourceSystem
Filtrering. Verifierar att resultatet endast innehåller poster för givet källsystem.
- 1.5 CareContact
Filtrering. Verifierar att resultatet endast innehåller poster för given vårdkontakt.
careContactId är vårdkontaktens unika id.
Testfalls-specifika parametrar
- 1.7 SoapFault
Verifierar att resultatet är ett Soapfault. Detta testfall kräver att tjänsteproducenten skapar förutsättningar för ett internt fel att uppstå.
Manuell kontroll av svarsmeddelandet krävs för att säkerställa att meddelandet inte innehåller personuppgifter eller att medföljande log-id är spårbart till patienten.
Exempel kan vara att man stänger av kopplingen mot databas.
- 1.8 NonExisting Patient
Verifierar att tjänsteproducenten returnerar ett tomt resultat istället för Soap Fault, om patienten är okänd i systemet.
- 1.9 NonExisting CareContact
Verifierar att tjänsteproducenten returnerar ett tomt resultat istället för Soap Fault, om vårdkontakten är okänd i systemet.
careContactId sätts till något som inte motsvarar en existerande vårdkontakts unika id.
Testfalls-specifika parametrar
- 2.1 Encoding_HeaderProlog
Verifierar att
- Header-attributet "Content-type" har, om attributet finns, en teckenuppsättning som är satt till UTF-8 eller UTF-16
- Attributet "XML Prolog" har, om attributet finns, en teckenuppsättning som är satt till UTF-8 eller UTF-16
- Om båda attributen finns så ska de vara lika
- 2.2 Encoding_SpecialCharacters
Verifierar att responsen innehåller en sträng med specialtecken.
Denna sträng behöver läggas upp på en post i källsystemet och bör innehålla så många specialtecken som möjligt.
Testfalls-specifika parametrar
- 3.1 VG_VE
Verifierar att alla returnerade poster innehåller elementen healthcareProfessionalCareUnitHSAId och healthcareProfessionalCareGiverHSAId, som krävs för PDL-loggning.
- 3.2 AuthorTime
Verifierar att en av de returnerade posterna innehåller tidpunkt då informationen registrerades. Element authorTime.
- 4.1 ApprovedForPatient_true
Verifierar att tjänsteproducenten kan returnera en post som talar om att informationen får delas till patient. Element approvedForPatient.
- 4.2 ApprovedForPatient_false
Verifierar att tjänsteproducenten kan returnera en post som talar om att informationen inte får delas till patient. Element approvedForPatient.
- 5.1 signed
Verifierar att tjänsteproducenten kan returnera en signerad post. Element legalAuthenticator.
- 5.2 unsigned
Verifierar att tjänsteproducenten kan returnera en osignerad post. Element legalAuthenticator.
- 5.3 locked
Verifierar att tjänsteproducenten kan returnera en post som har låsts av systemet efter att en viss tid har förflutit utan att någon har signerat den. Element legalAuthenticator.
- 5.4 resultReport
Verifierar att tjänsteproducenten kan returnera en post som beskriver utlåtandet kring undersökningsresultatet. Element resultReport.
- 5.5 resultTime
Verifierar att tjänsteproducenten kan returnera en post med element resultTime som är svarstidpunkt. Tidpunkt då svar skickas till framställaren av vårdbegäran och ev kopiemottagare. För EKG anges här tidpunkten då EKG-undersökningen utfördes.
- 5.6 typeOfResult PREL
Verifierar att tjänsteproducenten kan returnera en post som beskriver vilket typ av svar det är. Värdet PREL betecknar Preliminärsvar.
- 5.7 typeOfResult DEF
Verifierar att tjänsteproducenten kan returnera en post som beskriver vilket typ av svar det är. Värdet DEF betecknar Definitivsvar.
- 5.8 typeOfResult TILL
Verifierar att tjänsteproducenten kan returnera en post som beskriver vilket typ av svar det är. Värdet TILL betecknar Tilläggssvar.
- 5.9 pacemaker_true
Verifierar att tjänsteproducenten kan returnera en post som berättar om patienten har en pacemaker (och detta är inställt vid analys). Elementet pacemaker = "true".
- 5.10 pacemaker_false
Verifierar att tjänsteproducenten kan returnera en post som berättar om patienten saknar en pacemaker (och detta är inställt vid analys). Elementet pacemaker = "false".
- 5.11 manufacturer
Verifierar att tjänsteproducenten kan returnera en post med producerande utrustnings tillverkare. Element modalityData.manufacturer
- 5.12 modelName
Verifierar att tjänsteproducenten kan returnera en post med producerande utrustnings modellnamn. Element modalityData.modelName
- 5.13 examinationStatus Initierad
Verifierar att tjänsteproducenten kan returnera en post med text som anger åtgärdens status. Element examinationStatus = "Initierad"
- 5.14 examinationStatus Planerad
Verifierar att tjänsteproducenten kan returnera en post med text som anger åtgärdens status. Element examinationStatus = "Planerad"
- 5.15 examinationStatus Tidbokad
Verifierar att tjänsteproducenten kan returnera en post med text som anger åtgärdens status. Element examinationStatus = "Tidbokad"
- 5.16 examinationStatus Uppskjuten
Verifierar att tjänsteproducenten kan returnera en post med text som anger åtgärdens status. Element examinationStatus = "Uppskjuten"
- 5.17 examinationStatus Annullerad
Verifierar att tjänsteproducenten kan returnera en post med text som anger åtgärdens status. Element examinationStatus = "Annullerad"
- 5.18 examinationStatus Pågående
Verifierar att tjänsteproducenten kan returnera en post med text som anger åtgärdens status. Element examinationStatus = "Pågående"
- 5.19 examinationStatus Avvakta
Verifierar att tjänsteproducenten kan returnera en post med text som anger åtgärdens status. Element examinationStatus = "Avvakta"
- 5.20 examinationStatus Avbruten
Verifierar att tjänsteproducenten kan returnera en post med text som anger åtgärdens status. Element examinationStatus = "Avbruten"
- 5.21 examinationStatus Avklarad
Verifierar att tjänsteproducenten kan returnera en post med text som anger åtgärdens status. Element examinationStatus = "Avklarad"
- 5.22 examinationStatus Inaktuell
Verifierar att tjänsteproducenten kan returnera en post med text som anger åtgärdens status. Element examinationStatus = "Inaktuell"
- 5.23 examinationStatus Makulerad
Verifierar att tjänsteproducenten kan returnera en post med text som anger åtgärdens status. Element examinationStatus = "Makulerad"
- 5.24 tAxis
Verifierar att tjänsteproducenten kan returnera en post med strukturerad mätdata för ekg-tagningen. Element tAxis = T-vektor i grader .
- 5.25 qtCorrected
Verifierar att tjänsteproducenten kan returnera en post med strukturerad mätdata för ekg-tagningen. Element qtCorrected.value = Korrigerat QT-intervall i sekunder.
- 5.26 qt
Verifierar att tjänsteproducenten kan returnera en post med strukturerad mätdata för ekg-tagningen. Element qt.value = QT-intervall i sekunder.
- 5.27 qrsAxis
Verifierar att tjänsteproducenten kan returnera en post med strukturerad mätdata för ekg-tagningen. Element qrsAxis.value = QRS-vektor i grader.
- 5.28 pr
Verifierar att tjänsteproducenten kan returnera en post med strukturerad mätdata för ekg-tagningen. Element elementet pr.value = PR-intervall i sekunder.
- 5.29 pAxis
Verifierar att tjänsteproducenten kan returnera en post med strukturerad mätdata för ekg-tagningen. Element pAxis.value = P-vektor i grader.
- 5.30 st
Verifierar att tjänsteproducenten kan returnera en post med strukturerad mätdata för ekg-tagningen. Element st.stLevel = Beskriver ST-nivå för en avledning i millimeter.
- 5.31 heartRate
Verifierar att tjänsteproducenten kan returnera en post med strukturerad mätdata för ekg-tagningen. Element heartRate.value = Hjärtfrekvens i slag per minut (bpm).
- 5.32 ecgDicomData
Verifierar att tjänsteproducenten kan returnera en post med bifogat DICOM-objekt
Bilden sparas av testet med det filnamn som anges av outputFileName. Filen måste granskas manuellt för att säkerställa att innehållet är det förväntade.
ecgDicomData.dicomValue med ett inbäddat base64-kodat DICOM-objekt
Testfalls-specifika parametrar
- 5.33 ecgData-value
Verifierar att tjänsteproducenten kan returnera en post med binärdata i bifogat statiskt objekt är korrekt base64-kodad
Bilden sparas av testet med det filnamn som anges av outputFileName. Filen måste granskas manuellt för att säkerställa att innehållet är det förväntade.
Element ecgData.value med ett inbäddat base64-kodat statiskt objekt enligt HL7 MediaType.
Testfalls-specifika parametrar
- 5.34 ecgData-reference
Verifierar att tjänsteproducenten kan returnera en post med URL till en extern dokumentation
Länken måste kontrolleras manuellt för att säkerställa att den länkade bilden är korrekt.
Element ecgData.reference med en länk till statiskt objekt enligt HL7 MediaType.
- 5.35 anamnesis
Verifierar att tjänsteproducenten kan returnera en post som anger bakgrund till frågeställning (del av remiss som ligger till grund för undersökningen). Element referral.anamnesis
- 5.36 referralReason
Verifierar att tjänsteproducenten kan returnera en post som anger frågeställning (del av remiss som ligger till grund för undersökningen). Element referral.referralReason
- 5.37 attested_included
Verifierar att tjänsteproducenten kan returnera en post med information om den som vidimerat mottaget svar på vårdbegäran. Element referral.attested
- 5.38 attested_excluded
Verifierar att systemet kan utelämna elementet referral.attested (för ej vidimerat svar).
- 5.39 ecgRecording_accountableHealthcareProfessional
Verifierar att tjänsteproducenten kan returnera en post med ansvarig hälso- och sjukvårdsperson för undersökningsunderlaget. Element ecgRecording.accountableHealthcareProfessional
- 6.1 Loadtest
6.1.1 Grund
Syftet med testet är dels att verifiera att systemet kan hantera minst 10 samtidiga trådar, dels att skapa sig en bild av systemets prestanda. Testet är designat att ta max 3 minuter.
I SLA-kapitlet i självdeklarationen, under "Övrig kommentar", ange genomsnittlig responstid. Ta värdet som visas i sista raden i kolumn "avg" och dela med antal anrop (oftast 2). Ange sedan värdet med enhet millisekunder (ms).
6.1.2 Uthållighet
Syftet med testet är att undersöka prestanda hos systemet över längre tid (30 minuter). I SLA-kapitlet i självdeklarationen, under "Övrig kommentar", notera om testet gick att genomföra utan problem. Om inte, notera hur lång tid det var möjligt att köra.
Testfalls-specifika parametrar
- 6.2 Recovery
6.2.1 Återhämtning
Syftet med testet är att utsätta systemet för maximal last och att verifiera att systemet automatiskt återhämtar sig. För att kontrollera att systemet har kunnat återhämta sig efter maximal last så rekommenderas att köra testfall "1.1.1 Personnummer" för att se att systemet svarar. I SLA-kapitlet i självdeklarationen, under "Övrig kommentar", notera om systemet kunde återhämta sig efter att ha utsatts för maximal last. Ange även hur många trådar som testet avslutades med.
Testfalls-specifika parametrar
- 7.1 CareUnit_Blacklisted
Filtrering. Verifierar att tjänsteproducenten kan filtrera resultatet baserat på tjänstekonsumentHSAId (HTTP-headern x-rivta-original-serviceconsumer-hsaid).
Undersök och jämför det ofiltrerade svaret från producenten med det senare svaret vars begäran använt ett tjänstekonsumentHSAId på vilket producenten utfört bortfiltrering av vårdenhet,
antalet poster skall i det senare svaret vara färre och parametern filterString skall då inte finnas i det filtrerade svaret. Testfallet är ej applicerbart för system som inte implementerat denna typ av filtrering.
Testfalls-specifika parametrar
- httpHeaderHsaId2
- filterString
- 7.2 Consumer_Blacklisted
Filtrering. Verifierar att tjänsteproducenten returnerar tomt svar för bortfiltrerat tjänstekonsumentHSAId (HTTP-headern "x-rivta-original-serviceconsumer-hsaid").
Undersök och jämför det ofiltrerade svaret från producenten med det senare svaret vars begäran använt ett tjänstekonsumentHSAId på vilket producenten utfört bortfiltrering av konsument,
Testfallet är ej applicerbart för system som inte implementerat denna typ av filtrering.
Testfalls-specifika parametrar
- 7.3 ConsumerIndependent
Verifierar att tjänsteproducenten returnerar samma svar oavsett vilket tjänstekonsumentHSAId (HTTP-headern "x-rivta-original-serviceconsumer-hsaid") som anges.
Testfalls-specifika parametrar