← Навигация по документации

Обзор

DICOM-объекты, сохраняемые из модальностей в архив, могут не содержать определённых DICOM-атрибутов. Настройте следующее принуждение для дополнения информации о отсутствующих атрибутах.

Атрибуты, дополняемые в набор данных, присутствуют только в базе данных. В DICOM-файлах, хранящихся в системе хранения, они не принуждаются.

Это практическое руководство описывает настройку, тестирование и проверку для : - New Archive Attribute Coercion

См. Important Notes.

Дополнительно см. Where to configure Archive Attribute Coercion rules

Настройка

Device Supplement from

Device, который будет использоваться в принуждении. DICOM-атрибуты, настроенные на этом device, будут добавлены в сохраняемые DICOM-объекты при срабатывании принуждения.

В меню Configuration на вкладке Devices добавьте device (напр. storescu), содержащий атрибуты для дополнения, на который будет ссылаться device архива dcm4chee-arc

Через UI архива

С помощью Apache LDAP Directory Studio / LDIF-скриптов

Создайте LDIF-файл для следующего device

version: 1

dn: dicomDeviceName=storescu,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
changetype: add
dicomInstalled: TRUE
dicomIssuerOfPatientID: Site A&1.2.40.0.13.1.1.999.111.1111&ISO
dicomDeviceName: storescu
dicomIssuerOfAdmissionID: Site A&1.2.40.0.13.1.1.999.111.1111&ISO
dicomIssuerOfAccessionNumber: Site A&1.2.40.0.13.1.1.999.111.1111&ISO
dicomInstitutionName: Site A
dicomInstitutionCode: (111.1111, 99DCM4CHEE, "Site A")
objectClass: dicomDevice
objectClass: dcmDevice
dicomPrimaryDeviceType: CT

и импортируйте его в LDAP с помощью утилиты командной строки ldapmodify

ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f config.ldif

Принуждение с использованием New Archive Attribute Coercion

Через UI архива

С помощью Apache LDAP Directory Studio / LDIF-скриптов

Создайте LDIF-файл для следующего принуждения

version: 1

dn: cn=coerce-c-store-rq - all2vna - supplementMissingAttrsFromDev - new,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
changetype: add
objectClass: dcmArchiveAttributeCoercion2
cn: coerce-c-store-rq - all2vna - supplementMissingAttrsFromDev - new
dcmDIMSE: C_STORE_RQ
dcmURI: sup-from-dev:
dicomTransferRole: SCU
dcmProperty: SendingApplicationEntityTitle=SUP_MISS_NEW
dcmRulePriority: 1
dcmSupplementFromDeviceReference: dicomDeviceName=storescu,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org

и импортируйте его в LDAP с помощью утилиты командной строки ldapmodify

ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f config.ldif

Тест

Отправьте тестовое исследование в архив с помощью инструмента storescu.

storescu -b SUP_MISS_NEW -s PatientID=P123 -s "IssuerOfPatientID=" -s AccessionNumber=ACC123 -s AdmissionID=ADM123 -s "InstitutionName=" -c DCM4CHEE@localhost:11112 ~/work/testdata/DICOM/modality/CT/CT2

Проверка

В журнале сервера архива $WILDFLY_HOME/standalone/log/server.log

22:26:58,278 INFO  [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-1) Accept connection Socket[addr=/127.0.0.1,port=59353,localport=11112]
22:26:58,302 INFO  [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3) >> A-ASSOCIATE-RQ
22:26:58,303 INFO  [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3) << A-ASSOCIATE-AC
22:26:58,329 INFO  [org.dcm4che3.net.Dimse] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3) >> 1:C-STORE-RQ[pcid=5, prior=0
  cuid=1.2.840.10008.5.1.4.1.1.2 - CT Image Storage
  iuid=1.3.12.2.1107.5.8.1.12345678.199508041416590861483 - ?
  tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian]
22:26:58,337 INFO  [org.dcm4chee.arc.coerce.impl.SupplementFromDeviceCoercionProcessor] (EE-ManagedExecutorService-default-Thread-16) Supplement composite object from device: storescu using coercion ArchiveAttributeCoercion2[cn=coerce-c-store-rq - all2vna - supplementMissingAttrsFromDev - new, priority=1, DIMSE=C_STORE_RQ, role=SCU, cuids=[], conditions={SendingApplicationEntityTitle=SUP_MISS_NEW}, uri=sup-from-dev:, description=null, onFailure=RETHROW, sufficient=false, attributeUpdatePolicy=MERGE, mergeAttributes=[], deviceCoercionParam=storescu, otherCoercionParams={}]
22:26:58,366 INFO  [org.dcm4chee.arc.patient.impl.PatientServiceEJB] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Create Patient[pk=28, id=PatientID[pk=28, id=P123, issuer=Site A&1.2.40.0.13.1.1.999.111.1111&ISO], name=COTTA^ANNA]
22:26:58,369 INFO  [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Create Study[pk=25, uid=1.3.12.2.1107.5.8.1.12345678.199508041416590859569, id=000001]
22:26:58,371 INFO  [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Create Series[pk=25, uid=1.3.12.2.1107.5.8.1.12345678.199508041416590860429, no=0, mod=CT]
22:26:58,373 INFO  [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Create Instance[pk=92, uid=1.3.12.2.1107.5.8.1.12345678.199508041416590861483, class=1.2.840.10008.5.1.4.1.1.2, no=1]
22:26:58,374 INFO  [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Create Location[pk=183, systemID=fs1, path=2023/04/17/5E9204E8/5E9C00D5/61ED4E7E, tsuid=1.2.840.10008.1.2, size=529498, status=OK, objectType=DICOM_FILE]
22:26:58,374 INFO  [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Create Location[pk=184, systemID=metadata, path=2023/04/17/5E9204E8/5E9C00D5/E8E833B4, tsuid=null, size=10396, status=OK, objectType=METADATA]
22:26:58,428 INFO  [org.dcm4chee.arc.store.impl.StoreServiceImpl] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Updated DB in 91 ms
22:26:58,432 INFO  [org.dcm4chee.arc.patient.impl.PatientServiceEJB] (EE-ManagedExecutorService-default-Thread-16) No duplicate record with equal Patient ID found Patient[pk=28, id=PatientID[pk=28, id=P123, issuer=Site A&1.2.40.0.13.1.1.999.111.1111&ISO], name=COTTA^ANNA]
22:26:58,434 INFO  [org.dcm4che3.net.Dimse] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3) << 1:C-STORE-RSP[pcid=5, status=0H
  cuid=1.2.840.10008.5.1.4.1.1.2 - CT Image Storage
  iuid=1.3.12.2.1107.5.8.1.12345678.199508041416590861483 - ?
  tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian]
22:26:58,436 INFO  [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3) >> A-RELEASE-RQ
22:26:58,436 INFO  [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3) << A-RELEASE-RP
22:26:58,487 INFO  [org.dcm4che3.net.Association] (EE-ManagedScheduledExecutorService-default-Thread-3) DCM4CHEE<-SUP_MISS_NEW(3): close Socket[addr=view-localhost/127.0.0.1,port=59353,localport=11112]

В UI архива