Accession Number — это число, формируемое RIS для идентификации заказа на исследование. Иногда DICOM-объекты, сохраняемые
из модальностей в архив, могут не содержать DICOM-атрибут Accession Number (0008,0050).
В таких случаях настройте следующее принуждение для подстановки отсутствующего Accession Number с использованием
статического префикса и хеш-значения Study Instance UID (0020,000D).
Accession Number, принуждённый в наборе данных, присутствует только в базе данных. В DICOM-файлах, хранящихся в системе хранения, он не принуждается.
См. - Archive Coercions Basic Overview для общего понимания принуждений атрибутов архива. - Merge or Nullify Dataset Attributes для понимания этого типа принуждения.
Это практическое руководство описывает настройку, тестирование и проверку для : - New Archive Attribute Coercion
См. Important Notes.
Дополнительно см. Where to configure Archive Attribute Coercion rules

Создайте LDIF-файл для следующего принуждения
version: 1
dn: cn=coerce-c-store-rq - allModalities2vna - ensureAccNo - new,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
changetype: add
objectClass: dcmArchiveAttributeCoercion2
cn: coerce-c-store-rq - allModalities2vna - ensureAccNo - new
dcmDIMSE: C_STORE_RQ
dcmURI: merge-attrs:
dicomTransferRole: SCU
dcmProperty: SendingApplicationEntityTitle=ENSURE_ACC_NEW
dcmProperty: AccessionNumber!=.+
dcmRulePriority: 1
dcmMergeAttribute: AccessionNumber=ACC-{StudyInstanceUID,hash}
и импортируйте его в LDAP с помощью утилиты командной строки ldapmodify
ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f config.ldif
Отправьте тестовое исследование в архив с помощью инструмента storescu.
storescu -b ENSURE_ACC_NEW -s "AccessionNumber=" -c DCM4CHEE@localhost:11112 ~/work/testdata/DICOM/modality/CT/CT2
В журнале сервера архива $WILDFLY_HOME/standalone/log/server.log
07:52:42,278 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-1) Accept connection Socket[addr=/127.0.0.1,port=58587,localport=11112]
07:52:42,320 INFO [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-6) DCM4CHEE<-ENSURE_ACC_NEW(2) >> A-ASSOCIATE-RQ
07:52:42,321 INFO [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-6) DCM4CHEE<-ENSURE_ACC_NEW(2) << A-ASSOCIATE-AC
07:52:42,366 INFO [org.dcm4che3.net.Dimse] (EE-ManagedExecutorService-default-Thread-6) DCM4CHEE<-ENSURE_ACC_NEW(2) >> 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]
07:52:42,375 INFO [org.dcm4chee.arc.coerce.impl.MergeAttributesCoercionProcessor] (EE-ManagedExecutorService-default-Thread-6) Merge Attributes using ArchiveAttributeCoercion2[cn=coerce-c-store-rq - allModalities2vna - ensureAccNo - new, priority=1, DIMSE=C_STORE_RQ, role=SCU, cuids=[], conditions={AccessionNumber!=.+, SendingApplicationEntityTitle=ENSURE_ACC_NEW}, uri=merge-attrs:, description=null, onFailure=RETHROW, sufficient=false, attributeUpdatePolicy=MERGE, mergeAttributes=[AccessionNumber=ACC-{StudyInstanceUID,hash}], deviceCoercionParam=null, otherCoercionParams={}]
07:52:42,408 INFO [org.dcm4chee.arc.patient.impl.PatientServiceEJB] (EE-ManagedExecutorService-default-Thread-6) DCM4CHEE<-ENSURE_ACC_NEW(2): Create Patient[pk=114, id=PatientID[pk=114, id=SMS530102, issuer=null], name=COTTA^ANNA]
07:52:42,411 INFO [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-6) DCM4CHEE<-ENSURE_ACC_NEW(2): Create Study[pk=99, uid=1.3.12.2.1107.5.8.1.12345678.199508041416590859569, id=000001]
07:52:42,414 INFO [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-6) DCM4CHEE<-ENSURE_ACC_NEW(2): Create Series[pk=114, uid=1.3.12.2.1107.5.8.1.12345678.199508041416590860429, no=0, mod=CT]
07:52:42,416 INFO [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-6) DCM4CHEE<-ENSURE_ACC_NEW(2): Create Instance[pk=281, uid=1.3.12.2.1107.5.8.1.12345678.199508041416590861483, class=1.2.840.10008.5.1.4.1.1.2, no=1]
07:52:42,417 INFO [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-6) DCM4CHEE<-ENSURE_ACC_NEW(2): Create Location[pk=534, systemID=fs1-tar, path=2023/04/20/5E9204E8/5E9C00D5/C42DFB83, tsuid=1.2.840.10008.1.2, size=529502, status=OK, objectType=DICOM_FILE]
07:52:42,476 INFO [org.dcm4chee.arc.store.impl.StoreServiceImpl] (EE-ManagedExecutorService-default-Thread-6) DCM4CHEE<-ENSURE_ACC_NEW(2): Updated DB in 100 ms
07:52:42,482 INFO [org.dcm4chee.arc.patient.impl.PatientServiceEJB] (EE-ManagedExecutorService-default-Thread-6) No duplicate record with equal Patient ID found Patient[pk=114, id=PatientID[pk=114, id=SMS530102, issuer=null], name=COTTA^ANNA]
07:52:42,485 INFO [org.dcm4che3.net.Dimse] (EE-ManagedExecutorService-default-Thread-6) DCM4CHEE<-ENSURE_ACC_NEW(2) << 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]
07:52:42,489 INFO [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-6) DCM4CHEE<-ENSURE_ACC_NEW(2) >> A-RELEASE-RQ
07:52:42,489 INFO [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-6) DCM4CHEE<-ENSURE_ACC_NEW(2) << A-RELEASE-RP
07:52:42,540 INFO [org.dcm4che3.net.Association] (EE-ManagedScheduledExecutorService-default-Thread-3) DCM4CHEE<-ENSURE_ACC_NEW(2): close Socket[addr=view-localhost/127.0.0.1,port=58587,localport=11112]
В UI архива
