Versions Compared

Key

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

...

For at gemme eller hente et dokument, anvendet et ITI kald. ITI kald er standardiserede SOAP services, der overholder IHE XDS specifikationenEt ITI kald opererer med begreberne SubmissionSet, DocumentEntry og Association, hvis indhold lægger sig op af dokumentets metadata. Disse skal derfor også overholde standarderne.

Yderligere detaljer og introduktion til dokumentdeling kan læses i Dokumentdeling på NSP

...

Et audio dokument er et struktureret XML dokument, som følger HIMSA’s Noah datastandarder. Der findes forskellige typer af audio dokumenter (Udgivelser), hvor følgende dækkes:

Hver type og version har et selvstændigt XSD skema, der skal overholdes.

API Beskrivelse og anvendelse

...

Code Block
languagejava
titleIti41ValidationImpl - anvendels af XdsValidation
linenumberstrue
// Fra klassen Iti41ValidationImpl metode validateAndTransform
List<ErrorInfo> xdsValidationErrors = getXdsValidationErrors(provideAndRegisterDocumentSet, xdsValidatorFactory.buildIti41Validator(), xdsValidationLevel);

// Fra klassen RegistryItiValidationImpl
protected List<ErrorInfo> getXdsValidationErrors(ProvideAndRegisterDocumentSet request, ProvideAndRegisterDocumentSetStarterList<ProvideAndRegisterDocumentSetStarter> starterstarterList, XdsValidationLevel xdsValidationLevel) {
     List<ErrorInfo> return getXdsValidationErrors(() -> starter.validate(request), xdsValidationLevel);
}

