Versions Compared

Key

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

Tjek relevant overordnede dele er til stede i input (så validatorer ikke behøver blive negative, hvis de ikke er)

Indhold:

Table of Contents

...

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

For at lette arbejdet med at overholde/validerere for standarderne, findes XdsValidation biblioteket. DROS komponenten kan gøre brug af denne validering, for at sikre, at der ikke komme ugyldige data ind i XDS infrastrukturen. Anvendere af DROS kan selv implementere validering vha. af XdsValidation biblioteket, hvis man ønsker at finde fejl, inden det faktiske kald udføres. Alle, der er koblet på NSP XDS infrastrukturen med enten registry eller repository eller som har sit eget affinitetsdomæne, kan med fordel anvende XdsValiderings biblioteket. Også som supplement til eventuel egen validering.

...

  • Udvikling af egen udvidede validering  i klassen Apd2StartStopTimeSpecifikValueValidator (en almindelig validator vil her være passende som som skabelon)
  • Lave en kopi af klassen Iti41ValidationFactory som Iti41ValidationFactoryExtended
  • Tilføj egen validering (se eksemplet ovenfor i afsnit 2.1 for "fremtidigt eksempel med yderligere validering"
  • Der, hvor man normalt ville bruge Iti41ValidationFactory.createIti41Validator anvender man istedet Iti41ValidationFactoryExtended.createIti41Validator.

Eksempel fra DROS

For at gøre brug af xdsValidation skal følgende dependencies tilføjes til maven pom fil:

Code Block
languagexml
titleMaven pom fil
linenumberstrue
<dependency>
	<groupId>dk.nsp</groupId>
	<artifactId>validation-xds</artifactId>
</dependency> 

Hvis man ikke allerede anvender IPF Open eHealth Integration Platform skal følgende dependency tilføjes

Code Block
languagexml
titleMaven pom fil
linenumberstrue
<dependency>
	<groupId>org.openehealth.ipf.commons</groupId>
	<artifactId>ipf-commons-ihe-xds</artifactId>
	<version>${openehealth.version}</version>
 </dependency> 
<!-- openehealth.version bør være samme version som XDSValidation anvender -->

Følgende kode er taget fra DROS's validerings logik for ITI 41 kald.

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, ProvideAndRegisterDocumentSetStarter starter, XdsValidationLevel xdsValidationLevel) {
    return getXdsValidationErrors(() -> starter.validate(request), xdsValidationLevel);
}

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

//Klassen XdsValidatorFactory
public class XdsValidatorFactory {
    public ProvideAndRegisterDocumentSetStarter buildIti41Validator() {
        return Iti41ValidationFactory.createIti41Validator();
    }

    public RegisterDocumentSetStarter buildIti42Validator() {
        return Iti42ValidationFactory.createIti42Validator();
    }

    public RegisterDocumentSetStarter buildIti57Validator() {
        return Iti57ValidationFactory.createIti57Validator();
    }

    public RegisterDocumentSetStarter buildIti61Validator() {
        return Iti61ValidationFactory.createIti61Validator();
    }
}

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
}
Code Block
languagejava
titleIti57ValidationImpl - anvendels af XdsValidation
linenumberstrue
// Fra klassen Iti41ValidationImpl metode validateAndTransform
List<ErrorInfo> xdsValidationErrors = getXdsValidationErrors(registerDocumentSet, xdsValidatorFactory.buildIti57Validator(), xdsValidationLevel);

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

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.

Understøttede valideringsregler

De implementerede valideringsregler er lavet med udgangspunkt i de danske standarder og IHE XDS specifikationen.

Disse regler/standarder refereres på følgende måde::

  • IHE Vol3 4.2.3.1.2 Creating Coded Attributes: Henviser til IHE XDS specifikationen volume 3, afsnit 4.2.3.1.2
  • DK_IHE_ClassCode_DE: Henviser til til Medcoms fælles liste over tilladet værdisæt faneblad ClassCode_DE
  • Metadata-v096 2.2.3 classCode: Henviser til den danske CDA profil afsnit 2.2.3
  • DK-APD-v2.0.1: 2.1.10.1 Appointment Date and Time: Henviser til Appointment Document (APD) til aftaler afsnit 2.1.10.1
  • DK-QRD-v1.3: 2.2.5 Custodian: Henviser til Questionnaire Response Document (QRD)  afsnit 2.2.5
  • PHMR-DK-v1.3 2.13.3 Custodian: Henviser til Personal Healthcare Monitoring Report (PHMR) afsnit 2.13.3

Begreber (entiteter/atributer mm) anvendt i valideringen stammer fra IHE frameworket (documentEntry og SubmissionSet) samt Medcoms Cda builder/parser (anvendes til at parse CDA header og de konkrete danske profileringer).

For nu er følgende valideringer implementeret. Beskrivelserne i tabelkolonnerne "Validering" stammer fra XdsValidationprojektets javadoc og skal vedligeholdes der.

