MINI MINI MANI MO
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2007, 2012, Oracle and/or its affiliates.
All rights reserved. -->
<!-- ordcmcmd.xml - Oracle Multimedia DICOM default constraint
module definition document
MODIFIED (MM/DD/YY)
jiezhan 03/09/12 - update DICOM standard to 2011
dolin 06/23/09 - remove tag 7FE00010
dolin 06/06/07 -
dguo 05/18/07 - change product name
myalavar 04/09/07 - add major_minor version
dguo 08/01/06 - Beta release 1
dguo 04/03/05 - Created
-->
<CONFORMANCE_CONSTRAINT_DEFINITION xmlns="http://xmlns.oracle.com/ord/dicom/constraint_1_0" xmlns:dt="http://xmlns.oracle.com/ord/dicom/datatype_1_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/ord/dicom/constraint_1_0 http://xmlns.oracle.com/ord/dicom/constraint_1_0">
<DOCUMENT_HEADER>
<dt:DOCUMENT_CHANGE_LOG>
<dt:DOCUMENT_MODIFIER>Oracle Multimedia</dt:DOCUMENT_MODIFIER>
<dt:DOCUMENT_MODIFICATION_DATE>2012-03-09</dt:DOCUMENT_MODIFICATION_DATE>
<dt:DOCUMENT_VERSION>2.0</dt:DOCUMENT_VERSION>
<dt:MODIFICATION_COMMENT>Oracle default constraint module definition</dt:MODIFICATION_COMMENT>
<dt:BASE_DOCUMENT>DICOM Base Standard 2011 Part 3.3</dt:BASE_DOCUMENT>
<dt:BASE_DOCUMENT_DESCRIPTION>Downloadable from http://medical.nema.org/</dt:BASE_DOCUMENT_DESCRIPTION>
</dt:DOCUMENT_CHANGE_LOG>
</DOCUMENT_HEADER>
<EXTERNAL_MACRO_INCLUDE name="CodeSequenceMacro">Defines a code sequence macro</EXTERNAL_MACRO_INCLUDE>
<EXTERNAL_MACRO_INCLUDE name="PersonIdentifierMacro">Defines a person identification macro</EXTERNAL_MACRO_INCLUDE>
<GLOBAL_RULE name="PatientModule">
<DESCRIPTION>
A subset of Patient Module defined in DICOM standard,
PS 3.3-2011, Table C.7-1
</DESCRIPTION>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00100040</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<DESCRIPTION>Patient's Sex</DESCRIPTION>
<RELATIONAL operator="in">
<ATTRIBUTE_TAG>00100040</ATTRIBUTE_TAG>
<STRING_VALUE>M</STRING_VALUE>
<STRING_VALUE>F</STRING_VALUE>
<STRING_VALUE>O</STRING_VALUE>
</RELATIONAL>
</PREDICATE>
<PREDICATE>
<DESCRIPTION>Referenced patient sequence constraint, Table 10-11</DESCRIPTION>
<LOGICAL operator="derive">
<PREDICATE>
<BOOLEAN_FUNC operator="occurs">
<ATTRIBUTE_TAG>00081120</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<LOGICAL operator="and">
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00081120.00081150</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00081120.00081155</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
</LOGICAL>
</PREDICATE>
</LOGICAL>
</PREDICATE>
<ACTION action="log" when="false">Validation error: missing mandatory attribute for patient module</ACTION>
<ACTION action="warning" when="false">Warning: validation failure</ACTION>
</GLOBAL_RULE>
<GLOBAL_RULE name="GeneralStudyModule">
<DESCRIPTION>
A subset of General Study Module defined in DICOM standard,
PS 3.3-2011, Table C.7-3
</DESCRIPTION>
<PREDICATE>
<DESCRIPTION>Referring Physician Identification Sequence</DESCRIPTION>
<LOGICAL operator="derive">
<PREDICATE>
<BOOLEAN_FUNC operator="occurs">
<ATTRIBUTE_TAG>00080096</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<INVOKE_MACRO>
<MACRO_NAME>PersonIdentifierMacro</MACRO_NAME>
<PARAMETER>
<NAME>PersonIDAttr</NAME>
<VALUE>00080096</VALUE>
</PARAMETER>
</INVOKE_MACRO>
</PREDICATE>
</LOGICAL>
</PREDICATE>
<PREDICATE>
<DESCRIPTION>Study Instance UID</DESCRIPTION>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>0020000D</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
</GLOBAL_RULE>
<GLOBAL_RULE name="GeneralSeriesModule">
<DESCRIPTION>
A subset of General Series Module defined in DICOM standard,
PS 3.3-2011, Table C.7-5a
</DESCRIPTION>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00080060</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
<ACTION action="warning" when="false">
missing attribute 00080060
</ACTION>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>0020000E</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
<ACTION action="warning" when="false">
missing attribute 0020000E
</ACTION>
</PREDICATE>
<PREDICATE>
<LOGICAL operator="derive">
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00400260</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<INVOKE_MACRO>
<MACRO_NAME>CodeSequenceMacro</MACRO_NAME>
<PARAMETER>
<NAME>CodeAttr</NAME>
<VALUE>00400260</VALUE>
</PARAMETER>
</INVOKE_MACRO>
<ACTION action="warning" when="false">
missing attribute 00400260.00080100 or 00400260.00080102
</ACTION>
</PREDICATE>
</LOGICAL>
</PREDICATE>
<ACTION action="warning" when="false">
GeneralSeriesModule is not satisfied
</ACTION>
</GLOBAL_RULE>
<GLOBAL_RULE name="SOPCommonModule">
<DESCRIPTION>
A subset of SOP Common Module defined in DICOM standard,
PS 3.3-2011, Table C.12-1
</DESCRIPTION>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00080016</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00080018</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
</GLOBAL_RULE>
<GLOBAL_RULE name="ImagePixelMacro">
<DESCRIPTION>
A subset of Image Pixel Macro defined in DICOM standard,
PS 3.3-2011, Table C.7-11b
</DESCRIPTION>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00280002</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00280004</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<RELATIONAL operator="in">
<ATTRIBUTE_TAG>00280004</ATTRIBUTE_TAG>
<STRING_VALUE>MONOCHROME1</STRING_VALUE>
<STRING_VALUE>MONOCHROME2</STRING_VALUE>
<STRING_VALUE>PALETTE COLOR</STRING_VALUE>
<STRING_VALUE>RGB</STRING_VALUE>
<STRING_VALUE>YBR_FULL</STRING_VALUE>
<STRING_VALUE>YBR_FULL_422</STRING_VALUE>
<STRING_VALUE>YBR_PARTIAL_422</STRING_VALUE>
<STRING_VALUE>YBR_ICT</STRING_VALUE>
<STRING_VALUE>YBR_RCT</STRING_VALUE>
</RELATIONAL>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00280010</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00280011</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<LOGICAL operator="and">
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00280100</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<RELATIONAL operator="in">
<ATTRIBUTE_TAG>00280100</ATTRIBUTE_TAG>
<STRING_VALUE>8</STRING_VALUE>
<STRING_VALUE>12</STRING_VALUE>
<STRING_VALUE>16</STRING_VALUE>
<STRING_VALUE>24</STRING_VALUE>
</RELATIONAL>
</PREDICATE>
</LOGICAL>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00280101</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00280102</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<LOGICAL operator="and">
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00280103</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<RELATIONAL operator="in">
<ATTRIBUTE_TAG>00280103</ATTRIBUTE_TAG>
<STRING_VALUE>0</STRING_VALUE>
<STRING_VALUE>1</STRING_VALUE>
</RELATIONAL>
</PREDICATE>
</LOGICAL>
</PREDICATE>
<PREDICATE>
<LOGICAL operator="derive">
<PREDICATE>
<RELATIONAL operator="gt">
<ATTRIBUTE_TAG>00280002</ATTRIBUTE_TAG>
<STRING_VALUE>1</STRING_VALUE>
</RELATIONAL>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00280006</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
</LOGICAL>
</PREDICATE>
<PREDICATE>
<LOGICAL operator="derive">
<PREDICATE>
<LOGICAL operator="or">
<PREDICATE>
<RELATIONAL operator="eq">
<ATTRIBUTE_TAG>00280004</ATTRIBUTE_TAG>
<STRING_VALUE>PALETTE COLOR</STRING_VALUE>
</RELATIONAL>
</PREDICATE>
<PREDICATE>
<LOGICAL operator="and">
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00089205</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<RELATIONAL operator="in">
<ATTRIBUTE_TAG>00089205</ATTRIBUTE_TAG>
<STRING_VALUE>COLOR</STRING_VALUE>
<STRING_VALUE>MIXED</STRING_VALUE>
</RELATIONAL>
</PREDICATE>
</LOGICAL>
</PREDICATE>
</LOGICAL>
</PREDICATE>
<PREDICATE>
<LOGICAL operator="and">
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00281101</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00281102</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00281103</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00281201</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00281202</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
<PREDICATE>
<BOOLEAN_FUNC operator="notEmpty">
<ATTRIBUTE_TAG>00281203</ATTRIBUTE_TAG>
</BOOLEAN_FUNC>
</PREDICATE>
</LOGICAL>
</PREDICATE>
</LOGICAL>
</PREDICATE>
</GLOBAL_RULE>
</CONFORMANCE_CONSTRAINT_DEFINITION>
OHA YOOOO