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

For at lette arbejdet med at overholde/validerere for standarderne, findes XdsValidation biblioteket. Flere komponenter, bl.a. DROS, gør brug af denne validering, for at sikre, at der ikke komme ugyldige data ind i XDS infrastrukturen. Anvendere 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.

XdsValiderings biblioteket er under fortsat udvikling. Se afsnittet "Understøttede valideringsregler" for den nuværende implementering.

For at anvende XdsValidation biblioteket, skal man gøre brug af tredjepartsproduktet IPF Open eHealth Integration Platform, da interaktionen foregår vha. dette.

Yderligere inspiration for implementering af validering kan findes i DROS projektet, da dette projekt allerede gør brug af XdsValidation.

Dette dokument beskriver overordnet funktionalitet af biblioteket.

CDA

Et CDA dokument er et struktureret XML dokument, som følger en bestemt standard for kliniske dokumenter. Der findes forskellige typer af CDA dokumenter, hvor der er lavet danske profileringer (Udgivelser), som dækker følgende:

  • Appointment Document (APD) til aftaler
  • Careplan (CPD)
  • Personal Data Card/Stamkort (PDC)
  • Personal Health Monitoring Report (PHMR) til hjemmemonitorering
  • Questionnaire Form Definition Document (QFDD) og Questionnaire Response Document (QRD) til patientrapporterede oplysninger (PRO)

...

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:

...

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
xxxx
SubmissionSetCrossDocumentEntryAuthorPersonValidator
  • ! 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)
xxxx
SubmissionSetCrossDocumentEntryPatientIdValidator
  • 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.
xxxxAudioDocumentEntryServiceStopTimeCrossServiceStartTimeValidator
  • !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.
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


    .