Bemærk det er muligt sortere og filtrere i tabellerne med confluence indbyggede tabelhåndtering. 

(Anvend "mvn javadoc:javadoc -pl \!validation-cda-dependencies" for at generere i target/site folderne for mvn modulerne validation-xds og validation-codes)

Default validering konfiguration

Man kan med fordel tage udgangspunkt i disse konfigurerede valideringer, ligesom DROS gør i ovenstående eksempler. Hvad de hver især dækker fremgår af de følgende afsnit.

...

Har man brug for at kunne lave sin egen enricher, og tilhørende opbevaring til en validator senere i flowet kan man gøre følgende

  • Opret en klasse, som beskriver det objekt man gerne vil have enricheren til at enriche til
  • Opret en enricher i stil med f.eks. CdaDocumentPhmrModelEnricher
    • Dens enrich metode skal modtage XDSDocument som input
    • Den skal oprette et beriget objekt (punkt 1) og  tilføje det til XDSDocument som en "enrichment".

  • Lav de yderligere relevante validatorer, som validererer dette ny enriched object
  • Kombiner ekisterende  og nye enrichere og validatorer i en ValidationFactory som beskrevet i afsnittet tidligere.

    Code Block
    languagejava
    titleEksempel på anvendelse af eget format
    public static final EnrichmentKey<MyTestDocument> ENRICHMENT_MY_TEST_DOCUMENT = EnrichmentKey.create(MyTestDocument.class);
    
    public class MyTestDocument {
    	private String somefield1;
    	private String somefield2;
    }
    
    
    public class MyTestDocumentModelEnricher extends AbstractModelEnricherImpl<XDSDocument> implements Validator<XDSDocument> {
    	
    	@Override
    	protected ValidationResultSet enrich(XDSDocument input) {
    	
    		ValidationResultSet validationResultSet = new ValidationResultSet();
    		
    		MyTestDocument myTestClass = new MyTestDocument();
    	
    		// lav logik som tager relevant indhold fra XDSDocument og pakker det om til MyTestDocument
    		
    		// opstår der fejl kan de returneres i validationResultSet
    		
    		xdsDocument.setEnrichment(ENRICHMENT_MY_TEST_DOCUMENT, myTestClass);
    		
    		return validationResultSet;
    		
    	}
    }
    
    
    public class MyTestDocumentSomeField1Validator extends AbstractValidatorImpl<XDSDocument> {
    	
    	@Override
    	protected ValidationResultSet validateInternal(XDSDocument input) {
    
    		if (input == null || input.getEnrichment(ENRICHMENT_MY_TEST_DOCUMENT) == null) {
    			return null;
    		}
    
    		ValidationResultSet validationResultSet = new ValidationResultSet();
    		
    		// lav logik til validering af input.getEnrichment(ENRICHMENT_MY_TEST_DOCUMENT).getSomeField1();
    		// hvis fejl returneres de i validationResultSet;
    		
    		return validationResultSet;
    	}
    }

Eksempel fra DROS

For at gøre brug af xdsValidation skal følgende dependencies tilføjes til maven pom fil:

Code Block
languagexml
titleMaven pom fil
linenumberstrue
<dependency>
	<groupId>dk.nsp</groupId>
	<artifactId>validation-xds</artifactId>
</dependency> 


Hvis man ikke allerede anvender IPF Open eHealth Integration Platform skal følgende dependency tilføjes

Code Block
languagexml
titleMaven pom fil
linenumberstrue
<dependency>
	<groupId>org.openehealth.ipf.commons</groupId>
	<artifactId>ipf-commons-ihe-xds</artifactId>
	<version>${openehealth.version}</version>
 </dependency> 
<!-- openehealth.version bør være samme version som XDSValidation anvender -->


Følgende kode er taget fra DROS's validerings logik for ITI 41 kald.

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, ProvideAndRegisterDocumentSetStarter starter, XdsValidationLevel xdsValidationLevel) {
    return getXdsValidationErrors(() -> starter.validate(request), xdsValidationLevel);
}

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

//Klassen XdsValidatorFactory
public class XdsValidatorFactory {
    public ProvideAndRegisterDocumentSetStarter buildIti41Validator() {
        return Iti41ValidationFactory.createIti41Validator();
    }

    public RegisterDocumentSetStarter buildIti42Validator() {
        return Iti42ValidationFactory.createIti42Validator();
    }

    public RegisterDocumentSetStarter buildIti57Validator() {
        return Iti57ValidationFactory.createIti57Validator();
    }

    public RegisterDocumentSetStarter buildIti61Validator() {
        return Iti61ValidationFactory.createIti61Validator();
    }
}


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
}
Code Block
languagejava
titleIti57ValidationImpl - anvendels af XdsValidation
linenumberstrue
// Fra klassen Iti41ValidationImpl metode validateAndTransform
List<ErrorInfo> xdsValidationErrors = getXdsValidationErrors(registerDocumentSet, xdsValidatorFactory.buildIti57Validator(), xdsValidationLevel);

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


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.