private List<ErrorInfo> getXdsValidationErrors(Supplier<ValidationResultSet> validator, XdsValidationLevel xdsValidationLevel) {
     if(xdsValidationLevel == XdsValidationLevel.OFFerrors = new ArrayList<>();
     for (ProvideAndRegisterDocumentSetStarter starter : starterList) {
           List<ErrorInfo> returnvalidationErrors new= ArrayList<>(getXdsValidationErrors(request, starter, xdsValidationLevel);
     }
     List<ErrorInfo> errors = new ArrayList<>(   errors.addAll(validationErrors);
     // Perform the validation
    if (errors.size() > 0) {
        ValidationResultSet  resultSet  = validator.get() return errors;
     // Construct the  result }
     if(resultSet.hasErrors()) {}
       return errors;
}

private List<ErrorInfo> // Based on the validation level, either return a warning or an error.
          Severity severity = getSeverity(xdsValidationLevel);
    getXdsValidationErrors(ProvideAndRegisterDocumentSet request, ProvideAndRegisterDocumentSetStarter starter, XdsValidationLevel xdsValidationLevel) {
    return getXdsValidationErrors(() -> starter.validate(request), xdsValidationLevel);
}

private List<ErrorInfo> getXdsValidationErrors(Supplier<ValidationResultSet> validator, XdsValidationLevel xdsValidationLevel) {
    if(xdsValidationLevel == XdsValidationLevel.OFF) {
        for(ValidationErrorreturn ve : resultSet.getErrorsnew ArrayList<>()) {;
          }
    List<ErrorInfo> ErrorInfo errorInfoerrors = new ErrorInfo(ErrorCode.REGISTRY_METADATA_ERROR, ve.getErrorMessage(), severity, "", "");
               errors.add(errorInfo);
          }ArrayList<>();
    // Based on the validation level, either return a warning or an error.
    Severity severity = getSeverity(xdsValidationLevel);

    try }{
      return errors;
}

  //Klassen XdsValidatorFactory
public class XdsValidatorFactory {
 Perform the validation
        ValidationResultSet publicresultSet ProvideAndRegisterDocumentSetStarter= buildIti41Validatorvalidator.get() {;
        return Iti41ValidationFactory.createIti41Validator();// Construct the result
    }

    public RegisterDocumentSetStarter buildIti42Validator(if(resultSet.getValidationResults().size() > 0) {
        return Iti42ValidationFactory.createIti42Validator();
   // }

Based on the validation publiclevel, RegisterDocumentSetStartereither buildIti57Validator() {
    return a warning or an error.
    return Iti57ValidationFactory.createIti57Validator();
    }

   for(ValidationResult publicvr RegisterDocumentSetStarter: buildIti61ValidatorresultSet.getValidationResults()) {
          return Iti61ValidationFactory.createIti61Validator();
      ErrorInfo errorInfo = new ErrorInfo(ErrorCode.REGISTRY_METADATA_ERROR, vr.getValidationError().getErrorMessage(), severity, "", "");
                errors.add(errorInfo);
            }
        }
}

Dvs ønsker man benytte default valideringen for ITI 41 kaldet gøres det ved at:

  1. Oprette en instans af ProvideAndRegisterDocumentSetStarter (linie 2)
  2. Kalde metoden validate på denne med ITI 41 requested (ProvideAndRegisterDocumentSet) (linie 6)
  3. Retur får man en liste over de fejl XdsValidation fandt (linie 15)

På samme måde kan man få valideret de øvrige kald, ved at vælge den rette Starter og sende requsted ind til den.

Code Block
languagejava
titleIti42ValidationImpl - anvendels af XdsValidation
linenumberstrue
// Fra klassen Iti42ValidationImpl metode validateAndTransform
List<ErrorInfo> xdsValidationErrors = getXdsValidationErrors(registerDocumentSet, xdsValidatorFactory.buildIti42Validator(), xdsValidationLevel);

// Fra klassen RegistryItiValidationImpl

protected List<ErrorInfo> getXdsValidationErrors(RegisterDocumentSet request, RegisterDocumentSetStarter starter, XdsValidationLevel xdsValidationLevel) {
    return getXdsValidationErrors(() -> starter.validate(request), xdsValidationLevel); //for getXdsValidationErrors se ovenfor
}
Code Block
languagejava
titleIti61ValidationImpl - anvendels af XdsValidation
linenumberstrue
// Fra klassen Iti57ValidationImpl metode validateAndTransform
List<ErrorInfo> xdsValidationErrors = getXdsValidationErrors(registerDocumentSet, xdsValidatorFactory.buildIti61Validator(), xdsValidationLevel);  

// Fra klassen RegistryItiValidationImpl
protected List<ErrorInfo> getXdsValidationErrors(RegisterDocumentSet request, RegisterDocumentSetStarter starter, XdsValidationLevel xdsValidationLevel) {
    return getXdsValidationErrors(() -> starter.validate(request), xdsValidationLevel); //for getXdsValidationErrors se ovenfor
}

...

languagejava
titleIti57ValidationImpl - anvendels af XdsValidation
linenumberstrue

...

    } catch (Exception e) {
        // Because validation depends on validation library and builder parsers handling of exceptions we need to make sure any unstable exception handling there will not get to the caller.
        String errorMessage = "Unhandled exception in validation library or its sub dependencies.";
        LOGGER.error(errorMessage, e);
        ErrorInfo errorInfo = new ErrorInfo(ErrorCode.REGISTRY_METADATA_ERROR, errorMessage, getSeverity(xdsValidationLevel), "", "");
        errors.add(errorInfo);
    }
    return errors;
}

//Klassen XdsValidatorFactory
public class XdsValidatorFactory {
 ...
    public List<ProvideAndRegisterDocumentSetStarter> buildIti41Validator() {
        return Arrays.asList(
                Iti41ValidationFactory.createIti41Validator(xdsConfigurationFactory.buildXDSConfiguration()),
                createItiProvideAndRegisterDocumentSetStarterDrosValidator());
    }
  ... 
}


Dvs ønsker man benytte default valideringen for ITI 41 kaldet gøres det ved at:

  1. Oprette en instans af ProvideAndRegisterDocumentSetStarter (linie 2)
  2. Kalde metoden validate på denne med ITI 41 requested (ProvideAndRegisterDocumentSet) (linie 18)
  3. Retur får man en liste over de fejl XdsValidation fandt (linie 31)

På samme måde kan man få valideret de øvrige kald, ved at vælge den rette Starter og sende requsted ind til den.


Se iøvrigt praktisk anvendelse i bibliotekets egne unit test. F.eks. CdaHeaderValidatorTest der viser CDA dokument validering og  ProvideAndRegisterDocumentSetValidatorTest, der viser en række kald for iti-41.

...

KlasseValideringITI 41ITI 42ITI 61ITI 57Cda dokument
ProvideAndRegisterDocumentSetStarter
  • submissionSet pakkes ud
  • dokumenter pakkes ud
  • der er som minimum et dokument
x



RegisterDocumentSetStarter
  • submissionSet pakkes ud
  • dokumentEntries pakkes ud

xxx







XDSDocumentITI41StructureValidator
  • der findes et documentEntry
  • der findes et fysisk dokument
  • der findes et submissionSet
x



XDSDocumentITI42StructureValidator
  • der findes et documentEntry
  • der findes et submissionSet

x


XDSDocumentITI61StructureValidator
  • der findes et documentEntry
  • der findes et submissionSet


x

XDSDocumentITI57StructureValidator
  • der findes et submissionSet



x







XDSDocumentContentModelEnricher
  • indhold kan læses som bytes (UTF8)
x



CdaDocumentHeaderModelEnricher
  • der er tale om et cda dokument (typecode i documententry matcher ConfigCodeModel(configCdaTypes)
  • bytes kan parses som en CDA header
x


x
CdaDocumentApdV2ModelEnricherx


x
CdaDocumentPhmrModelEnricher
  • det er et PHMR dokument: CodeCodedValue har Codesystem "2.16.840.1.113883.6.1" og code "53576-5"
  • det er Cda Header Version 1: FormatCode er null (anvendt parser finder ikke formatCode for v1)
  • CDA dokumentet kan parses som et PHMR dokument
x


x
CdaDocumentQrdModelEnricher
  • det er et QRD dokument: CodeCodedValue har Codesystem "2.16.840.1.113883.6.1" og code "74465-6"
  • det er Cda Header Version 1: FormatCode er null (anvendt parser finder ikke formatCode for v1)
  • CDA dokumentet kan parses som et QRD dokument
x


x
CdaDocumentPhadModelEnricher
  • Denne er pt ikke aktiv, men planlagt via SDS-7229
x


x







AudioDocumentModelEnricher
  • det er et Høremappe dokument: CodeCodedValue har Codesystem "2.16.840.1.113883.6.1", code "28615-3" og displayName "Audiology Study"
xxxx
AudioDocumentAudiogramModelEnricher
  • Er formatCode et gyldigt format for Audiogram dokumenter
  • Skema for korrekt udgave af Audiogram dokument findes
  • Dokumentet valideres mod skemaet
  • Dokumentet valideres mod skemaetHvis dokumentet er validt, beriges XDSDocument med ENRICHMENT_AUDIO_FORMAT til det korrekte AudioFormatCodeModel
x



AudioDocumentImpedanceModelEnricher
  • Er formatCode et gyldigt format for Impedance dokumenter
  • Skema for korrekt udgave af Impedance dokument findes
  • Dokumentet valideres mod skemaetHvis dokumentet er validt, beriges XDSDocument med ENRICHMENT_AUDIO_FORMAT til det korrekte AudioFormatCodeModel
x



AudioDocumentHearingInstrumentSelectionModelEnricher
  • Er formatCode et gyldigt format for Hearing Instrument Selection dokumenter
  • Skema for korrekt udgave af Hearing Instrument Selection dokument findes
  • Dokumentet valideres mod skemaetHvis dokumentet er validt, beriges XDSDocument med ENRICHMENT_AUDIO_FORMAT til det korrekte AudioFormatCodeModel
x



AudioDocumentAudiogramModelValidator
  • XML skal være indlæst som tekst
  • !ENRICHMENT_AUDIO_FORMAT skal være sat til et validt Audiogram format
  • XML skal kunne parses som et gyldigt XML dokument
  • Rod elementet skal være HIMSAAudiometricStandard
  • Der skal være mindst 1 element under rod elementet
xAudioDocumentImpedanceModelValidator
  • forudsætning for validering: FormatCode er en af følgende:
    • codeSystem "1.2.208.184.100.10", code "urn:ad:dk:medcom:nauf-v500:full" og displayName "Noah Audiogram format 500"
    • codeSystem "1.2.208.184.100.10", code "urn:ad:dk:medcom:nauf-v502:full" og displayName "Noah Audiogram format 502"
  • XML skal være indlæst som tekst
  • !ENRICHMENT_AUDIO_FORMAT skal være sat til et validt Impedance format
  • XML skal kunne parses som et gyldigt XML dokument
  • Root element skal være AcousticImpedanceCompleteMeasurement for NOAH_IMPEDANCE_FORMAT_500 eller AcousticImmittanceAssessment for NOAH_ADMITTANCE_FORMAT_501Rod elementet skal være HIMSAAudiometricStandard
  • Der skal være mindst 1 element under rod elementet
x



AudioDocumentHearingInstrumentSelectionModelValidatorAudioDocumentImpedanceModelValidator
  • XML skal være indlæst som tekst!ENRICHMENT_AUDIO_FORMAT skal være sat til et validt Hearing Instrument Selection formattekst
  • !forudsætning for validering: FormatCode er en af følgende:
    • codeSystem "1.2.208.184.100.10", code "urn:ad:dk:medcom:nimf-v500:full" og displayName "Noah Impedance format 500"
    • codeSystem "1.2.208.184.100.10", code "urn:ad:dk:medcom:nadf-v501:full" og displayName "Noah Admittance format 501"
  • XML skal kunne parses som et gyldigt XML dokumentRod elementet skal være HearingInstrumentSelection
  • Root element skal have mindst 1 InstrumentTypeName, som ikke er tom
x

Typevalideringer

Dette er hjælpevalideringer, som feltvalideringer gør brug af.

  • være AcousticImpedanceCompleteMeasurement for NOAH_IMPEDANCE_FORMAT_500 eller AcousticImmittanceAssessment for NOAH_ADMITTANCE_FORMAT_501
  • Der skal være mindst 1 element under rod elementet
x



AudioDocumentHearingInstrumentSelectionModelValidator
  • XML skal være indlæst som tekst
  • !forudsætning for validering: FormatCode er codeSystem "1.2.208.184.100.10", code "urn:ad:dk:medcom:nhisf-v500:full" og displayName "Noah Hearing Instrument Selection format 500"
  • XML skal kunne parses som et gyldigt XML dokument
  • Rod elementet skal være HearingInstrumentSelection
  • Root element skal have mindst 1 InstrumentTypeName, som ikke er tom
x




Typevalideringer

Dette er hjælpevalideringer, som feltvalideringer gør brug af.

KlasseValidering

ConfigCodeModelChecker

  • Afgør om en typeCode tillades for en given ConfigCodeModel
  • ConfigCodeModel er en liste af typeCodes, hvor typeCode skal indgå med mindre man har sat MatchAll på ConfigCodeModel

AbstractElementCompare

  • sammenligning af 2 lister (hver med nul, en eller flere objekter)
  • antal af objekter i listen er ens
  • de enkelte objekter er ens på de samme pladser i listen

CodedModelCompare

  • overholder validering i AbstractElementCompare hvor følgende opfylder "objekter er ens"
    • value er ens
    • codeSystem er ens
    • displayName er ens

DateTimeCompare

  • overholder validering i AbstractElementCompare hvor følgende opfylder "objekter er ens"
    • dateTime er ens

DateCompare

  • overholder validering i AbstractElementCompare hvor følgende opfylder "objekter er ens"
    • år, måned og dag i Calender er ens

StringCompare

  • overholder validering i AbstractElementCompare hvor følgende opfylder "objekter er ens"
    • de to strenge er ens

ConfigValuesChecker

  • ConfigValuesChecker validerer ConfigValues.
    • ConfigValues baseres på ConfigInput, hvor alle værdier tillades (matchAll) eller en liste af tilladte værdier er angivet.
    • ConfigValues tillader kun typen "String"
  • Overholder valideringen som angivet i ConfigInputChecker
    • ConfigValues (ConfigInput) er angivet
    • Enten:
      • ConfigValues er isMatchAll
    • eller:
      • Value er i listen af tilladte værdier i ConfigValues



CodedValueValidator

KlasseValidering

ConfigCodeModelChecker

  • Afgør om en typeCode tillades for en given ConfigCodeModel
  • ConfigCodeModel er en liste af typeCodes, hvor typeCode skal indgå med mindre man har sat MatchAll på ConfigCodeModel

AbstractElementCompare

  • sammenligning af 2 lister (hver med nul, en eller flere objekter)
  • antal af objekter i listen er ens
  • de enkelte objekter er ens på de samme pladser i listen

CodedModelCompare

  • overholder validering i AbstractElementCompare hvor følgende opfylder "objekter er ens"
    • value er ens
    • codeSystem er ens
    • displayName er ens

DateTimeCompare

  • overholder validering i AbstractElementCompare hvor følgende opfylder "objekter er ens"
    • dateTime er ens

DateCompare

  • overholder validering i AbstractElementCompare hvor følgende opfylder "objekter er ens"
    • år, måned og dag i Calender er ens

StringCompare

  • overholder validering i AbstractElementCompare hvor følgende opfylder "objekter er ens"
    • de to strenge er ens

ConfigValuesChecker

  • ConfigValuesChecker validerer ConfigValues.
    • ConfigValues baseres på ConfigInput, hvor alle værdier tillades (matchAll) eller en liste af tilladte værdier er angivet.
    • ConfigValues tillader kun typen "String"
  • Overholder valideringen som angivet i ConfigInputChecker
    • ConfigValues (ConfigInput) er angivet
    • Enten:
      • ConfigValues er isMatchAll
    • eller:
      • Value er i listen af tilladte værdier i ConfigValues

CodedValueValidator

  • regel: IHE Vol3 4.2.3.1.2 Creating Coded Attributes
  • codeSystem er udfyldt hvis krævet
  • codeSystem er gyldigt hvis krævet
  • code er udfyldt hvis krævet
  • displayName er udfyldt hvis krævet
  • yderligere kode validering som implementeret i ConfigCodeModelChecker (med evt. default værdier i XDSConfiguration)

StringValidation

  • overholder regler specificeret af anvender:
    • er udfyldt hvis påkrævet sat
    • længden på værdien er ikke  større end maksimum længde angivet
    • værdien er en af de tilladte værdier angivet

ClassCodeValidation

  • regel: IHE Vol3 4.2.3.1.2 Creating Coded Attributes
  • længden på code er ikke  større end 3 (DK_IHE_ClassCode_DE)
  • overholder validering i CodedValueValidation. Default gyldigt codeSystem angivet i XDSConfiguration. Code, CodeSystem og DisplayName er udfyldt.
ConfidentialityCodeValidation

  • regel: IHE Vol3 4.2.3.1.2 Creating Coded Attributes
  • overholder validering i CodedValueValidation. Default gyldigt codeSystem angivet i XDSConfiguration. Code og CodeSystem er udfyldt.
EventCodeValidation
  • regel IHE 4.2.3.1.2 Creating Coded Attributes
  • overholder validering i CodedValueValidation. Ingen default gyldig codeSystem.  Code, CodeSystem og DisplayName er udfyldt.
FormatCodeValidation
  • regel: IHE 4.2.3.1.2 Creating Coded Attributes
  • overholder validering i CodedValueValidation. Ingen default gyldig codeSystem. Code, CodeSystem og DisplayName er udfyldt.
  • codeSystem er udfyldt hvis krævet
  • codeSystem er gyldigt hvis krævet
  • code er udfyldt hvis krævet
  • displayName er udfyldt hvis krævet
  • yderligere kode validering som implementeret i ConfigCodeModelChecker (med evt. default værdier i XDSConfiguration)

StringValidation

  • overholder regler specificeret af anvender:
    • er udfyldt hvis påkrævet sat
    • længden på værdien er ikke  større end maksimum længde angivet
    • værdien er en af de tilladte værdier angivet

ClassCodeValidation

  • regel: IHE Vol3
HealthcareFacilityTypeCodeValidation
  • regel: IHE 4.2.3.1.2 Creating Coded Attributes
  • hvis udfyldt er værdien numerisk (DK_HealthcareFacilityType_DE)
  • overholder validering i CodedValueValidation. Ingen default gyldig codeSystem. Code, CodeSystem og DisplayName er udfyldt.
LanguageCodeValidation
  • overholder validering i StringValidation. Påkrævet og default tilladt værdi er "da-DK" længden på code er ikke  større end 3 (DK_IHE_LanguageCodeClassCode_DE)
  • overholder validering i CodedValueValidator. Default gyldigt codeSystem angivet i XDSConfiguration. Code, CodeSystem og DisplayName er udfyldt.
ConfidentialityCodeValidation
  • regel: IHE Vol3 4.2.3.1.2 Creating Coded Attributes
OrganisationCodeValidation
  • hvis codeSystem er Yder så er længden på code 6
  • hvis codeSystem er Yder er code numerisk
  • overholder validering i CodedValueValidationCodedValueValidator. Default gyldigt codeSystem angivet i XDSConfiguration. Code og CodeSystem er udfyldt.
EventCodeValidation
  • regel IHE 4.2.3.1.2 Creating Coded Attributes
PatientIdCodeValidation
  • overholder validering i CodedValueValidation. Default gyldigt codeSystem angivet i XDSConfiguration. Code og CodeSystem CodedValueValidator. Ingen default gyldig codeSystem.  Code, CodeSystem og DisplayName er udfyldt.
PracticeSettingCodeValidationFormatCodeValidation
  • regel: IHE 4.2.3.1.2 Creating Coded Attributes
  • overholder validering i CodedValueValidationCodedValueValidator. Ingen default gyldig codeSystem. Code, CodeSystem og DisplayName er udfyldt.
TitleValidation
  • validering for StringValidation. Påkrævet og default maksimum længde er 128 (Metadata-v096 2.2.31 title)
TypeCodeValidationHealthcareFacilityTypeCodeValidation
  • regel: IHE 4.2.3.1.2 Creating Coded Attributes
  • hvis udfyldt er værdien numerisk (DK_HealthcareFacilityType_DE)
  • overholder validering i CodedValueValidationCodedValueValidator. Ingen default gyldig codeSystem. Code, CodeSystem og DisplayName er udfyldt.
ConfigValuesValidator
  • overholder regler specificeret af anvender:
    • længden på værdien er ikke  større end maksimum længde angivet
    • værdien er en af de tilladte værdier angivet
HomeCommunityIdValidation
  • overholder validering i ConfigValuesValidator. Default gyldigt HomeCommunityId angivet i ConfigValues.
MimeTypeValidation
  • overholder validering i ConfigValuesValidator. Default gyldigt MimeType angivet i ConfigValues.

Krydsvalideringer

Her sammenlignes to entiteter. Disse valideringer sikrer, at de samme felter i forskellige entiteter (documentEntry, submissionSet og Cda dokument) er ens. Hvis mindst en af entiterne kan indholde flere felter af den samme type, sammenlignes antallet af disse også.

Afkrydningen i tabellens 5 sidste søjler indikerer, hvilke default valideringer, den enkelte validator er inkludret i.

LanguageCodeValidation
  • overholder validering i StringValidation. Påkrævet og default tilladt værdi er "da-DK" (DK_IHE_LanguageCode_DE)
OrganisationCodeValidation
  • hvis codeSystem er Yder så er længden på code 6
  • hvis codeSystem er Yder er code numerisk
  • overholder validering i CodedValueValidator. Default gyldigt codeSystem angivet i XDSConfiguration. Code og CodeSystem er udfyldt.
PatientIdCodeValidation
  • overholder validering i CodedValueValidator. Default gyldigt codeSystem angivet i XDSConfiguration. Code og CodeSystem er udfyldt.
PracticeSettingCodeValidation
  • regel: IHE 4.2.3.1.2 Creating Coded Attributes
  • overholder validering i CodedValueValidator. Ingen default gyldig codeSystem. Code, CodeSystem og DisplayName er udfyldt.
TitleValidation
  • validering for StringValidation. Påkrævet og default maksimum længde er 128 (Metadata-v096 2.2.31 title)
TypeCodeValidation
  • regel: IHE 4.2.3.1.2 Creating Coded Attributes
    • validering i CodedValueValidator. Ingen default gyldig codeSystem. Code, CodeSystem og DisplayName er udfyldt.
ConfigValuesValidator
  • overholder regler specificeret af anvender:
    • længden på værdien er ikke  større end maksimum længde angivet
    • værdien er en af de tilladte værdier angivet
HomeCommunityIdValidation
  • overholder validering i ConfigValuesValidator. Default gyldigt HomeCommunityId angivet i ConfigValues.
MimeTypeValidation
  • overholder validering i ConfigValuesValidator. Default gyldigt MimeType angivet i ConfigValues.

Krydsvalideringer

Her sammenlignes to entiteter. Disse valideringer sikrer, at de samme felter i forskellige entiteter (documentEntry, submissionSet og Cda dokument) er ens. Hvis mindst en af entiterne kan indholde flere felter af den samme type, sammenlignes antallet af disse også.

Afkrydningen i tabellens 5 sidste søjler indikerer, hvilke default valideringer, den enkelte validator er inkludret i.

KlasseValidering mellem de 2 entiter nævnt i klassens navnITI 41ITI 42ITI 61ITI 57Cda dokument
CdaHeaderCrossDocumentEntryAuthorInstitutionValidator
  • der er lige mange authors (dvs en)
  • der er lige mange AuthorInstitutions på den enkelte author
  • overholder validering i CodedModelCompare
x



CdaHeaderCrossDocumentEntryAuthorPersonValidator
  • der er lige mange authors (dvs en)
  • overholder validering i StringCompare indholdende personens navne
x



CdaHeaderCrossDocumentEntryConfidentialityCodeValidator
  • der er lige mange ConfidentialityCodes (dvs en)
  • overholder validering i CodedModelCompare
x



CdaHeaderCrossDocumentEntryCreationTimeValidator
  • overholder validering i DateTimeCompare
x



CdaHeaderCrossDocumentEntryEventCodeValidator
  • overholder validering i CodedModelCompare
x



CdaHeaderCrossDocumentEntryLanguageCodeValidator
  • overholder validering i StringCompare indeholdende languageCode værdierne
x



CdaHeaderCrossDocumentEntryLegalAuthenticatorValidator
  • overholder validering i StringCompare indeholdende legalAuthenticators navne
x



CdaHeaderCrossDocumentEntryPatientIdValidator
  • overholder validering i CodedModelCompare
x



CdaHeaderCrossDocumentEntryServiceStartTimeValidator
  • overholder validering i DateTimeCompare
x



CdaHeaderCrossDocumentEntryServiceStopTimeValidator
  • overholder validering i DateTimeCompare
x



CdaHeaderCrossDocumentEntrySourcePatientIdValidator
  • overholder validering i CodedModelCompare
x



CdaHeaderCrossDocumentEntrySourcePatientInfoValidator
  • overholder validering i StringCompare indeholdende personens titel og navne
  • overholder validering i DateCompare med datoer, hvor datoer er fødselsdato
  • overholder validering i StringCompare med køn værdierne
x



CdaHeaderCrossDocumentEntryTitleValidator
  • overholder validering i StringCompare indeholdende titel værdierne
x



CdaHeaderCrossDocumentEntryTypeCodeValidator
  • overholder validering i CodedModelCompare
x



SubmissionSetCrossDocumentEntryAuthorInstitutionValidator
  • ! forudsætning for validering: submissionSet har authors
  • der er lige mange authors
  • der er lige mange AuthorInstitutions på den enkelte author
  • overholder validering i CodedModelCompare
KlasseValidering mellem de 2 entiter nævnt i klassens navnITI 41ITI 42ITI 61ITI 57Cda dokument
CdaHeaderCrossDocumentEntryAuthorInstitutionValidator
  • der er lige mange authors (dvs en)
  • der er lige mange AuthorInstitutions på den enkelte author
  • overholder validering i CodedModelCompare
xCdaHeaderCrossDocumentEntryAuthorPersonValidator
  • der er lige mange authors (dvs en)
  • overholder validering i StringCompare indholdende personens navne
xCdaHeaderCrossDocumentEntryConfidentialityCodeValidator
  • der er lige mange ConfidentialityCodes (dvs en)
  • overholder validering i CodedModelCompare
xCdaHeaderCrossDocumentEntryCreationTimeValidator
  • overholder validering i DateTimeCompare
xCdaHeaderCrossDocumentEntryEventCodeValidator
  • overholder validering i CodedModelCompare
xCdaHeaderCrossDocumentEntryLanguageCodeValidator
  • overholder validering i StringCompare indeholdende languageCode værdierne
xCdaHeaderCrossDocumentEntryLegalAuthenticatorValidator
  • overholder validering i StringCompare indeholdende legalAuthenticators navne
xCdaHeaderCrossDocumentEntryPatientIdValidator
  • overholder validering i CodedModelCompare
xCdaHeaderCrossDocumentEntryServiceStartTimeValidator
  • overholder validering i DateTimeCompare
xCdaHeaderCrossDocumentEntryServiceStopTimeValidator
  • overholder validering i DateTimeCompare
xCdaHeaderCrossDocumentEntrySourcePatientIdValidator
  • overholder validering i CodedModelCompare
xCdaHeaderCrossDocumentEntrySourcePatientInfoValidator
  • overholder validering i StringCompare indeholdende personens titel og navne
  • overholder validering i DateCompare med datoer, hvor datoer er fødselsdato
  • overholder validering i StringCompare med køn værdierne
xCdaHeaderCrossDocumentEntryTitleValidator
  • overholder validering i StringCompare indeholdende titel værdierne
xCdaHeaderCrossDocumentEntryTypeCodeValidator
  • overholder validering i CodedModelCompare
xSubmissionSetCrossDocumentEntryAuthorInstitutionValidator
  • ! forudsætning for validering: submissionSet har authors
  • der er lige mange authors
  • der er lige mange AuthorInstitutions på den enkelte author
  • overholder validering i CodedModelCompare
xxxxSubmissionSetCrossDocumentEntryAuthorPersonValidator
  • ! forudsætning for validering: submissionSet har authors
  • overholder validering i StringCompare indholdende personernes navne
  • (indirekte test af at der er lige mange authors qua listen af navne)
xxxxSubmissionSetCrossDocumentEntryPatientIdValidator
  • value og codeSystem er ens
xxxxAudioDocumentEntryFormatCodeCrossEventCodeValidator
  • !forudsætning for validering: TypeCode har værdien codesystem "2.16.840.1.113883.6.1", code "28615-3" og displayname "Audiology Study"
  • FormatCode skal være angivet i EventCodeList, hvis EventCodeList er angivet.
xxxxAudioDocumentEntrySourcePatientIdCrossPatientIdValidator
  • !forudsætning for validering: TypeCode har værdien codesystem "2.16.840.1.113883.6.1", code "28615-3" og displayname "Audiology Study"
  • SourcePatientId må ikke være forskellig fra PatientId.
    xxxx
    AudioDocumentEntryServiceStopTimeCrossServiceStartTimeValidatorSubmissionSetCrossDocumentEntryAuthorPersonValidator
    • ! forudsætning for validering: TypeCode har værdien codesystem "2.16.840.1.113883.6.1", code "28615-3" og displayname "Audiology Study"ServiceStopTime må ikke være før ServiceStartTime.submissionSet har authors
    • overholder validering i StringCompare indholdende personernes navne
    • (indirekte test af at der er lige mange authors qua listen af navne)
    xxxx
    SubmissionSetCrossDocumentEntryPatientIdValidator
    • value og codeSystem er ens
    xxxx

    Feltvalideringer

    Hver validering beskæftiger sig med et specifikt felt i enten ITI kald og/eller CDA dokumentet.

    ...

    KlasseFeltValideringITI 41ITI 42ITI 61ITI 57Cda dokument

    CdaHeaderAuthorInstitutionValidator

    AuthorInstitution
    • regel: Metadata-v096 2.2.1.1 authorInstitution
    • author er udfyldt 
    • authorInstitution er udfyldt
    • overholder validering i OrganisationCodeValidation
    x


    x

    CdaHeaderAuthorPersonValidator

    AuthorPerson
    • regel: Metadata-v096 2.2.1.2 authorPerson
    • ! forudsætning for validering: authorPerson er udfyldt
    • der er et FamilyName og mindst et givenName
    x


    x

    CdaHeaderConfidentialityCodeValidator

    ConfidentialityCode
    • regel: Metadata-v096 2.2.5 confidentialityCode
    • confidentialityCode er udfyldt
    • overholder validering i ConfidentialityCodeValidation
    x


    x

    CdaHeaderEventCodeValidator

    EventCode
    • regel: Metadata-v096 2.2.9 eventCodeList
    • ! forudsætning for validering: EventCodeList har elementer
    • EventCode er udfyldt
    • overholder validering i EventCodeValidation
    x


    x

    CdaHeaderFormatCodeValidator

    FormatCode
    • regel: Metadata-v096 2.2.10 formatCode
    • ! forudsætning for validering: FormatCode er udfyldt
      (krav om udfyldelse varierer per dokumenttype og håndteres default af CdaDocument*type*ModelEnricher)
    • overholder validering i FormatCodeValidation
    x


    x

    CdaHeaderLanguageCodeValidator

    LanguageCode
    • regel: Metadata-v096 2.2.15 languageCode
    • languageCode er udfyldt
    • overholder validering i LanguageCodeValidation
    x


    x

    CdaHeaderPatientIdValidator

    PatientId
    • regel: Metadata-v096 2.2.20 patientId
    • der er en Patient med et PatientId
    • overholder validering i PatientIdCodeValidation
    x


    x

    CdaHeaderSourcePatientIdValidator

    SourcePatientId
    • regel: Metadata-v096 2.2.28 sourcePatientId
    • der er en sourcePatient med et PatientId
    • overholder validering i PatientIdCodeValidation
    x


    x

    CdaHeaderSourcePatientInfoValidator

    SourcePatientInfo
    • regel: Metadata-v096 2.2.29 sourcePatientInfo
    • der er en patient
    • der er et familyName og mindst et givenName
    • der er en fødselsdag
    • der er et køn
    x


    x

    CdaHeaderTitleValidator

    Title
    • regel: Metadata-v096 2.2.31 title
    • title er udfyldt
    • overholder validering i TitleValidation
    x


    x

    CdaHeaderTypeCodeValidator

    TypeCode
    • regel: Metadata-v096 2.2.32 typeCode
    • TypeCode (CodeCodedValue) er udfyldt
    • overholder validering i TypeCodeValidation
    x


    x

    DocumentEntryClassCodeValidator

    ClassCode
    • regel: Metadata-v096 2.2.3 classCode
    • classCode er udfyldt
    • overholder validering i ClassCodeValidation
    xxxx
    DocumentEntryAuthorInstitutionValidatorAuthorInstitution
    • regel: Metadata-v096 2.2.1.1 authorInstitution
    • der er mindst en author
    • der er en authorInstitution 
    • overholder validering i OrganisationCodeValidation
    xxxx
    DocumentEntryAuthorPersonValidatorAuthorPerson
    • regel: Metadata-v096 2.2.1.2 authorPerson
    • ! forudsætning for validering: authorPerson er udfyldt
    • der er et familyName og et givenName
    • prefix, suffix og degree er ikke udfyldt
    xxxx
    DocumentEntryAvailabilityStatusValidatorAvailabilityStatus
    • regel: Metadata-v096 2.2.2 availabilityStatus
    • AvailabilityStatus er udfyldt
    • AvailabilityStatus indeholder værdien approved eller deprecated
    xxxx
    DocumentEntryClassCodeValidatorClassCode
    • regel: Metadata-v096 2.2.3 classCode
    • classCode er udfyldt
    • overholder validering i ClassCodeValidation
    xxxx
    DocumentEntryConfidentialityCodeValidatorConfidentialityCode
    • regel: Metadata-v096 2.2.5 confidentialityCode
    • der er mindst en confidentialityCode
    • overholder validering i ConfidentialityCodeValidation
    xxxx
    DocumentEntryCreationTimeValidatorCreationTime
    • regel: Metadata-v096 2.2.7 createTime
    • ! forudsætning for validering: type er udfyldt
    • CreationTime er udfyldt for Stable
    • CreationTime er ikke udfyldt for onDemand
    xxxx
    DocumentEntryEntryUUIDValidatorEntryUUID
    • regel: Metadata-v096 2.2.8 entryUUID
    • EntryUUID er udfyldt
    xxxx
    DocumentEntryEventCodeValidatorEventCode
    • regel: Metadata-v096 2.2.9 eventCodeList
    • ! forudsætning for validering: EventCodeList har elementer
    • EventCode er udfyldt
    • overholder validering i EventCodeValidation
    xxxx
    DocumentEntryFormatCodeValidatorFormatCode
    • regel: Metadata-v096 2.2.10 formatCode
    • FormatCode er udfyldt
    • overholder validering i FormatCodeValidation
    xxxx
    DocumentEntryHashValidatorHash
    • regel: Metadata-v096 2.2.11 hash
    • ! forudsætning for validering: type er udfyldt
    • Hash er udfyldt for Stable
    • Hash er ikke udfyldt for onDemand

    xxx
    DocumentEntryHealthcareFacilityTypeCodeValidatorHealthcareFacilityTypeCode
    • regel: Metadata-v096 2.2.12 healthcareFacilityTypeCode
    • FealthcareFacilityTypeCode er udfyldt
    • overholder validering i HealthcareFacilityTypeCodeValidation
    xxxx
    DocumentEntryLanguageCodeValidatorLanguageCode
    • regel: Metadata-v096 2.2.15 languageCode
    • languageCode er udfyldt
    • overholder validering i LanguageCodeValidation
    xxxx
    DocumentEntryLegalAuthenticatorValidatorLegalAuthenticator
    • regel: Metadata-v096 2.2.16 legalAuthenticator
    • ! forudsætning for validering: legelAuthenticator er udfyldt
    • der er et familyName og et givenName 
    • længden af personens navne overstiger ikke 256
    • prefix, suffix og degree er ikke udfyldt
    xxxx
    DocumentEntryMimeTypeValidatorMimeType
    • regel: Metadata-v096 2.2.18 mimeType
    • MimeType er udfyldt
    • overholder validering i MimeTypeValidation
    xxxx
    DocumentEntryPatientIdValidatorPatientId
    • regel: Metadata-v096 2.2.20 PatientId
    • der er en PatientId
    • overholder validering i PatientIdCodeValidation
    xxxx
    DocumentEntryPracticeSettingCodeValidatorPracticeSettingCode
    • regel: Metadata-v096 2.2.21 practiceSettingCode
    • ! forudsætning for validering: PracticeSettingCode er udfyldt
    • overholder validering i PracticeSettingCodeValidation
    xxxx
    DocumentEntryReferenceidListValidatorReferenceidList
    • regel: Metadata-v096 2.2.22 referenceIdList
    • ! forudsætning for validering: ReferenceIdList har elementer
    • Id er udfyldt
    • længden af Id overstiger ikke 256
    xxxx
    DocumentEntryRepositoryUniqueIdValidatorRepositoryUniqueId
    • regel: Metadata-v096 2.2.23 repositoryUniqueId
    • RepositoryUniqueId er udfyldt
    xxxx
    DocumentEntrySizeValidatorSize
    • regel: Metadata-v096 2.2.26 size
    • ! forudsætning for validering: type er udfyldt
    • Size er udfyldt for Stable
    • Size er ikke udfyldt for onDemand

    xxx
    DocumentEntrySourcePatientIdValidatorSourcePatientId
    • regel: Metadata-v096 2.2.28 sourcePatientId
    • der er en SourcePatientId
    • overholder validering i PatientIdCodeValidation
    xxxx
    DocumentEntrySourcePatientInfoValidatorSourcePatientInfo
    • regel: Metadata-v096 2.2.29 sourcePatientInfo
    • der er en SourcePatientInfo, hvis denne er krævet
    • der er et navn, herunder et efternavn og mindst et fornavn
    • der er en fødselsdag
    • der er et køn
    xxxx
    DocumentEntryTitleValidatorTitle
    • regel: Metadata-v096 2.2.31 title
    • title er udfyldt
    • overholder validering i TitleValidation
    xxxx
    DocumentEntryTypeCodeValidatorTypeCode
    • regel: Metadata-v096 2.2.32 typeCode
    • TypeCode er udfyldt
    • overholder validering i TypeCodeValidation
    xxxx
    DocumentEntryTypeValidatorType
    • regel: Metadata-v096 2.2.19 objectType
    • Type er udfyldt
    • Type har en forventet værdi (Default for ITI41/ITI-42 er stable og for ITI-61 er on-demand)
    xxxx
    DocumentEntryUniqueIdValidatorUniqueId
    • regel: Metadata-v096 2.2.33 uniqueId
    • UniqueId er udfyldt
    xxxx
    DocumentEntryURIValidatorURI
    • regel: Metadata-v096 2.2.35 URI
    • ! forudsætning for validering: URI er udfyldt
    • længden af URI overstiger ikke 256
    xxxx
    DocumentEntryHomeCommunityIdValidatorHomeCommunityId
    • regel: Metadata-v096 2.2.13 homeCommunityId
    • der er en HomeCommunityId, hvis denne er krævet
    • overholder validering i HomeCommunityIdValidation
    xxxx
    SubmissionSetAuthorInstitutionValidatorAuthorInstitution
    • regel: Metadata-v096 2.2.1.1 authorInstitution
    • ! forudsætning for validering: Author og AuthorInstitution er udfyldt
    • overholder validering i OrganisationCodeValidation
    xxxx
    SubmissionSetEntryUUIDValidatorEntryUUID
    • regel: Metadata-v096 2.2.8 entryUUID
    • EntryUUID er udfyldt
    xxxx
    SubmissionSetPatientIdValidatorPatientId
    • regel: Metadata-v096 2.2.28 sourcePatientId
    • der er en Patient
    • overholder validering i PatientIdCodeValidation
    xxxx
    SubmissionSetUniqueIdValidatorUniqueId
    • regel: Metadata-v096 2.2.33 uniqueId
    • UniqueId er udfyldt
    xxxx
    SubmissionSetHomeCommunityIdValidatorHomeCommunityId
    • regel: Metadata-v096 2.2.13 homeCommunityId
    • der er en HomeCommunityId, hvis denne er krævet
    • overholder validering i HomeCommunityIdValidation
    xxxx








    Apd2AppointmentIdValidatorAppointmentId
    • regel: DK-APD-v2.0.1: 5.1 Appointment content
    • der
    er en HomeCommunityId, hvis denne er krævet
    • er et appointmentId (CONF-DK-APD:7493)
    x


    x
    Apd2CustodianIdValidatorCustodian
    • regel: DK-APD-v2.0.1: 2.1.5 custodian
    • ! forudsætning for validering: custodian er udfyldt
    • overholder validering i
    HomeCommunityIdValidation
    • OrganisationCodeValidation
    x


    xxx
    Apd2StartStopTimeValidatorStartStopTimeApd2AppointmentIdValidatorAppointmentId
    • regel: DK-APD-v2.0.1: 52.1.10.1 Appointment contentDate and Time
    • der ServiceStartTime er et appointmentId udfyldt (CONF-DK-APD:7493)592c)
    x


    x

    PhmrCustodianIdValidator

    Custodian

    • regel: PHMR-DK-v1.3 2.13.3 Custodian
    • ! forudsætning for validering: custodian er udfyldt
    • overholder validering i OrganisationCodeValidation

     

    x




    x

    Apd2CustodianIdValidatorQrdCustodianIdValidatorCustodian
    • regel: DK-APDQRD-v2v1.0.13: 2.12.5 custodianCustodian
    • ! forudsætning for validering: custodian er udfyldt
    • overholder validering i OrganisationCodeValidation
    x


    x








    Apd2StartStopTimeValidatorAudioDocumentEntryEventCodeValidatorStartStopTimeEventCodeList
    • !forudsætning for validering: TypeCode har værdien codesystem "2.16.840.1.113883.6.1", code "28615-3" og displayname "Audiology Study"
    • EventCode skal være udfyldt
    • EventCode skal indeholde ét element
    xx
  • regel: DK-APD-v2.0.1: 2.1.10.1 Appointment Date and Time
  • ServiceStartTime er udfyldt (CONF-DK-APD:592c)
    xx
    PhmrCustodianIdValidatorAudioDocumentEntryReferenceidListValidator

    Custodian

    • regel: PHMR-DK-v1.3 2.13.3 Custodian
    • ! forudsætning for validering: custodian er udfyldt
    • overholder validering i OrganisationCodeValidation

     

    x

    x

    QrdCustodianIdValidatorCustodian
    • regel: DK-QRD-v1.3: 2.2.5 Custodian
    • ! forudsætning for validering: custodian er udfyldt
    • overholder validering i OrganisationCodeValidation
    xxReferenceidList
    • !forudsætning for validering: TypeCode har værdien codesystem "2.16.840.1.113883.6.1", code "28615-3" og displayname "Audiology Study"
    • ReferenceidList skal være udfyldt
    • ReferenceId skal have et gyldigt format:
      • Id skal være udfyldt og have et gyldigt UUID-format
      • AssigningAuthority må ikke være udfyldt
      • IdTypeCode skal være udfyldt og have værdien "urn:ad:dk:medcom:noah:action-uuid"
      • HomeCommunityId må ikke være udfyldt
    xxxx
    AudioDocumentEntryServiceStartTimeValidatorServiceStartTimeAudioDocumentEntryEventCodeValidatorEventCodeList
    • !forudsætning for validering: TypeCode har værdien codesystem "2.16.840.1.113883.6.1", code "28615-3" og displayname "Audiology Study"
    • EventCode ServiceStartTime skal være udfyldtEventCode skal indeholde ét elementangivet
    • ServiceStartTime må ikke være før notBefore, hvis notBefore er angivet
    xxxx
    AudioDocumentEntryReferenceidListValidatorAudioDocumentEntryServiceStopTimeValidatorReferenceidListServiceStopStime
    • !forudsætning for validering: TypeCode har værdien codesystem "2.16.840.1.113883.6.1", code "28615-3" og displayname "Audiology Study"
    • ReferenceidList ServiceStopTime skal være udfyldtReferenceId skal have et gyldigt format:
    • Id skal være udfyldt og have et gyldigt UUID-format
    • AssigningAuthority må ikke være udfyldt
    • IdTypeCode skal være udfyldt og have værdien "urn:ad:dk:medcom:noah:action-uuid"
    • HomeCommunityId må ikke være udfyldt
    xxxx
    AudioDocumentEntryFormatCodeAndEventCodeValidator

    FormatCode

    EventCodeList

    • !forudsætning for validering: TypeCode har værdien codesystem "2.16.840.1.113883.6.1", code "28615-3" og displayname "Audiology Study"
    • FormatCode skal være angivet i EventCodeList, hvis EventCodeList er angivet.
    xxxx
    AudioDocumentEntrySourcePatientIdAndPatientIdValidatorAudioDocumentEntryServiceStartTimeValidator

    SourcePatientId

    ServiceStartTime

    PatientId

    • !forudsætning for validering: TypeCode har værdien codesystem "2.16.840.1.113883.6.1", code "28615-3" og displayname "Audiology Study"
    • ServiceStartTime skal være angivet
    • ServiceStartTime
    • SourcePatientId må ikke være
    • før notBefore, hvis notBefore er angivet
    • forskellig fra PatientId.
    xxxx
    AudioDocumentEntryServiceStopTimeAndServiceStartTimeValidatorAudioDocumentEntryServiceStopTimeValidator

    ServiceStopTime

    ServiceStopStime

    ServiceStartTime

    • !forudsætning for validering: TypeCode har værdien codesystem "2.16.840.1.113883.6.1", code "28615-3" og displayname "Audiology Study"
    • ServiceStopTime
    • skal være udfyldt
    • må ikke være før ServiceStartTime.
    xxxx


    .