eLab posistemės integracijos dokumentacija
0.3.18 - versija Lithuania flag

eLab posistemės integracijos dokumentacija - Local Development build (v0.3.18) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Validacijos taisyklės

Validacijos taisyklės

Identifikatorius Pavadinimas Kada suveikia validacija Realizacija Klaidos pranešimas ELAB integratoriams Klaidos pranešimas LT naudotojams Platesnis aprašymas
L1 E200/a "entered in error" dokumente ServiceRequest būsena turi atstatyta į "active" Kai sukuriamas/atnaujinamas ServiceRequest resursas Jei ServiceRequest įgauna būseną "completed", tikrinama, ar ServiceRequest turi validų diagnosticReport (t.y. report'ą, kuris neturi statuso "entered-in-error" ServiceRequest can not be completed when DiagnosticReport is cancelled or entered-in-error Turi būti atstatyta ankstesnė užsakymo būsena ServiceRequest .status=active, jeigu teikiamos E200/a Composition.status=entered in error ir ServiceRequest .status= "completed" prieš pateikiant E200/a dokumentą.
L2 E200/a final dokumente DiagnosticReport turi būti final Kai sukuriamas/atnaujinamas DiagnosticReport resursas DiagnosticReport.status = Composition.status
Jei DiagnosticReport.status = amended , Composition .status = amended
Jei DiagnosticReport.status = preliminary , Composition .status = preliminary
Jei DiagnosticReport.status = final, Composition .status = final
Jei DiagnosticReport.status = entered-in-error, Composition.status = entered-in-error
Status mismatch: If DiagnosticReport is 'preliminary', 'entered-in-error' or 'amended', Composition must match. If it's 'final', Composition must be 'final' or 'preliminary'. Jeigu E200/a Composition.status=final, DiagnosticReport.status=final Patikrinimas statusų integralumo Composition.status ir DiagnosticReport.status
L3 E200/a final dokumente ServiceRequest būsena turi būti completed. Kai sukuriamas/atnaujinamas Composition resursas Jei Composition įgauna statusą "final", surenkami visi ServiceRequest'ai iš composition.order section ir užtikrinama, kad jų visų statusas būtų "completed" Given status 'final', for Composition, ServiceRequest status must be 'completed' Jeigu E200/a Composition.status=final, turi būti ServiceRequest.code=completed Kadangi lieka vienas E200 composition tai reikaingas tik vienas statusų checkas
L4 Netinkama dokumente nurodyto atvykimo (Encounter) būsena Kai sukuriamas/atnaujinamas Composition resursas Kreipiamasi į "ar_aktyvus_encounteris" procedūrą paduodant patientEspbiId, encounterId, tėvinę custodianOrganizationEspbiId Active Encounter not found for custodian's Organization and Patient. Jeigu esama būsena Encounter.status="cancelled" arba "finished", toks Encounter negali būti nurodytas dokumente Composition.encounter. Jeigu esama būsena Encounter.status="cancelled" arba "finished", toks Encounter negali būti nurodytas dokumente Composition.encounter.
L5 Ėminio gavimo data negali būti ankstesnė už Ėminio paėmimo datą Kai sukuriamas/atnaujinamas Specimen resursas specimen.collectedTime before specimen.receivedAtDate Specimen collection date must be before specimen received date. Ėminio gavimo data ankstesnė už Ėminio paėmimo datą: DiagnosticReport.Specimen.receivedTime < Specimen.collection.collected
L6 Ėminio paėmimo data turi būti vėlesnė arba lygi tyrimo užsakymo datai. Kai sukuriamas/atnaujinamas Specimen resursas specimenCollectedDate.before(serviceRequest.getAuthoredOnElement()) Specimen collection date must be after service request authored date. Ėminio paėmimo data ankstesnė už skyrimo datą (Specimen.collection.collected < ServiceRequest.authoredOn ) Specimen.collection.collected turi būti >= ServiceRequest.authoredOn
L7 Pateikiamame preliminary arba final dokumente Observation resurso būsena turi būti "final" Kai sukuriamas/atnaujinamas Composition resursas Jeigu Composition.status=final ARBA Composition.status=preliminary, užtikrinama, kad visų Observation.status=final Given status 'final', 'preliminary' for Composition, Observation statuses must also be 'final' Jeigu Composition.status=final ARBA Composition.status=preliminary, turi būti Observation.status=final Jeigu Composition.status=final ARBA Composition.status=preliminary, turi būti Observation.status=final
L8 Turi sutapti dokumento ir dokumente kuriamo arba naudojamo resurso pacientas Kai sukuriamas/atnaujinamas Composition resursas Tikrinama, ar kompozicijoje, diagnosticReport, specimen ir serviceRequest visur nurodytas tas pats pacientas Resources have mismatched patients. Dokumente nurodytas pacientas (Composition.subject) ir dokumente sukurtiems arba referuojamiems resursams, kuriems pagal resurso aprašymą nurodomas pacientas (ServiceRequest, DiagnosticReport) turi būti nurodytas tas pats pacientas (Patient resursas). Dokumentui nurodytas pacientas (Composition.subject) ir dokumente sukurtiems arba referuojamiems resursams, kuriems pagal resurso aprašymą nurodomas pacientas (ServiceREquest, DiagnosticReport) turi būti nurodytas tas pats pacientas (Patient resursas).
L9 Tyrimo atlikimo data negali būti ankstesnė už mėginio gavimo datą Kai sukuriamas/atnaujinamas DiagnosticReport resursas specimen.received data anksčiau nei diagnosticReport.effective data Specimen retrieval date must be before diagnostic report date. Tyrimo atlikimo data ankstesnė už mėginio gavimo datą ( DiagnosticReport.effective< DiagnosticReport.Specimen.receivedTime ). DiagnosticReport.Specimen.receivedTime turi būti < DiagnosticReport.effective
L10 Tyrimo atsakymo sukūrimo data turi būti ne ankstesnė už tyrimo atlikimo datą Kai sukuriamas/atnaujinamas DiagnosticReport resursas Tikrinama, ar visų Observation data yra vėlesnė nei DiagnosticReport data DiagnosticReport date must be before Observation date. Kompozicijos sukūrimo data (Composition.date) ankstesnė už tyrimo atlikimo datą (DiagnosticReport.effective) arba ankstesnė už mėginio gavimo datą (DiagnosticReport.issued)
L11 Jei ServiceRequest turi sukurtą DiagnosticReport, leidžiama keisti tik jo būseną Kai atnaujinamas ServiceRequest resursas Tikrinama, ar ServiceRequest turi validų diagnosticReport (t.y. report'ą, kuris neturi statuso "entered-in-error". Jei taip - tikrinama, ar atnaujinamas tik statusas Only status update is allowed for ServiceRequest when it has DiagnosticReport. Jei ServiceRequest turi sukurtą DiagnosticReport, leidžiama keisti tik jo būseną. Kitų duomenų keisti negalima. Jei ServiceRequest turi sukurtą DiagnosticReport, leidžiama keisti tik jo būseną. Kitų duomenų keisti negalima.
L12 Neteisinga lauko iš klasifikatoriaus reikšmė Kai sukuriamas/atnaujinamas Observation resursas Tikrinama, ar egzistuoja terminologijoje observation.code ir observation.method reikšmės Observation code concept (in method or code) does not exist. Nurodyta lauko reikšmė neegzistuoja šio lauko reikšmių klasifikatoriuje
L13 Turi sutapti atvykimą registravusi ir dokumentą teikianti SPĮ Kai sukuriamas/atnaujinamas Composition resursas Tikrinama, ar DiagnosticReport.performer organizacijos JAR kodas sutampa su Composition.custodian organizacijos JAR kodu. (JAR, nes tada sutaps ir tėvinės įstaigos ir padaliniai) DiagnosticReport and Composition organization does not match. Composition.custodian->Organization turi būti nurodyta tos pačios SPĮ ta pati arba vėlesnė versija kaip ir susietame atvykimo duomenų rinkinyje Composition.encounter->Encounter.serviceProvider->Organization
L14 Turi sutapti dokumentui ir dokumente kuriamam resursui nurodytas atvykimas Kai sukuriamas/atnaujinamas Composition resursas Tikrinama, ar composition.encounter sutampa su diagnosticReport.encounter Composition encounter must match DiagnosticReport's encounter. Nesutampa dokumente (Composition.encounter) ir dokumento resurse (DiagnosticReport) nurodytas atvykimas. Encounter turėtų sutapti
L15 Organizacijos aktyvumo tikrinimas Kai sukuriamas/atnaujinamas Composition resursas Gaunama organizacija iš DB ir tikrinama, ar jos reiškmė "active" yra true Composition custodian must be an active organization Dokumente nurodyta organizacija yra neaktyvi. Dokumentą teikiančios įstaigos informacija yra pateikiama dokumente Composition.custodian->Organization. Organization resurse (žiūrima paskutinė resurso versija) turi būti požymis: <active value="true"/>.
L16 Autorius neturi galiojančio įdarbinimo įstaigoje Kai sukuriamas/atnaujinamas Composition resursas Gauname specialistą iš ESPBI paduodami composition.author specialisto espbi id ir composition.custodian organization id. tikrinamos p_darbo_pradzia ir p_darbo_pabaiga datos Composition author is not employed in custodian organization. Dokumento autorius nurodytoje įstaigoje neturi galiojančio įdarbinimo. practitioner.Organization = custodian.organization
L17 Autorius neturi galiojančio įdarbinimo darbo vietoje Kai sukuriamas/atnaujinamas Composition resursas Paimamas practitioner resursas iš composition.author, gaunamas specialistas iš ESPBI ir tikrinamos p_darbo_pradzia ir p_darbo_pabaiga datos Composition author is not currently employed. Dokumento autorius nurodytoje darbo vietoje neturi galiojančio įdarbinimo.
L18 Autorius neturi galiojančios profesinės kvalifikacijos Kai sukuriamas/atnaujinamas Composition resursas gaunamas composition.author specialistas iš ESPBI. Kreipiamasi į ESPI procedūrą "spec_kvalifikacijos", paduodami autoriaus practitionerId ir autoriaus organizationId. Tikrinama, ar yra bent viena kvalifikacija, kurios period_start yra anksčiau nei "dabar" ir period_end yra null, arba vėliau nei "dabar" Composition author does not have active qualification in specified organization. Dokumento autorius nurodytoje darbo vietoje neturi galiojančios nurodytos profesinės kvalifikacijos (licencijos).
L19 Dokumentą teikiantis asmuo gali teikti tik savo įstaigos dokumentą Kai sukuriamas/atnaujinamas Composition resursas Gaunamas specialistas iš AUTH. Tikrinama, ar autentifikuoto specialisto espbi id sutampa su autoriaus specialisto espbi id Composition author does not match authenticated user. Teikiamas dokumentas ir teikėjas (requestor_id) priklauso skirtingiems juridiniams asmenims. Dokumentą į ESPBI teikiančio asmens informacija neatsispindi teikiamo dokumento turinyje. Ji yra pateikiama pranešimo į ESPBI IS antraštėje (header) kaip laukas requestor_id. Dokumentą teikiantis asmuo gali teikti tik savo įstaigos dokumentą. Tikrinama, ar RequestorID.organization = composition.custodian
L20 Užsakymas negali būti atšauktas, jei laboratorija pasiėmė jį vykdymui Kai sukuriamas/atnaujinamas ServiceRequest resursas Tikrinama, ar serviceRequest įgauna statusą "entered-in-error". Jei taip - tikrinama, ar SR neturi validaus DiagnosticReporto (t.y. tokio, kuris neturi statuso "entered-in-error"). Cannot cancel ServiceRequest when DiagnosticReport exists. ServiceRequest neleidžiama atšaukti, kai pateiktas DiagnosticReport (laboratorija pasiėmė jį vykdymui). ServiceRequest neleidžiama atšaukti, kai pateiktas DiagnosticReport (laboratorija pasiėmė jį vykdymui).
L21 DiagnosticReport būsena turi atitikti ServiceRequest ir Specimen būsenas Kai sukuriamas/atnaujinamas DiagnosticReport resursas Jei diagnosticReport statusas nėra "cancelled" ir nėra "entered-in-error", tikriname, ar visi serviceRequestai turi statusą "active" arba "completed" ir visi Specimen statusą "available" All related DiagnosticReport ServiceRequests must be active/completed and Specimens must be available Neatitinka DiagnosticReport, ServiceRequest ir Specimen būsenos. Prieš pateikiant DiagnosticReport, visi jame nurodyti ServiceREquest'ai turi turėti būseną „active", o ėminiai - available (negalima registruoji atsakymo, jei nėra galiojančio ėminio arba SR)
Jei DiagnosticReport = preliminary, ServiceReport = active arba completed, Specimen <> entered_in_error Jei DiagnosticReport = final, ServiceReport = completed, Specimen <> entered_in_error.
Jei DiagnosticReport = entered_in_error, kitų resursų būsenų tikrinti nereikia.
L22 Visi to paties užsakymo ServiceRequest resursai turi turėti tą patį ėminio tipą Kai sukuriamas/atnaujinamas ServiceRequest resursas Paimami visi susiję ServiceRequest resursai. Užtikrinama, kad visi turėtų vienodą ėminio tipą An order can only have a single specimen type for it's service requests Visi to paties užsakymo ServiceRequest resursai turi turėti tą patį ėminio tipą Visi to paties užsakymo ServiceRequest resursai turi turėti tą patį ėminio tipą ServiceRequest.specimenType. Taip pat turi sutapti visi vieno ServiceRequest ėminių tipai. Keli ServiceRequest resursai į vieną užsakymą gali būti susiejami per identifikatorių ServiceRequest.requisition. Jei keli ServiceRequest resursai turi vienodą requisition [ID, jų http://mok2-elab-docker1.esveikata.lan:3000/fhir-ig/StructureDefinition-lt-serviceRequest-definitions.html#ServiceRequest.requisition] specimenType turi sutapti. Teikiant ServiceRequest, reikėtų tikrinti visus tos pačios organizacijos neįvykdytus užsakymus
L23 Užsakymo ir ėminio resursuose tyrimo kodas ir ėminio tipas turi sutapti Kai sukuriamas/atnaujinamas Specimen resursas Tikrinama, ar Specimen ėminio tipas sutampa su ServiceRequest ėminio tipu Specimen type is not applicable to service request. Nesutampa tyrimo kodas ir/arba ėminio tipas užsakymo (ServiceRequest) ir ėminio (Specimen) resursuose. Su ServiceRequest susieto Specimen resurso mėginio tipas turi atitikti ServiceRequest tyrimo ėminio tipą ir tyrimo kodas ServiceRequest ir Specimen turi sutapti
L24 Dokumento ir tyrimo atsakymo būsenos turi sutapti Kai sukuriamas/atnaujinamas Composition resursas Jei composition statusas 'final', 'preliminary', 'entered-in-error', 'amended', toks pat turi būti ir DR statusas Status mismatch: If Composition is 'final', 'entered-in-error' or 'amended', DiagnosticReport must match. If it's 'preliminary', DiagnosticReport must be 'final' or 'preliminary. Dokumento (composition) ir tyrimo atsakymo (DiagnosticReport) būsenos nesutampa. DiagnosticReport.status = Composition.status
Jei Composition.status = amended , DiagnosticReport .status = amended
Jei Composition.status = preliminary , DiagnosticReport .status = preliminary
Jei Composition.status = final, DiagnosticReport .status = final
Jei Composition.status = entered-in-error , DiagnosticReport .status = entered-in-error
L25 ServiceRequest galima atšaukti, kai nėra nepasirašytų atšauktų atsakymų Kai atnaujinamas ServiceRequest resursas Tikrinama, jei ServiceRequest įgauna "entered-in-error" statusą, užtikrinama, kad visi atšaukti DiagnosticReport būtų pasirašyti All cancelled Diagnostic Reports must be signed before cancelling ServiceRequest Užsakymą (ServiceRequest) galima atšaukti tik tada, kai pasirašyti visi atšaukti DiagnosticReportai Užsakymą (ServiceRequest) galima atšaukti tik tada, kai pasirašyti visi atšaukti DiagnosticReportai
L26 Specimen registracijos kodas turi atitikti nustatytus reikalavimus Kai sukuriamas/atnaujinamas Specimen resursas Tikrinamas registracijos kodo formatas su regex pagal ELAB-65 nurodytus reikalavimus Invalid Specimen registration code format. The code can only contain letters (A–Z, a–z), numbers (0–9), and dashes. Code length should be from 5 to 30 characters. Ilgis- nuo 5 iki 30 simbolių, leidžiama naudoti raides, skaičius ir brūkšnelius. Pvz.: AB12-ABCDEF-X Specimen registracijos kodas, leidžiami simboliai:
  • Raidės (A–Z, a–z)
  • Skaičiai (0–9)
  • Brūkšneliai
Jokie kiti simboliai (tarpai, diakritiniai ženklai, specialūs simboliai) neleidžiami.

Struktūra:
Minimalus bendras ilgis (su brūkšneliais): 5 simbolių pvz.: AB12-ABCDEF-X
Maksimalus bendras ilgis (su brūkšneliais): 30 simbolių.
Brūkšneliai leidžiami bet kurioje kodo vietoje
L27 Ėminio tipas neatitinka tyrimo tipo Kai sukuriamas/atnaujinamas ServiceRequest resursas Paimamas tyrimo kodas iš serviceRequest.code ir pagal jį iš duomenų bazės gauname ėminio tipą. Tikriname, ar ServiceRequest'e yra toks pat ėminio tipas. (pvz. tyrimas Vitaminas A, iš DB gauname, kad ėminio tipas "kraujas". Tai tikriname, ar "kraujas" ir yra nurodytas ServiceRequest.collectedSpecimen) Collected specimen code is not applicable for test. ServiceRequest tyrimo ėminio tipas neatitinka LT nomenklatūros klasifikatoriuje nurodyto ėminio tipo šiam tyrimui.
L28 Negalima sukurti atsakymo su negaliojančia analite Kai sukuriamas/atnaujinamas Observation resursas Tikrinama, ar analitės (observation.code) statusas terminologijoje nėra lygus "retired" Can't process resource Observation reason: Analyte status must be active or draft Negalima sukurti atsakymo tyrimo kodui, kuris paskelbtas negaliojančiu Can't process resource Observation reason: Analyte status must be active or draft. (observation-analyte-status-unacceptable)
L29 Negalima nukreipti tyrimo įstaigai, kurio ji neatlieka Kai sukuriamas/atnaujinamas Specimen resursas Paimamas tyrimo kodas iš serviceRequest.code ir patikrinama, ar yra HealthCareService resursas su specimen.performer ir nurodytu tyrimo kodu Specimen performer cannot perform associated ServiceRequest tests. Laboratorija, kuriai bandoma nukreipti tyrimo užsakymą, LMB duomenimis tokio tyrimo neatlieka. Specimen-performer-cannot-perform-associated-ServiceRequest-tests
L30 Negalima užsakyti tyrimų, kurių neleidžiama užsakyti per e.sveikatos sistemą Kai sukuriamas/atnaujinamas ServiceRequest resursas Tikrinamas tyrimas (serviceRequest.code), ar jis terminologijoje turi parametrą "order-in-e-health" = "T" Cannot order test provided in ServiceRequest. (Test code has value 'N' of parameter 'order-in-e-health') Negalima užsakyti tyrimų, kurių parametras 'order-in-e-health' nomenklatūros klasifikatoriuje turi požymį 'N' (neleidžiama užsakyti per e.sveikatos sistemą) Cannot order test provided in ServiceRequest. (Test code has value 'N' of parameter 'order-in-e-health'). (ServiceRequest-test-code-not-allowed)
L31 Kompoziciją patvirtinęs specialistas neturi galiojančios profesinės kvalifikacijos Kai sukuriamas/atnaujinamas Composition resursas Gauname specialistą iš ESPBI paduodami composition.attester specialisto espbi id ir composition.custodian organization id. Tkrinamos p_darbo_pradzia ir p_darbo_pabaiga datos Composition attester is not currently employed. Dokumentą patvirtinęs specialistas nurodytoje veiklos vietoje neturi galiojančios nurodytos profesinės kvalifikacijos (licencijos).
L32 DiagnosticReport turi turėti aktyvų encounter Kai sukuriamas/atnaujinamas DiagnosticReport resursas Paimame diagnosticReport encounterį, diagnosticReport.subject pacientą ir diagnosticReport.performer tėvinę organizaciją. Paduodame šiuos parametrus į ESPBI procedūrą "ar_aktyvus_encounteris" Active Encounter not found for performer's Organization and Patient Teikiamas DiagnosticReport resursas turi būti susietas su aktyviu encounter.
L33 Neteisinga lauko iš klasifikatoriaus reikšmė specimen resurse Kai sukuriamas/atnaujinamas Specimen resursas Tikrinama, ar egzistuoja kodai terminologijoje specimen.type ir specimen.collectionBodyPosition Specimen code (in type or body position) does not exist. Nurodyta lauko reikšmė neegzistuoja šio lauko reikšmių klasifikatoriuje specimen resurse
L34 Neteisinga lauko iš klasifikatoriaus reikšmė ServiceRequest resurse Kai sukuriamas/atnaujinamas ServiceRequest resursas Tikrinami ServiceRequest kodai, ar jie egzistuoja terminologijoje: tyrimo kodas, ėminio tipas, diagnozė ServiceRequest code (test, specimenType or condition) code does not exist. Nurodyta lauko reikšmė neegzistuoja šio lauko reikšmių klasifikatoriuje ServiceRequest resurse
L35 Užsakymo aktyvus apsilankymas Kai sukuriamas/atnaujinamas ServiceRequest resursas Tikrinama, ar ServiceRequest encounter statusas yra "in-progress" ServiceRequest's Encounter status must be 'in-progress'. Teikiamas ServiceRequest resursas turi būti susietas su aktyviu encounter.
L36 Ėminį paėmęs specialistas turi dirbti aktyvioje organizacijoje Kai sukuriamas/atnaujinamas Specimen resursas Gaunama organizacija iš pracitionerRole resurso ir tikrinama, ar jos reikšmė "active" yra true Specimen collector must be from an active organization. Ėminį paėmęs specialistas turi dirbti aktyvioje organizacijoje
L37 Atšaukiant DiagnosticReport, turi būti atšaukiami susiję Observation Kai sukuriamas/atnaujinamas DiagnosticReport resursas Jei diagnosticReport turi statusą "entered-in-error", užtikrinama, kad observation resursai turėtų "entered-in-error", arba "cancelled" statusus Given status 'entered-in-error', for DiagnosticReport, Observation status must be 'entered-in-error' or 'cancelled' Atšaukiant DiagnosticReport, turi būti atšaukiami susiję Observation
L38 Atšaukiant Observation, jo atributai taip pat turi būti atšaukti. Kai sukuriamas/atnaujinamas Observation resursas Given status 'entered-in-error' for Observation, Observation member status must be 'entered-in-error'. Atšaukiant Observation, jo viduje atributai, kurie turi status reikšmes, taip pat turi būti atšaukti.