Understøttede valideringsregler

De implementerede valideringsregler er lavet med udgangspunkt i de danske standarder og IHE XDS specifikationen.

Disse regler/standarder refereres på følgende måde::

  • IHE Vol3 4.2.3.1.2 Creating Coded Attributes: Henviser til IHE XDS specifikationen volume 3, afsnit 4.2.3.1.2
  • DK_IHE_ClassCode_DE: Henviser til til Medcoms fælles liste over tilladet værdisæt faneblad ClassCode_DE
  • Metadata-v096 2.2.3 classCode: Henviser til den danske CDA profil afsnit 2.2.3
  • DK-APD-v2.0.1: 2.1.10.1 Appointment Date and Time: Henviser til Appointment Document (APD) til aftaler afsnit 2.1.10.1
  • DK-QRD-v1.3: 2.2.5 Custodian: Henviser til Questionnaire Response Document (QRD)  afsnit 2.2.5
  • PHMR-DK-v1.3 2.13.3 Custodian: Henviser til Personal Healthcare Monitoring Report (PHMR) afsnit 2.13.3

Begreber (entiteter/atributer mm) anvendt i valideringen stammer fra IHE frameworket (documentEntry og SubmissionSet) samt Medcoms Cda builder/parser (anvendes til at parse CDA header og de konkrete danske profileringer).

For nu er følgende valideringer implementeret. Beskrivelserne i tabelkolonnerne "Validering" stammer fra XdsValidationprojektets javadoc og skal vedligeholdes der.

Bemærk det er muligt sortere og filtrere i tabellerne med confluence indbyggede tabelhåndtering. 

(Anvend "mvn javadoc:javadoc" for at generere i target/site folderne for mvn modulerne validation-xds og validation-codes)

Default validering konfiguration

Man kan med fordel tage udgangspunkt i disse konfigurerede valideringer, ligesom DROS gør i ovenstående eksempler. Hvad de hver især dækker fremgår af de følgende afsnit.

Klasse
CdaDocumentValidatorFactory
Iti41ValidationFactory
Iti42ValidationFactory
Iti61ValidationFactory
Iti57ValidationFactory


De forskellige factories anvender en TerminologyDictionary. I TerminologyDictionary findes en række "LegalCodeChecker"s som anvendes af typevalideringerne (se afsnit nedenfor) til at validere gyldige koder med. Default opsætningen er specificeret i TerminologyDictionary og er følgende:

  • ClassCode: Default gyldigt codeSystem er OID "1.2.208.184.100.9" (DK_IHE_ClassCode_DE).
  • ConfidentialityCode: Default gyldigt codeSystem er OID "2.16.840.1.113883.5.25". Gyldig kode er "N". (DK_IHE_ConfidentialityCode_DE)
  • OrganisationCode: Default gyldige codeSystemer er "1.2.208.176.1.1" (SOR) og "1.2.208.176.1.4" (YDERNUMMER).
  • PatientIdCode: Default gyldigt codeSystem er "1.2.208.176.1.2" (CPR).

Ønskes validering af hele kodersæt, kan disse sendes med ind istedet for anvendelse af default valideringen. Benyt LegalCodeCheckerAsList til dette. Og ønkes en helt anden anden kodevalidering end mod en liste kan man lave sin egen implementation af LegalCodeChecker.

Validering  Validering af struktur

Dette er validering, som har med struktur at gøre. F.eks. udpakning af information og forventninger til del-elementer.

Afkrydningen i tabellens 5 sidste søjler indikerer, om en given validering er inkluderet i default valideringer, som er konfigureret i XdsValidation biblioteket.biblioteket.

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







XDSDocumentValidator
  • under-validatorne tjekker for dokument type. Default vil det være:
    • CdaDocumentHeaderModelEnricher
x



CdaDocumentValidator
  • under-validatorne tjekker for dokument type. Default vil det være:
    • CdaDocumentHeaderModelEnricher




x
CdaDocumentTypeValidator
  • under-validatorne tjekker for dokument type/ indholdsprofil. Default vil det være:
    • CdaDocumentApdV2ModelEnricher
    • CdaDocumentPhmrModelEnricher
    • CdaDocumentQrdModelEnricher
x


x







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



CdaDocumentHeaderModelEnricher
  • 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
  • det er et PHAD dokument: CodeCodedValue
KlasseValideringITI 41ITI 42ITI 61ITI 57Cda dokument
ProvideAndRegisterDocumentSetStarter
  • submissionSet pakkes ud
  • dokumenter pakkes ud
  • der er som minimum et dokument
xRegisterDocumentSetStarter
  • submissionSet pakkes ud
  • dokumentEntries pakkes ud
xxxXDSDocumentITI41StructureValidator
  • der findes et documentEntry
  • der findes et fysisk dokument
  • der findes et submissionSet
xXDSDocumentITI42StructureValidator
  • der findes et documentEntry
  • der findes et submissionSet
