Gazelle Cross Validator Report

Rapport de Cross Validation

OID
1.3.6.1.4.1.12559.11.43.3.2.4234
Date de validation
13/03/25 16:06:04 (CET GMT+0100)
Validateur
IHE - CROSS_VALIDATEUR_GENERIQUE
Statut de validation
PASSED

Fichiers validés

Type
Mot clé
Description
Cardinalité
Files
CDAITI-32_CDA_Document_1CDA Document 11..1
XMLITI-32_XDS_MetadataXDS Metadata XML file 1..1

Rapport

Validator description

Name
CROSS_VALIDATEUR_GENERIQUE
Affinity domain
IHE
Version
2024-12-19
Gazelle X Validator version
1.4.5

Validation summary

Validation date
2025-03-13T16:06:06.809+01:00
Validation status
PASSED

Validation details

Reports

Test
ITI-32_27_sourcePatientInfo_givenName_PrenomUtilise
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[0..1] - Contrôle du prénom utilisé par le patient
Tested expression
( not((ITI-32_CDA_Document_1:://*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:name/*:given[@qualifier='CL']) = true)) or (ITI-32_CDA_Document_1:://*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:name/*:given[@qualifier='CL']/string() = ITI-32_XDS_Metadata::if (substring-before( substring-after( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(), 'PID-5')][ends-with(text(),'D')][1] , '^' ) ,'^') >"" ) then (substring-before( substring-after( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(), 'PID-5')][ends-with(text(),'D')][1] , '^' ) ,'^') ) else 'OK' )
Test
ITI-32_27_sourcePatientInfo_givenName_PrenomNaissance
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[0..1] - Contrôle du prénom de naissance du patient
Tested expression
(ITI-32_CDA_Document_1::if ( //*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:name/*:given[@qualifier='BR']) then ( //*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:name/*:given[@qualifier='BR']/string() ) else ( if ( //*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:name/*:given[not(@qualifier)] )then ( //*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:name/*:given[not(@qualifier)]/string() ) else ( "OK")) = ITI-32_XDS_Metadata:: if (substring-before( substring-after( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(), 'PID-5')][ends-with(text(),'L')][1] , '^' ) ,'^') ) then (substring-before( substring-after( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(), 'PID-5')][ends-with(text(),'L')][1] , '^' ) ,'^') ) else 'OK' ) or (ITI-32_CDA_Document_1::'' = ITI-32_XDS_Metadata:: if (substring-before( substring-after( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(), 'PID-5')][ends-with(text(),'L')][1] , '^' ) ,'^') ) then (substring-before( substring-after( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(), 'PID-5')][ends-with(text(),'L')][1] , '^' ) ,'^') ) else 'OK' )
Test
ITI-32_26_patientId_C1C4C5_Extrinsic
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
ITI-32_26_patientId_C1C4C5_Extrinsic
Tested expression
(ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.8']/string-join((@extension , '^^^&' , @root,'&ISO^NH'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:ExternalIdentifier[@identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.9']/string-join((@extension , '^^^&' , @root,'&ISO^NH'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:ExternalIdentifier[@identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.10']/string-join((@extension , '^^^&' , @root,'&ISO^NH'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:ExternalIdentifier[@identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.11']/string-join((@extension , '^^^&' , @root,'&ISO^NH'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:ExternalIdentifier[@identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.2']/string-join((@extension , '^^^&' , @root,'&ISO^INS-C'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:ExternalIdentifier[@identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.6']/string-join((@extension , '^^^&' , @root,'&ISO^INS-C'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:ExternalIdentifier[@identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.7']/string-join((@extension , '^^^&' , @root,'&ISO^INS-C'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:ExternalIdentifier[@identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[not(starts-with(@root,'1.2.250.1.213.1.4'))]/string-join( (@extension,'^^^&',@root,'&ISO^PI'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:ExternalIdentifier[@identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427"]/@value/string())
Test
ITI-32_26_patientId_C1C4C5
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
ITI-32_26_patientId_C1C4C5_registry
Tested expression
(ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.8']/string-join((@extension , '^^^&' , @root,'&ISO^NH'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:RegistryPackage/*:ExternalIdentifier[@identificationScheme="urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.9']/string-join((@extension , '^^^&' , @root,'&ISO^NH'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:RegistryPackage/*:ExternalIdentifier[@identificationScheme="urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.10']/string-join((@extension , '^^^&' , @root,'&ISO^NH'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:RegistryPackage/*:ExternalIdentifier[@identificationScheme="urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.11']/string-join((@extension , '^^^&' , @root,'&ISO^NH'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:RegistryPackage/*:ExternalIdentifier[@identificationScheme="urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.2']/string-join((@extension , '^^^&' , @root,'&ISO^INS-C'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:RegistryPackage/*:ExternalIdentifier[@identificationScheme="urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.6']/string-join((@extension , '^^^&' , @root,'&ISO^INS-C'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:RegistryPackage/*:ExternalIdentifier[@identificationScheme="urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[@root='1.2.250.1.213.1.4.7']/string-join((@extension , '^^^&' , @root,'&ISO^INS-C'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:RegistryPackage/*:ExternalIdentifier[@identificationScheme="urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446"]/@value/string()) or (ITI-32_CDA_Document_1:://*:recordTarget/*:patientRole/*:id[not(starts-with(@root,'1.2.250.1.213.1.4'))]/string-join( (@extension,'^^^&',@root,'&ISO^PI'),'') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:RegistryPackage/*:ExternalIdentifier[@identificationScheme="urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446"]/@value/string())
Test
ITI-32_04-UniqueId-V3_Fiche
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Contrôle de la donnée UniqueID dans l'extinsicObject (Fiche)
Tested expression
(ITI-32_CDA_Document_1::string-join( (//*:ClinicalDocument/*:id/@root, //*:ClinicalDocument/*:id/@extension) , '^') = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:ExternalIdentifier[@identificationScheme="urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab"]/@value/string()) or (ITI-32_CDA_Document_1:://*:ClinicalDocument/*:id/@root/string() = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:ExternalIdentifier[@identificationScheme="urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab"]/@value/string())
Test
ITI-32_03_ClassCode_VAC_
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du classCode propre au VAC. Le classCode n'est pas contenu dans le document CDA. Il est déduit de la table d'association du fichier ASS_X04-CorrespondanceType-Classe puis par correspondance du fichier JDV_J06-XdsClassCode-CISIS
Tested expression
( not( ITI-32_CDA_Document_1:://*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.10'] is present)) or (ITI-32_CDA_Document_1::if ( ( //*:ClinicalDocument/*:code[@code/string() = '11369-6'] ) and (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.10'] ) ) then 'OKVAC' else 'KO1' = ITI-32_XDS_Metadata::if ( (//*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/*:Name/*:LocalizedString/@value/string() = 'Certificat, déclaration') and ( //*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/@nodeRepresentation='52') ) then 'OKVAC' else 'KO2')
Test
ITI-32_03_ClassCode_TLMDA_
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du classCode propre au TLMDA. Le classCode n'est pas contenu dans le document CDA. Il est déduit de la table d'association du fichier ASS_X04-CorrespondanceType-Classe puis par correspondance du fichier JDV_J06-XdsClassCode-CISIS
Tested expression
( not( ITI-32_CDA_Document_1:://*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.38'] is present)) or (ITI-32_CDA_Document_1::if ( ( //*:ClinicalDocument/*:code[@code/string() = '75496-0'] ) and (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.38'] ) ) then 'OKTLMDA' else 'KO1' = ITI-32_XDS_Metadata::if ( (//*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/*:Name/*:LocalizedString/@value/string() = 'Compte rendu') and ( //*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/@nodeRepresentation='10') ) then 'OKTLMDA' else 'KO2')
Covered assertions
Test
ITI-32_03_ClassCode_VSM_
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du classCode propre au VSM. Le classCode n'est pas contenu dans le document CDA. Il est déduit de la table d'association du fichier ASS_X04-CorrespondanceType-Classe puis par correspondance du fichier JDV_J06-XdsClassCode-CISIS
Tested expression
( not( ITI-32_CDA_Document_1:://*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.13'] is present)) or (ITI-32_CDA_Document_1::if ( ( //*:ClinicalDocument/*:code[@code/string() = 'SYNTH'] ) and (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.13'] ) ) then 'OKVSM' else 'KO1' = ITI-32_XDS_Metadata::if ( (//*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/*:Name/*:LocalizedString/@value/string() = 'Synthèse') and ( //*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/@nodeRepresentation='11') ) then 'OKVSM' else 'KO2')
Covered assertions
Test
ITI-32_03_ClassCode_LDL_SES
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du classCode propre au document LDL-SES. Le classCode n'est pas contenu dans le document CDA. Il est déduit de la table d'association du fichier ASS_X04-CorrespondanceType-Classe puis par correspondance du fichier JDV_J06-XdsClassCode-CISIS
Tested expression
( not((ITI-32_CDA_Document_1:://*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.29']) = true)) or (ITI-32_CDA_Document_1::if ( ( //*:ClinicalDocument/*:code[@code/string() = '11490-0'] ) and (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.29'] ) ) then 'OKSES' else 'KO1' = ITI-32_XDS_Metadata::if ( (//*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/*:Name/*:LocalizedString/@value/string() = 'Compte rendu') and ( //*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/@nodeRepresentation='10') ) then 'OKSES' else 'KO2')
Covered assertions
Test
ITI-32_03_ClassCode_LDL
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du classCode propre au document LDL-EES. Le classCode n'est pas contenu dans le document CDA. Il est déduit de la table d'association du fichier ASS_X04-CorrespondanceType-Classe puis par correspondance du fichier JDV_J06-XdsClassCode-CISIS
Tested expression
( not( ITI-32_CDA_Document_1:://*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.21'] is present)) or (ITI-32_CDA_Document_1::if ( ( //*:ClinicalDocument/*:code[@code/string() = '18761-7'] ) and (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.21'] ) ) then 'OKEES' else 'KO1' = ITI-32_XDS_Metadata::if ( (//*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/*:Name/*:LocalizedString/@value/string() = 'Synthèse') and ( //*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/@nodeRepresentation='11') ) then 'OKEES' else 'KO2')
Covered assertions
Test
ITI-32_03_ClassCode_DLU_
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du classCode propre aux docuents DLU. Le classCode n'est pas contenu dans le document CDA. Il est déduit de la table d'association du fichier ASS_X04-CorrespondanceType-Classe puis par correspondance du fichier JDV_J06-XdsClassCode-CISIS
Tested expression
( not((ITI-32_CDA_Document_1::(//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.22'] or //*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.24'] or //*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.23'])) = true)) or (ITI-32_CDA_Document_1::if ( (( //*:ClinicalDocument/*:code[@code/string() = '34133-9'] ) and (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.22'] )) or (( //*:ClinicalDocument/*:code[@code/string() = '34133-9'] ) and (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.23'] )) or (( //*:ClinicalDocument/*:code[@code/string() = '34133-9'] ) and (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.24'] )) ) then 'OKDLU' else 'KO' = ITI-32_XDS_Metadata::if ( (//*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/*:Name/*:LocalizedString/@value/string() = 'Synthèse') and ( //*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/@nodeRepresentation='11') ) then 'OKDLU' else 'KO2')
Covered assertions
Test
ITI-32_01_FormatCode_TLMDA_
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du FormatCode propre au TLMDA. Le formatCode n'est pas contenu dans le document CDA. Il est déduit dans la table d'association ASS_A11-CorresModeleCDA-XdsFormatCode-CISIS à partir du CDA:templateID -urn:asip:ci-sis:tlm-da:2020
Tested expression
( not( ITI-32_CDA_Document_1:://*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.38'] is present)) or (ITI-32_CDA_Document_1::if (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.38']) then string('urn:asip:ci-sis:tlm-da:2020') else "KO" = ITI-32_XDS_Metadata:://*:Classification[@classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d"]/@nodeRepresentation/string())
Covered assertions
Test
ITI-32_01_FormatCode_VAC_
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du FormatCode propre au VAC. Le formatCode n'est pas contenu dans le document CDA. Il est déduit dans la table d'association ASS_A11-CorresModeleCDA-XdsFormatCode-CISIS à partir du CDA:templateID. urn:asip:ci-sis:cva:2017
Tested expression
( not( ITI-32_CDA_Document_1:://*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.10'] is present)) or (ITI-32_CDA_Document_1::if (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.10']) then string('urn:asip:ci-sis:cva:2017') else "KO" = ITI-32_XDS_Metadata:://*:Classification[@classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d"]/@nodeRepresentation/string())
Covered assertions
Test
ITI-32_01_FormatCode_DLU-DLU
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du FormatCode des documents DLU. Le formatCode n'est pas contenu dans le document CDA. Il est déduit dans la table d'association ASS_A11-CorresModeleCDA-XdsFormatCode-CISIS à partir du CDA:templateID.
Tested expression
( not((ITI-32_CDA_Document_1:://*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.22'] or //*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.24'] or //*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.23']) = true)) or (ITI-32_CDA_Document_1::if (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.22']) then string('urn:asip:ci-sis:dlu:2015') else if (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.23']) then string('urn:asip:ci-sis:fludt:2017') else if (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.24']) then string('urn:asip:ci-sis:fludr:2017') else "KO" = ITI-32_XDS_Metadata:://*:Classification[@classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d"]/@nodeRepresentation/string())
Covered assertions
Test
ITI_32_03_classCode_CR_BIO
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du classCode propre au CRBIO. Le classCode n'est pas contenu dans le document CDA. Il est déduit de la table d'association du fichier ASS_X04-CorrespondanceType-Classe puis par correspondance du fichier JDV_J06-XdsClassCode-CISIS
Tested expression
( not( ITI-32_CDA_Document_1:://*:ClinicalDocument/*:templateId[@root='1.3.6.1.4.1.19376.1.3.3'] is present)) or (ITI-32_CDA_Document_1::if ( ( //*:ClinicalDocument/*:code[@code/string() = '11502-2'] ) and (//*:ClinicalDocument/*:templateId[@root='1.3.6.1.4.1.19376.1.3.3'] ) ) then 'OKCRBIO' else 'KO1' = ITI-32_XDS_Metadata::if ( (//*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/*:Name/*:LocalizedString/@value/string() = 'Compte rendu') and ( //*:Classification[@classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a']/@nodeRepresentation='10') ) then 'OKCRBIO' else 'KO2')
Covered assertions
Test
ITI-32_01_FormatCode_LDL_SES
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du FormatCode propre à la LDL SES. Le formatCode n'est pas contenu dans le document CDA. Il est déduit dans la table d'association ASS_A11-CorresModeleCDA-XdsFormatCode-CISIS à partir du CDA:templateID . urn:asip:ci-sis:ldl-ses:2017
Tested expression
( not( ITI-32_CDA_Document_1:://*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.29'] is present)) or (ITI-32_CDA_Document_1::if (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.29']) then string('urn:asip:ci-sis:ldl-ses:2017') else "KO" = ITI-32_XDS_Metadata:://*:Classification[@classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d"]/@nodeRepresentation/string())
Covered assertions
Test
ITI-32_01_FormatCode_LDL_EES
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du FormatCode propre au LDL_EES. Le formatCode n'est pas contenu dans le document CDA. Il est déduit dans la table d'association ASS_A11-CorresModeleCDA-XdsFormatCode-CISIS à partir du CDA:templateID . urn:asip:ci-sis:ldl-ees:2017
Tested expression
( not( ITI-32_CDA_Document_1:://*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.21'] is present)) or (ITI-32_CDA_Document_1::if (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.21']) then string('urn:asip:ci-sis:ldl-ees:2017') else "KO" = ITI-32_XDS_Metadata:://*:Classification[@classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d"]/@nodeRepresentation/string())
Covered assertions
Test
ITI-32_01_FormatCode_VSM
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du FormatCode propre au VSM. Le formatCode n'est pas contenu dans le document CDA. Il est déduit dans la table d'association ASS_A11-CorresModeleCDA-XdsFormatCode-CISIS à partir du CDA:templateID - VSM: urn:asip:ci-sis:vsm:2012
Tested expression
( not( ITI-32_CDA_Document_1:://*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.13'] is present)) or (ITI-32_CDA_Document_1::if (//*:ClinicalDocument/*:templateId[@root='1.2.250.1.213.1.1.1.13']) then string('urn:asip:ci-sis:vsm:2012') else "KO" = ITI-32_XDS_Metadata:://*:Classification[@classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d"]/@nodeRepresentation/string())
Covered assertions
Test
ITI-32_01_FormatCode_CR-BIO
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Controle du FormatCode propre au CR Biologie. Le formatCode n'est pas contenu dans le document CDA. Il est déduit dans la table d'association ASS_A11-CorresModeleCDA-XdsFormatCode-CISIS à partir du CDA:templateID CR BIO: urn:ihe:lab:xd-lab:2008
Tested expression
( not( ITI-32_CDA_Document_1:://*:ClinicalDocument/*:templateId[@root='1.3.6.1.4.1.19376.1.3.3'] is present)) or (ITI-32_CDA_Document_1::if (//*:ClinicalDocument/*:templateId[@root='1.3.6.1.4.1.19376.1.3.3']) then string('urn:ihe:lab:xd-lab:2008') else "KO" = ITI-32_XDS_Metadata:://*:Classification[@classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d"]/@nodeRepresentation/string())
Covered assertions
Test
ITI-32_28_sourcePatientInfo_genderCode
Applies to
ITI-32_XDS_Metadata ITI-32_CDA_Document_1
Description
[0..1] - Sexe du patient - PID-8
Tested expression
(ITI-32_XDS_Metadata::(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(),'PID-8')]/string() , '')[1] = ITI-32_CDA_Document_1::string-join( ('PID-8|' , //*:recordTarget/*:patientRole/*:patient/*:administrativeGenderCode/@code/string() ) ,'') ) or (ITI-32_XDS_Metadata::(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(),'PID-8')]/string() , '')[1] = ITI-32_CDA_Document_1::'')
Covered assertions
Test
ITI-32_29_sourcePatientInfo_birthTime_PID-7
Applies to
ITI-32_XDS_Metadata ITI-32_CDA_Document_1
Description
[0..1] - Contrôle de la date de naissance du patient. ( PID-7 )
Tested expression
(ITI-32_XDS_Metadata::(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(),'PID-7')]/string() , '')[1] = ITI-32_CDA_Document_1::string-join( ( 'PID-7|' , //*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:birthTime/@value/string()) ,'')) or (ITI-32_XDS_Metadata::(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(),'PID-7')]/string() , '')[1] = ITI-32_CDA_Document_1::'')
Covered assertions
Test
ITI-32_27_sourcePatientInfo_PID3
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[1..*] - Contrôle les 2 premiers identifiants patient du PID-3 si il sont présents.
Tested expression
(ITI-32_CDA_Document_1::string-join( ( 'PID-3|' , //*:patientRole/*:id[1]/@extension /string() , '^^^&' , //*:patientRole/*:id[1]/@root ) ,'') = ITI-32_XDS_Metadata::substring-before(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[1][starts-with(.,'PID-3')] , '&ISO')) or (ITI-32_CDA_Document_1::'' = ITI-32_XDS_Metadata::substring-before(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[1][starts-with(.,'PID-3')] , '&ISO')) or (ITI-32_CDA_Document_1::string-join( ( 'PID-3|' , //*:patientRole/*:id[2]/@extension /string() , '^^^&' , //*:patientRole/*:id[2]/@root ) ,'') = ITI-32_XDS_Metadata::substring-before(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[1][starts-with(.,'PID-3')] , '&ISO')) or (ITI-32_CDA_Document_1::string-join( ( 'PID-3|' , //*:patientRole/*:id[1]/@extension /string() , '^^^&' , //*:patientRole/*:id[1]/@root ) ,'') = ITI-32_XDS_Metadata::substring-before(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification/:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[2][starts-with(.,'PID-3')] , '&ISO')) or (ITI-32_CDA_Document_1::string-join( ( 'PID-3|' , //*:patientRole/*:id[2]/@extension /string() , '^^^&' , //*:patientRole/*:id[2]/@root ) ,'') = ITI-32_XDS_Metadata::substring-before(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification/*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[2][starts-with(.,'PID-3')] , '&ISO'))
Covered assertions
Test
ITI-32_27_sourcePatientInfo_namePresent
Applies to
ITI-32_CDA_Document_1
Description
[1..*] - Contrôle de la présence d'au moins 1 nom patient dans le CDA
Tested expression
(ITI-32_CDA_Document_1::count( //*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:name/*:family) >0) = true
Covered assertions
Test
ITI-32_17_C2-C3_authorName
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[1..1] - Vérification des noms et prénoms de l'auteur humain ou des modèles et manufacturer si l'auteur est un dispositif.
Tested expression
(ITI-32_CDA_Document_1::string-join(( //*:ClinicalDocument/*:author[1]/*:assignedAuthor/*:assignedPerson/*:name/*:family/string() , //*:ClinicalDocument/*:author[1]/*:assignedAuthor/*:assignedPerson/*:name/*:given/string() ) , '^' ) = ITI-32_XDS_Metadata::string-join( ( substring-before( substring-after( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme='urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d'][1]/*:Slot[@name='authorPerson']/*:ValueList/*:Value/string() , '^' ) ,'^') , substring-before( substring-after( substring-after(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme='urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d'][1]/*:Slot[@name='authorPerson']/*:ValueList/*:Value/string() , '^' ) , '^') , '^') ) , '^' )) or (ITI-32_CDA_Document_1::string-join(( //*:ClinicalDocument/*:author[1]/*:assignedAuthor/*:assignedAuthoringDevice/*:softwareName/string() , //*:ClinicalDocument/*:author[1]/*:assignedAuthor/*:assignedAuthoringDevice/*:manufacturerModelName/string() ) , '^' ) = ITI-32_XDS_Metadata::string-join( ( substring-before( substring-after( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme='urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d'][1]/*:Slot[@name='authorPerson']/*:ValueList/*:Value/string() , '^' ) ,'^') , substring-before( substring-after( substring-after(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme='urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d'][1]/*:Slot[@name='authorPerson']/*:ValueList/*:Value/string() , '^' ) , '^') , '^') ) , '^' ))
Covered assertions
Test
ITI-32_17_C13_IdType
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[1..1] Contrôle du type d'identifiant: IDNPS (id national) , EI (id local) ou RI (dispositif)
Tested expression
ITI-32_CDA_Document_1::if ( count(//*:ClinicalDocument/*:author[1]/*:assignedAuthor/*:assignedAuthoringDevice) > 0 ) then 'RI' else if ( //*:ClinicalDocument/*:author[1]/*:assignedAuthor/*:id[contains(@extension ,'/')] ) then 'EI' else 'IDNPS' = ITI-32_XDS_Metadata::if (ends-with( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme='urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d'][1]/*:Slot[@name='authorPerson']/*:ValueList/*:Value/string() , 'IDNPS' )) then 'IDNPS' else if (ends-with( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme='urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d'][1]/*:Slot[@name='authorPerson']/*:ValueList/*:Value/string() , 'EI' ) ) then 'EI' else if (ends-with(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme='urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d'][1]/*:Slot[@name='authorPerson']/*:ValueList/*:Value/string() , 'RI' ) ) then 'RI' else 'ERROR'
Covered assertions
Test
ITI-32_20_legalAuthenticator_C1C2C3C9
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[1..1] - Identifiant légal du document - Contrôle des composants nom , prénom , identifiant, autorité d'affectation
Tested expression
ITI-32_CDA_Document_1::string-join((//*:legalAuthenticator/*:assignedEntity/*:id/@extension , '^' , //*:legalAuthenticator/*:assignedEntity/*:assignedPerson/*:name/*:family , '^' , //*:legalAuthenticator/*:assignedEntity/*:assignedPerson/*:name/*:given , '^^^^^^&' , //*:legalAuthenticator/*:assignedEntity/*:id/@root ) , '') = ITI-32_XDS_Metadata::substring-before( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Slot[@name = 'legalAuthenticator']/*:ValueList/*:Value/string() , '&ISO')
Covered assertions
Test
ITI-32_03_typeCode
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[1..1] - Contrôle du type de document - code et codeSystem
Tested expression
ITI-32_CDA_Document_1::string-join( ( //*:ClinicalDocument/*:code/@code/string() , //*:ClinicalDocument/*:code/@codeSystem/string() ) , '^') = ITI-32_XDS_Metadata::string-join ( (/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme="urn:uuid:f0306f51-975f-434e-a61c-c59651d33983"]/@nodeRepresentation/string() , /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme="urn:uuid:f0306f51-975f-434e-a61c-c59651d33983"]/*:Slot/*:ValueList/*:Value/string() ) , '^')
Covered assertions
Test
ITI-32_39_practiceSetting
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[1..1] - Cadre d'exercice de l'acte principal - Contrôle de practiceSettingCode, practiceSettingCodeDisplayName, codingScheme
Tested expression
ITI-32_CDA_Document_1::string-join( (//*:documentationOf[1]/*:serviceEvent/*:performer/*:assignedEntity/*:representedOrganization/*:standardIndustryClassCode/@code, //*:documentationOf[1]/*:serviceEvent/*:performer/*:assignedEntity/*:representedOrganization/*:standardIndustryClassCode/@codeSystem, //*:documentationOf[1]/*:serviceEvent/*:performer/*:assignedEntity/*:representedOrganization/*:standardIndustryClassCode/@displayName),'!') = ITI-32_XDS_Metadata::string-join( (/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme="urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead"]/@nodeRepresentation , /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme="urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead"]/*:Slot/*:ValueList/*:Value[1] , /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme="urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead"]/*:Name/*:LocalizedString/@value[1] ) ,'!')
Covered assertions
Test
ITI-32_34_eventCode
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[0..1] - Contrôle des code, displayName, codeSystem des actes documentés.
Tested expression
ITI-32_CDA_Document_1::if ( count(//*:ClinicalDocument/*:documentationOf[1]/*:serviceEvent/*:code) >0 ) then string-join(( //*:ClinicalDocument/*:documentationOf[1]/*:serviceEvent/*:code/@code/string() , //*:ClinicalDocument/*:documentationOf[1]/*:serviceEvent/*:code/@displayName/string() , //*:ClinicalDocument/*:documentationOf[1]/*:serviceEvent/*:code/@codeSystem/string() ) , '^') else 'ABSENT' = ITI-32_XDS_Metadata::if ( count(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme="urn:uuid:2c6b8cb7-8b2a-4051-b291-b1ae6a575ef4"])>0) then string-join(( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme="urn:uuid:2c6b8cb7-8b2a-4051-b291-b1ae6a575ef4"][1]/@nodeRepresentation/string() , /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme="urn:uuid:2c6b8cb7-8b2a-4051-b291-b1ae6a575ef4"][1]/*:Name/*:LocalizedString/@value[1]/string() , /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme="urn:uuid:2c6b8cb7-8b2a-4051-b291-b1ae6a575ef4"][1]/*:Slot[@name="codingScheme"]/*:ValueList/*:Value[1]/string() ) ,'^') else 'ABSENT'
Covered assertions
Test
ITI-32_27_sourcePatientInfo_displayName
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[1..*] - Contrôle du nom d'usage du patient (QUALIFIER='CL' <--> D )
Tested expression
ITI-32_CDA_Document_1::if ( //*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:name/*:family[@qualifier='CL'] ) then //*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:name/*:family[@qualifier='CL']/string() else if ( //*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:name/*:family[@qualifier='SP'] ) then //*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:name/*:family[@qualifier='SP']/string() else 'OK' = ITI-32_XDS_Metadata::if ( //*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/ substring-before( substring-after(//*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(), 'PID-5')][ends-with(text(),'D')][1] , 'PID-5|') , '^') != '' ) then //*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/ substring-before( substring-after(//*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(), 'PID-5')][ends-with(text(),'D')][1] , 'PID-5|') , '^') else 'OK'
Covered assertions
Test
ITI-32_36_serviceStopTime
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[0..1] - Contrôle de la balise optionnelle documentationOf/serviceEvent/effectiveTime/high si elle est présente. Dans le CDA la valeur est au format horaire LOCAL : AAAAMMJJHHMMSS+hh00 ou hh est le décalage horaire. Exemple: "20090529094914+0200" Dans la META, la valeur est au format AAAAMMJJHHMMSS mais au format horaire UTC. Il faut donc effectuer un comparatif visuel entre la dateHeure locale et la dateHeure UTC du META. soit ici "20090529074914"
Tested expression
ITI-32_CDA_Document_1::if (//*:documentationOf/*:serviceEvent/*:effectiveTime/*:high ) then //*:documentationOf/*:serviceEvent/*:effectiveTime/*:high/@value else "20200131130000+0100" = ITI-32_XDS_Metadata::if ( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name="serviceStopTime"] ) then /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name="serviceStopTime"]/*:ValueList/*:Value else "20200131120000"
Covered assertions
Test
ITI-32_27_sourcePatientInfo_familyName
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[1..*] - Contrôle du nom de famille du patient (qualifier=BR <--> L)
Tested expression
ITI-32_CDA_Document_1::if ( //*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:name/*:family[@qualifier='BR'] ) then //*:ClinicalDocument/*:recordTarget/*:patientRole/*:patient/*:name/*:family[@qualifier='BR']/string() else 'OK' = ITI-32_XDS_Metadata::if ( //*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/ substring-before( substring-after(//*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(), 'PID-5')][ends-with(text(),'L')][1] , 'PID-5|') , '^') != '' ) then //*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/ substring-before( substring-after(//*:Slot[@name='sourcePatientInfo']/*:ValueList/*:Value[contains(text(), 'PID-5')][ends-with(text(),'L')][1] , 'PID-5|') , '^') else 'OK'
Covered assertions
Test
ITI-32_08_creationTime
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
Contrôle de la date de création du document.
Tested expression
ITI-32_CDA_Document_1:://*:ClinicalDocument/*:effectiveTime/@value = ITI-32_XDS_Metadata:://*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name="creationTime"]/*:ValueList/*:Value
Covered assertions
Test
ITI-32_36_serviceStartTime
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[0..1] - Contrôle de la balise documentationOf/serviceEvent/effectiveTime/low Dans le CDA la valeur est au format horaire LOCAL : AAAAMMJJHHMMSS+hh00 ou hh est le décalage horaire. Exemple: "20090529094914+0200" Dans la META, la valeur est au format AAAAMMJJHHMMSS mais au format horaire UTC.
Tested expression
ITI-32_CDA_Document_1:://*:documentationOf/*:serviceEvent/*:effectiveTime/*:low/@value = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name="serviceStartTime"]/*:ValueList/*:Value
Covered assertions
Test
ITI-32_37_sourcePatientId
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
1..1] - Identifiant du patient dans le logiciel producteur (IPP). On prendra donc l’id dont root différent de l'identifiant national. S’il n’y en a pas, on prend l'identifiant national
Tested expression
ITI-32_CDA_Document_1::if ( count( //*:patientRole/*:id[not(@root='1.2.250.1.213.1.4.2') and not(@root='1.2.250.1.213.1.4.8') and not(@root='1.2.250.1.213.1.4.9') and not(@root='1.2.250.1.213.1.4.10') and not(@root='1.2.250.1.213.1.4.11') ] ) > 0 ) then string-join(( //*:patientRole/*:id[not(@root='1.2.250.1.213.1.4.2') and not(@root='1.2.250.1.213.1.4.8') and not(@root='1.2.250.1.213.1.4.9') and not(@root='1.2.250.1.213.1.4.10') and not(@root='1.2.250.1.213.1.4.11')][1]/@extension /string() , '^^^&' , //*:patientRole/*:id[not(@root='1.2.250.1.213.1.4.2')and not(@root='1.2.250.1.213.1.4.8') and not(@root='1.2.250.1.213.1.4.9') and not(@root='1.2.250.1.213.1.4.10') and not(@root='1.2.250.1.213.1.4.11')][1]/@root /string() , '&ISO^PI'), '') else if (count( //*:patientRole/*:id[@root='1.2.250.1.213.1.4.8']) >0 ) then string-join(( //*:patientRole/*:id[@root='1.2.250.1.213.1.4.8']/@extension /string(), '^^^&','1.2.250.1.213.1.4.8' , '&ISO^NH'),'') else if (count( //*:patientRole/*:id[@root='1.2.250.1.213.1.4.2'] )>0) then string-join(( //*:patientRole/*:id[@root='1.2.250.1.213.1.4.2']/@extension /string() , '^^^&', '1.2.250.1.213.1.4.2' , '&ISO^INS-C'), '') else if (count( //*:patientRole/*:id[@root='1.2.250.1.213.1.4.9'] )>0) then string-join(( //*:patientRole/*:id[@root='1.2.250.1.213.1.4.9']/@extension /string() , '^^^&', '1.2.250.1.213.1.4.9' , '&ISO^NH'), '') else if (count( //*:patientRole/*:id[@root='1.2.250.1.213.1.4.10'] )>0) then string-join(( //*:patientRole/*:id[@root='1.2.250.1.213.1.4.10']/@extension /string() , '^^^&', '1.2.250.1.213.1.4.10' , '&ISO^NH'), '') else if (count( //*:patientRole/*:id[@root='1.2.250.1.213.1.4.11'] )>0) then string-join(( //*:patientRole/*:id[@root='1.2.250.1.213.1.4.11']/@extension /string() , '^^^&', '1.2.250.1.213.1.4.11' , '&ISO^NH'), '') else 'ERREUR' = ITI-32_XDS_Metadata:://*:ExtrinsicObject/*:Slot[@name='sourcePatientId']/*:ValueList/*:Value[1]/string()
Covered assertions
Test
ITI-32_06_languageCode
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[1..1] - Langue du document
Tested expression
ITI-32_CDA_Document_1:://*:ClinicalDocument/*:languageCode/@code/string() = ITI-32_XDS_Metadata:://*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Slot[@name="languageCode"]/*:ValueList/*:Value/string()
Covered assertions
Test
ITI_32_14_authorSpecialty
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[0..1] - Contrôle du rôle structurel de l’auteur : hiérarchique ou spécialité ordinale, "DISPOSITIF" pour une machine, "EXP_PATIENT" pour un document d'expression personnelle.
Tested expression
ITI-32_CDA_Document_1::if ( count(//*:ClinicalDocument/*:author[1]/*:assignedAuthor/*:code/@code) >0 ) then string-join((//*:ClinicalDocument/*:author[1]/*:assignedAuthor/*:code/@code, //*:ClinicalDocument/*:author[1]/*:assignedAuthor/*:code/@codeSystem) , '!') else 'ABSENT' = ITI-32_XDS_Metadata::if ( count(/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme = 'urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d'][1]/*:Slot[@name="authorSpecialty"]/*:ValueList/*:Value) >0 ) then string-join ( ( substring-before (//*/*:ExtrinsicObject[1]/*:Classification[@classificationScheme = 'urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d'][1]/*:Slot[@name="authorSpecialty"]/*:ValueList/*:Value/string() , '^') , substring-after( substring-after( //*/*:ExtrinsicObject[1]/*:Classification[@classificationScheme = 'urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d'][1]/*:Slot[@name="authorSpecialty"]/*:ValueList/*:Value/string() , '^') , '^' ) ),'!') else 'ABSENT'
Covered assertions
Test
ITI-32_17_C10_nameType
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[1..1] - Contrôle du type de nom de authorPerson: D si auteur humain, U si auteur dispositif.
Tested expression
ITI-32_CDA_Document_1::if ( count(//*:ClinicalDocument/*:author[1]/*:assignedAuthor/*:assignedAuthoringDevice) > 0 ) then 'U' else if (count( //*:ClinicalDocument/*:author[1]/*:assignedAuthor/*:assignedPerson) > 0 ) then 'D' else 'ERROR' = ITI-32_XDS_Metadata::substring-before( substring-after( /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme='urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d'][1]/*:Slot[@name='authorPerson']/*:ValueList/*:Value/string() , '&ISO^') , '^')
Covered assertions
Test
ITI-32_17_AuthorPerson_C1_authorId
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[1..1] - Vérification de l'identifiant de l'auteur - CDA:://author/assignedAuthor/id
Tested expression
ITI-32_CDA_Document_1::string-join((//*:ClinicalDocument/*:author[1]/*:assignedAuthor/*:id/@extension/string() , //*:ClinicalDocument/*:author[1]/*:assignedAuthor/*:id/@root/string()),'^') = ITI-32_XDS_Metadata::string-join( ( substring-before( *:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme='urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d'][1]/*:Slot[@name='authorPerson']/*:ValueList/*:Value/string() , '^' ) , substring-before( substring-after( *:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme='urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d'][1]/*:Slot[@name='authorPerson']/*:ValueList/*:Value/string() , '&' ) , '&') ) , '^' )
Covered assertions
Test
ITI-32_43_healthcareFacility
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[1..1] Contrôle du secteur d'activité (modalité d'exercice)
Tested expression
ITI-32_CDA_Document_1::string-join( (//*:componentOf/*:encompassingEncounter/*:location/*:healthCareFacility/*:code/@code , //*:componentOf/*:encompassingEncounter/*:location/*:healthCareFacility/*:code/@codeSystem, //*:componentOf/*:encompassingEncounter/*:location/*:healthCareFacility/*:code/@displayName ), '!') = ITI-32_XDS_Metadata::string-join( (/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme='urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1']/@nodeRepresentation , /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme='urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1']/*:Slot/*:ValueList/*:Value , /*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject[1]/*:Classification[@classificationScheme='urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1']/*:Name/*:LocalizedString/@value ) , "!")
Covered assertions
Test
ITI-32_07_confidentialityCode
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[1..1] - Contrôle du niveau de confidentialité du document - ( N ,R ,V )
Tested expression
ITI-32_CDA_Document_1:://*:ClinicalDocument/*:confidentialityCode/@code/string() = ITI-32_XDS_Metadata::/*:SubmitObjectsRequest/*:RegistryObjectList/*:ExtrinsicObject/*:Classification[@classificationScheme="urn:uuid:f4f85eac-e6cb-4883-b524-f2705394840f"]/@nodeRepresentation/string()
Covered assertions
Test
ITI-32_19_authorInstitution
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[0..1] - Contrôle de la balise authorInstitution qui identifie l'entreprise de santé pour le compte de laquelle le document a été produit.
Tested expression
ITI-32_CDA_Document_1::if ( count(//*:ClinicalDocument/*:author/*:assignedAuthor/*:representedOrganization) >0 ) then string-join( (//*:ClinicalDocument/*:author/*:assignedAuthor/*:representedOrganization/*:name , '^^^^^&' , ( //*:ClinicalDocument/*:author/*:assignedAuthor/*:representedOrganization/*:id/@root , '')[1] , '&ISO^IDNST^^^' , ( //*:ClinicalDocument/*:author/*:assignedAuthor/*:representedOrganization/*:id/@extension , '')[1] ) , '') else 'OK' = ITI-32_XDS_Metadata::if ( count(//*:Classification[@classificationScheme="urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d"]/*:Slot[@name="authorInstitution"]/*:ValueList/*:Value) >0 ) then //*:Classification[@classificationScheme="urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d"]/*:Slot[@name="authorInstitution"]/*:ValueList/*:Value/string() else 'OK'
Covered assertions
Test
ITI-32_12_authorRole
Applies to
ITI-32_CDA_Document_1 ITI-32_XDS_Metadata
Description
[0..1] - Rôle fonctionnel de l’auteur - On compare la métadonnée authorRole avec la donnée CDA:://author/functionCode/@displayName
Tested expression
ITI-32_CDA_Document_1::if ( count(//*:ClinicalDocument/*:author/*:functionCode) > 0 ) then //*:ClinicalDocument/*:author/*:functionCode/@displayName/string() else 'OK' = ITI-32_XDS_Metadata::if ( count(//*:Classification[@classificationScheme = 'urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d']/*:Slot[@name='authorRole']/*:ValueList/*:Value) >0) then //*:Classification[@classificationScheme = 'urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d']/*:Slot[@name='authorRole']/*:ValueList/*:Value/string() else 'OK'
Covered assertions