xXDSDocumentITI61StructureValidator
  • der findes et documentEntry
  • der findes et submissionSet
xXDSDocumentITI57StructureValidator
  • der findes et submissionSet
xXDSDocumentValidator
  • under-validatorne tjekker for dokument type. Default vil det være:
    • CdaDocumentHeaderModelEnricher
xCdaDocumentValidator
  • under-validatorne tjekker for dokument type. Default vil det være:
    • CdaDocumentHeaderModelEnricher
xCdaDocumentTypeValidator
  • under-validatorne tjekker for dokument type/ indholdsprofil. Default vil det være:
    • CdaDocumentApdV2ModelEnricher
    • CdaDocumentPhmrModelEnricher
    • CdaDocumentQrdModelEnricher
xxXDSDocumentContentModelEnricher
  • indhold kan læses som bytes (UTF8)
xCdaDocumentHeaderModelEnricher
  • bytes kan parses som en CDA header
xxCdaDocumentApdV2ModelEnricherdet er et aftale dokument: CodeCodedValue 392894
  • det er Cda Header Version 2: FormatCode har Codesystem "1.2.208.184.100.10" og code "urn:ad:dk:medcom:apd-v2.0.1:full"
  • CDA dokumentet kan parses som et APD dokument
  • xxCdaDocumentPhmrModelEnricher
    • 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
    xxCdaDocumentQrdModelEnricher
    • 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
    xx

    Typevalideringer

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

    x


    x


    Typevalideringer

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

    KlasseValidering

    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



    CodedValueValidation

    • 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 legalCodeChecker (med default værdier i TerminologyDictionary)

    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 TerminologyDictionary. 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 TerminologyDictionary. 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.
    HealthcareFacilityTypeCodeValidation
    • regel: IHE
    KlasseValidering

    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

    StringCompare

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

    CodedValueValidation

    • regel: IHE Vol3 4.2.3.1.2 Creating Coded Attributes
    • codeSystem er hvis udfyldt
    • codeSystem er gyldigt
    • code er udfyldt

    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
    • 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" 

    ClassCodeValidation

    • regel: IHE Vol3 4.2.3.1.2 Creating Coded Attributes
    • længden på code er ikke  større end 3 (DK_IHE_ClassCodeLanguageCode_DE)
    OrganisationCodeValidation
    • hvis codeSystem er Yder så er længden på code 6
    • hvis codeSystem er Yder er code numeriskdisplayName er udfyldt
    • overholder validering i CodedValueValidation. Default gyldigt codeSystem er OID "1.2.208.184.100.9" (DK_IHE_ClassCode_DE)angivet i TerminologyDictionary. Code og CodeSystem er udfyldt.
    PatientIdCodeValidation
    • overholder validering i CodedValueValidation. Default gyldigt codeSystem angivet i TerminologyDictionary. Code og CodeSystem er udfyldt.
    PracticeSettingCodeValidationConfidentialityCodeValidation
    • regel: IHE Vol3 4.2.3.1.2 Creating Coded Attributescode indholder "N" (DK_IHE_ConfidentialityCode_DE)
    • overholder validering i CodedValueValidation. Default gyldigt codeSystem er OID "2.16.840.1.113883.5.25" (DK_IHE_ConfidentialityCode_DE)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:
    EventCodeValidation
    • regel IHE 4.2.3.1.2 Creating Coded Attributes
    • displayName er udfyldt
    • overholder validering i CodedValueValidation. Ingen default gyldig codeSystem.
    FormatCodeValidation
    • regel: IHE 4.2.3.1.2 Creating Coded Attributes
    • displayName er udfyldt
    • overholder validering i CodedValueValidation. Ingen default gyldig codeSystem.
    HealthcareFacilityTypeCodeValidation
    • regel: IHE 4.2.3.1.2 Creating Coded Attributes
    • displayName er udfyldt
    • hvis udfyldt er værdien numerisk (DK_HealthcareFacilityType_DE)
    • overholder validering i CodedValueValidation. Ingen default gyldig codeSystem.
    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 CodedValueValidation. Default gyldige codeSystemer er "1.2.208.176.1.1" (SOR) og "1.2.208.176.1.4" (YDERNUMMER)
    PatientIdCodeValidation
    • overholder validering i CodedValueValidation. Default gyldigt codeSystem er "1.2.208.176.1.2" (CPR)
    PracticeSettingCodeValidation
    • regel: IHE 4.2.3.1.2 Creating Coded Attributes
    • displayName er udfyldt
    • overholder validering i CodedValueValidation. Ingen default gyldig codeSystem.
    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
    • displayName er udfyldt
    • validering i CodedValueValidation. Ingen default gyldig codeSystem.

    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, om en given validering er inkluderet i default valideringer, som er konfigureret i XdsValidation biblioteket.

    • Code, CodeSystem og DisplayName er udfyldt.

    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
    CdaCrossDocumentEntryAuthorInstitutionValidator
    • der er lige mange authors (dvs en)
    • der er lige mange AuthorInstitutions på den enkelte author
    • overholder validering i CodedModelCompare
    x



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



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



    CdaCrossDocumentEntryCreationTimeValidator
    • overholder validering i DateTimeCompare
    x



    CdaCrossDocumentEntryEventCodeValidator
    • overholder validering i CodedModelCompare
    x



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



    CdaCrossDocumentEntryLegalAuthenticatorValidator
    • overholder validering i StringCompare indeholdende legalAuthenticators titel og navne
    x



    CdaCrossDocumentEntryPatientIdValidator
    • overholder validering i CodedModelCompare
    x



    CdaCrossDocumentEntryServiceStartTimeValidator
    • overholder validering i DateTimeCompare
    x



    CdaCrossDocumentEntryServiceStopTimeValidator
    • overholder validering i DateTimeCompare
    x



    CdaCrossDocumentEntrySourcePatientIdValidator
    • overholder validering i CodedModelCompare
    x



    CdaCrossDocumentEntrySourcePatientInfoValidator
    • 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



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



    CdaCrossDocumentEntryTypeCodeValidator
    • overholder validering i CodedModelCompare
    x



    SubmissionSetCrossDocumentEntryAuthorInstitutionValidator
    • ! forudsætning for validering: submissionSet har authors
    • der er lige mange authors
    KlasseValidering mellem de 2 entiter nævnt i klassens navnITI 41ITI 42ITI 61ITI 57Cda dokument
    CdaCrossDocumentEntryAuthorInstitutionValidator
    • der er lige mange authors (dvs en)
    • der er lige mange AuthorInstitutions på den enkelte authoroverholder validering i CodedModelCompare
    • overholder validering i CodedModelCompare
    xxxx
    SubmissionSetCrossDocumentEntryAuthorPersonValidator
    • ! forudsætning for validering: submissionSet har authors
    CdaCrossDocumentEntryAuthorPersonValidatorder er lige mange authors (dvs en)
    • overholder validering i StringCompare indholdende
    personens
    • personernes titel og navne
    xCdaCrossDocumentEntryConfidentialityCodeValidator
    • (indirekte test af at der er lige mange
    ConfidentialityCodes (dvs en)
  • overholder validering i CodedModelCompare
  • xCdaCrossDocumentEntryCreationTimeValidator
    • overholder validering i DateTimeCompare
    xCdaCrossDocumentEntryEventCodeValidator
    • overholder validering i CodedModelCompare
    xCdaCrossDocumentEntryLanguageCodeValidator
    • overholder validering i StringCompare indeholdende languageCode værdierne
    xCdaCrossDocumentEntryLegalAuthenticatorValidator
    • overholder validering i StringCompare indeholdende legalAuthenticators titel og navne
    xCdaCrossDocumentEntryPatientIdValidator
    • overholder validering i CodedModelCompare
    xCdaCrossDocumentEntryServiceStartTimeValidator
    • overholder validering i DateTimeCompare
    xCdaCrossDocumentEntryServiceStopTimeValidator
    • overholder validering i DateTimeCompare
    xCdaCrossDocumentEntrySourcePatientIdValidator
    • overholder validering i CodedModelCompare
    xCdaCrossDocumentEntrySourcePatientInfoValidator
    • overholder validering i StringCompare indeholdende personens titel og navne
    • overholder validering i DateTimeCompare med datoer, hvor datoer er fødselsdato
    • overholder validering i StringCompare med køn værdierne
    xCdaCrossDocumentEntryTitleValidator
    • overholder validering i StringCompare indeholdende titel værdierne
    xCdaCrossDocumentEntryTypeCodeValidator
    • 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 titel og navne
    • (indirekte test af at der er lige mange authors qua listen af titel og navne)
    xxxxSubmissionSetCrossDocumentEntryPatientIdValidator
    • value og codeSystem er ens
    xxxx

    Feltvalideringer

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

    Afkrydningen i tabellens 5 sidste søjler indikerer, om en given validering er inkluderet i default valideringer, som er konfigureret i XdsValidation biblioteket.

    Søjlen "felt" kan anvendes til sortering, hvis man ønsker at se valideringen for et specifik felt på tværs af entitet.

    • authors qua listen af titel og 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.

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

    Søjlen "felt" kan anvendes til sortering, hvis man ønsker at se valideringen for et specifik felt på tværs af entitet.

    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
    KlasseFeltValideringITI 41ITI 42ITI 61ITI 57Cda dokument

    CdaHeaderAuthorInstitutionValidator

    AuthorInstitution
    • regel: Metadata-v096 2.2.1.1 authorInstitution
    • author er udfyldt 
    • 20 patientId
    • der er en Patient med et PatientIdauthorInstitution er udfyldt
    • overholder validering i OrganisationCodeValidationPatientIdCodeValidation
    x


    x

    CdaHeaderAuthorPersonValidatorCdaHeaderSourcePatientIdValidator

    AuthorPersonSourcePatientId
    • regel: Metadata-v096 2.2.1.2 authorPerson
    • author er udfyldt
    • authorPerson er udfyldt
    • 28 sourcePatientId
    • der er en sourcePatient med et PatientId
    • overholder validering i PatientIdCodeValidationder er et FamilyName og mindst et givenName
    x


    x

    CdaHeaderConfidentialityCodeValidatorCdaHeaderSourcePatientInfoValidator

    ConfidentialityCodeSourcePatientInfo
    • regel: Metadata-v096 2.2.5 confidentialityCode
    • confidentialityCode er udfyldt
    • overholder validering i ConfidentialityCodeValidation
    • 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

    CdaHeaderEventCodeValidatorCdaHeaderTitleValidator

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


    x

    CdaHeaderFormatCodeValidatorCdaHeaderTypeCodeValidator

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


    x

    CdaHeaderLanguageCodeValidatorDocumentEntryClassCodeValidator

    LanguageCodeClassCode
    • regel: Metadata-v096 2.2.15 languageCode3 classCode
    • languageCode classCode er udfyldt
    • overholder validering i LanguageCodeValidationClassCodeValidation
    xxxx
    CdaHeaderPatientIdValidatorDocumentEntryAuthorInstitutionValidatorPatientIdAuthorInstitution
    • regel: Metadata-v096 2.2.20 patientId.1.1 authorInstitution
    • der er mindst en author
    • der er en Patient med et PatientIdauthorInstitution 
    • overholder validering i PatientIdCodeValidationOrganisationCodeValidation
    xxxx
    CdaHeaderSourcePatientIdValidatorDocumentEntryAuthorPersonValidatorSourcePatientIdAuthorPerson
    • regel: Metadata-v096 2.2.28 sourcePatientId1.2 authorPerson
    • ! forudsætning for validering: authorPerson er udfyldt
    • der er en sourcePatient med et PatientIdoverholder validering i PatientIdCodeValidationet familyName og et givenName
    xxxx
    CdaHeaderSourcePatientInfoValidatorDocumentEntryAvailabilityStatusValidatorSourcePatientInfoAvailabilityStatus
    • regel: Metadata-v096 2.2.29 sourcePatientInfo2 availabilityStatus
    • der AvailabilityStatus er en patient
    • der er et familyName og mindst et givenName
    • der er en fødselsdag
    • der er et køn
    • udfyldt
    • AvailabilityStatus indeholder værdien approved eller deprecated
    xxxx
    CdaHeaderTitleValidatorDocumentEntryClassCodeValidatorTitleClassCode
    • regel: Metadata-v096 2.2.31 title3 classCode
    • title classCode er udfyldt
    • overholder validering i TitleValidationClassCodeValidation
    xxxx
    CdaHeaderTypeCodeValidatorDocumentEntryConfidentialityCodeValidatorTypeCodeConfidentialityCode
    • regel: Metadata-v096 2.2.32 typeCode5 confidentialityCode
    • der er mindst en confidentialityCodeTypeCode (CodeCodedValue) er udfyldt
    • overholder validering i TypeCodeValidationConfidentialityCodeValidation
    xxxx
    DocumentEntryClassCodeValidatorDocumentEntryCreationTimeValidatorClassCodeCreationTime
    • regel: Metadata-v096 2.2.3 classCode7 createTime
    • classCode CreationTime er udfyldt
    • overholder validering i ClassCodeValidation
    xxxx
    DocumentEntryAuthorInstitutionValidatorDocumentEntryEntryUUIDValidatorAuthorInstitutionEntryUUID
    • regel: Metadata-v096 2.2.1.1 authorInstitution
    • der er mindst en author
    • der er en authorInstitution 
    • 8 entryUUID
    • EntryUUID er udfyldtoverholder validering i OrganisationCodeValidation
    xxxx
    DocumentEntryAuthorPersonValidatorDocumentEntryEventCodeValidatorAuthorPersonEventCode
    • regel: Metadata-v096 2.2.1.2 authorPerson
    • der er mindst en author 
    • der er en authorPerson på hver author
    • 9 eventCodeList
    • ! forudsætning for validering: EventCodeList har elementer
    • EventCode er udfyldt
    • overholder validering i EventCodeValidationder er et familyName og et givenName
    xxxx
    DocumentEntryAvailabilityStatusValidatorDocumentEntryFormatCodeValidatorAvailabilityStatusFormatCode
    • regel: Metadata-v096 2.2.2 availabilityStatus10 formatCode
    • AvailabilityStatus FormatCode er udfyldtAvailabilityStatus indeholder værdien approved eller deprecated
    • overholder validering i FormatCodeValidation
    xxxx
    DocumentEntryClassCodeValidatorDocumentEntryHashValidatorClassCodeHash
    • regel: Metadata-v096 2.2.3 classCode
    • classCode er udfyldt
    • 11 hash
    • ! forudsætning for validering: type er udfyldt
    • Hash er udfyldt for Stable
    • Hash er ikke udfyldt for onDemandoverholder validering i ClassCodeValidation

    xxxx
    DocumentEntryHealthcareFacilityTypeCodeValidatorDocumentEntryConfidentialityCodeValidatorHealthcareFacilityTypeCodeConfidentialityCode
    • regel: Metadata-v096 2.2.5 confidentialityCode12 healthcareFacilityTypeCode
    • der FealthcareFacilityTypeCode er mindst en confidentialityCodeudfyldt
    • overholder validering i ConfidentialityCodeValidationHealthcareFacilityTypeCodeValidation
    xxxx
    DocumentEntryCreationTimeValidatorDocumentEntryLanguageCodeValidatorCreationTimeLanguageCode
    • regel: Metadata-v096 2.2.7 createTime15 languageCode
    • CreationTime languageCode er udfyldt
    • overholder validering i LanguageCodeValidation
    xxxx
    DocumentEntryEntryUUIDValidatorDocumentEntryLegalAuthenticatorValidatorEntryUUIDLegalAuthenticator
    • regel: Metadata-v096 2.2.8 entryUUID16 legalAuthenticator
    • ! forudsætning for validering: legelAuthenticator EntryUUID er udfyldt
    • der er et familyName og et givenName 
    xxxx
    DocumentEntryEventCodeValidatorDocumentEntryMimeTypeValidatorEventCodeMimeType
    • regel: Metadata-v096 2.2.9 eventCodeList
    • ! forudsætning for validering: EventCodeList har elementer
    • EventCode er udfyldt
    • 18 mimeType
    • MimeType er udfyldtoverholder validering i EventCodeValidation
    xxxx
    DocumentEntryFormatCodeValidatorDocumentEntryPatientIdValidatorFormatCodePatientId
    • regel: Metadata-v096 2.2.10 formatCode20 PatientId
    • FormatCode der er udfyldten PatientId
    • overholder validering i FormatCodeValidationPatientIdCodeValidation
    xxxx
    DocumentEntryHashValidatorDocumentEntryPracticeSettingCodeValidatorHashPracticeSettingCode
    • regel: Metadata-v096 2.2.11 hash21 practiceSettingCode
    • ! forudsætning for validering: type PracticeSettingCode er udfyldt og der er tale om onDemandHash er udfyldt
    • overholder validering i PracticeSettingCodeValidation
    xxxx
    DocumentEntryHealthcareFacilityTypeCodeValidatorDocumentEntryReferenceidListValidatorHealthcareFacilityTypeCodeReferenceidList
    • regel: Metadata-v096 2.2.12 healthcareFacilityTypeCode
    • FealthcareFacilityTypeCode er udfyldt
    • 22 referenceIdList
    • ! forudsætning for validering: ReferenceIdList har elementer
    • Id er udfyldt
    • længden af Id overstiger ikke 256overholder validering i HealthcareFacilityTypeCodeValidation
    xxxx
    DocumentEntryLanguageCodeValidatorDocumentEntryRepositoryUniqueIdValidatorLanguageCodeRepositoryUniqueId
    • regel: Metadata-v096 2.2.15 languageCode23 repositoryUniqueId
    • languageCode RepositoryUniqueId er udfyldtoverholder validering i LanguageCodeValidation
    xxxx
    DocumentEntryLegalAuthenticatorValidatorDocumentEntrySizeValidatorLegalAuthenticatorSize
    • regel: Metadata-v096 2.2.16 legalAuthenticator26 size
    • ! forudsætning for validering: legelAuthenticator type er udfyldt
    • der er et familyName og et givenName 
    x
    • Size er udfyldt for Stable
    • Size er ikke udfyldt for onDemand

    xxx
    DocumentEntryMimeTypeValidatorDocumentEntrySourcePatientIdValidatorMimeTypeSourcePatientId
    • regel: Metadata-v096 2.2.18 mimeType28 sourcePatientId
    • der er en SourcePatientId
    • overholder validering i PatientIdCodeValidationMimeType er udfyldt
    xxxx
    DocumentEntryPatientIdValidatorDocumentEntrySourcePatientInfoValidatorPatientIdSourcePatientInfo
    • regel: Metadata-v096 2.2.20 PatientId29 sourcePatientInfo
    • der er en SourcePatientInfo
    • der er et navn, herunder et efternavn og mindst et fornavn
    • der er en PatientIdfødselsdag
    • der er et kønoverholder validering i PatientIdCodeValidation
    xxxx
    DocumentEntryPracticeSettingCodeValidatorDocumentEntryTitleValidatorPracticeSettingCodeTitle
    • regel: Metadata-v096 2.2.21 practiceSettingCode31 title
    • PracticeSettingCode title er udfyldt
    • overholder validering i PracticeSettingCodeValidationTitleValidation
    xxxx
    DocumentEntryReferenceidListValidatorDocumentEntryTypeCodeValidatorReferenceidListTypeCode
    • regel: Metadata-v096 2.2.22 referenceIdList
    • ! forudsætning for validering: ReferenceIdList har elementer
    • Id er udfyldt
    • 32 typeCode
    • TypeCode er udfyldt
    • overholder validering i TypeCodeValidationlængden af Id overstiger ikke 256
    xxxx
    DocumentEntryRepositoryUniqueIdValidatorDocumentEntryTypeValidatorRepositoryUniqueIdType
    • regel: Metadata-v096 2.2.23 repositoryUniqueId19 objectType
    • RepositoryUniqueId Type er udfyldt
    • Type har en forventet værdi (Default for ITI41/ITI-42 er stable og for ITI-61 er on-demand)
    xxxx
    DocumentEntrySizeValidatorDocumentEntryUniqueIdValidatorSizeUniqueId
    • regel: Metadata-v096 2.2.26 size33 uniqueId
    • Size UniqueId er udfyldt
    xxxx
    DocumentEntrySourcePatientIdValidatorDocumentEntryURIValidatorSourcePatientIdURI
    • regel: Metadata-v096 2.2.28 sourcePatientId
    • der er en SourcePatientId
    • 35 URI
    • ! forudsætning for validering: URI er udfyldt
    • længden af URI overstiger ikke 256overholder validering i PatientIdCodeValidation
    xxxx
    DocumentEntrySourcePatientInfoValidatorSubmissionSetAuthorInstitutionValidatorSourcePatientInfoAuthorInstitution
    • regel: Metadata-v096 2.2.29 sourcePatientInfo
    • der er en SourcePatientInfo
    • der er et navn
    • der er en fødselsdag
    • der er et køn
    • 1.1 authorInstitution
    • ! forudsætning for validering: Author og AuthorInstitution er udfyldt
    • overholder validering i OrganisationCodeValidation
    xxxx
    DocumentEntryTitleValidatorSubmissionSetEntryUUIDValidatorTitleEntryUUID
    • regel: Metadata-v096 2.2.31 title8 entryUUID
    • title EntryUUID er udfyldtoverholder validering i TitleValidation
    xxxx
    DocumentEntryTypeCodeValidatorSubmissionSetPatientIdValidatorTypeCodePatientId
    • regel: Metadata-v096 2.2.32 typeCode28 sourcePatientId
    • TypeCode der er udfyldten Patient
    • overholder validering i TypeCodeValidationPatientIdCodeValidation
    xxxx
    DocumentEntryTypeValidatorSubmissionSetUniqueIdValidatorTypeUniqueId
    • regel: Metadata-v096 2.2.19 objectType33 uniqueId
    • Type UniqueId er udfyldt
    • Type har en forventet værdi (Default for ITI-42 er stable og for ITI-61 er on-demand)
    xxxx








    DocumentEntryUniqueIdValidatorApd2AppointmentIdValidatorUniqueIdAppointmentId
    • regel: Metadata-v096 2.2.33 uniqueId
    • UniqueId er udfyldt
    • DK-APD-v2.0.1: 5.1 Appointment content
    • der er et appointmentId (CONF-DK-APD:7493)
    x


    x
    Apd2CustodianIdValidatorCustodian
    • regel: DK-APD-v2.0.1: 2.1.5 custodian
    DocumentEntryURIValidatorURI
    • regel: Metadata-v096 2.2.35 URI
    • ! forudsætning for validering: URI custodian er udfyldt
    • længden af URI overstiger ikke 256
    SubmissionSetAuthorInstitutionValidator
    • overholder validering i OrganisationCodeValidation
    x


    x
    Apd2StartStopTimeValidatorStartStopTimeAuthorInstitution
    • regel: Metadata-v096 2.DK-APD-v2.0.1: 2.1.10.1 authorInstitution
    • ! forudsætning for validering: Author og AuthorInstitution er udfyldt
    • overholder validering i OrganisationCodeValidation
    x
    • Appointment Date and Time
    • ServiceStartTime er udfyldt (CONF-DK-APD:592c)
    x


    xx

    PhmrCustodianIdValidator

    SubmissionSetPatientIdValidator

    Custodian

    PatientId
    • regel: Metadata-v096 PHMR-DK-v1.3 2.213.28 sourcePatientId3 Custodian
    • ! forudsætning for validering: custodian er udfyldtder er en Patient
    • overholder validering i PatientIdCodeValidationOrganisationCodeValidation
    x

     

    x




    x

    x
    QrdCustodianIdValidatorApd2AppointmentIdValidatorCustodian
    • regel:
    Apd2CustodianIdValidatorApd2StartStopTimeValidator
    • ( DK-APDQRD-v2v1.03: 2.1.10.1 Appointment Date and Time)2.5 Custodian
    • ! forudsætning for validering: custodian er udfyldt
    • overholder validering i OrganisationCodeValidationServiceStartTime skal være udfyldt 
    x


    x

    PhmrCustodianIdValidator

    QrdCustodianIdValidator


    .