⚠️ Este é um site de tradução não oficial, sem relação com o DCMTK / OFFIS. Para informações oficiais, consulte a página original (https://support.dcmtk.org/docs/wlmscpfs.html).

wlmscpfs: SCP DICOM de gerenciamento de lista de trabalho básica (baseado em arquivos de dados)

SINOPSE

wlmscpfs [options] port

DESCRIÇÃO

O aplicativo wlmscpfs implementa um Service Class Provider (SCP) para o serviço de gerenciamento básico de lista de trabalho (Basic Worklist Management Service). O aplicativo escuta em uma porta TCP/IP especificada as solicitações de associação recebidas de um SCU de gerenciamento de lista de trabalho. Caso uma associação seja reconhecida e uma consulta de lista de trabalho seja recebida, o aplicativo wlmscpfs consulta arquivos específicos em um determinado diretório do sistema de arquivos (que pode ser indicado por meio das opções de programa correspondentes) em busca das informações de lista de trabalho correspondentes, e envia essas informações de volta ao SCU de gerenciamento de lista de trabalho que fez a chamada. Além de tratar consultas de gerenciamento de lista de trabalho, o aplicativo wlmscpfs também oferece suporte à Verification Service Class como SCP.

PARÂMETROS

port  tcp/ip port number to listen on

OPÇÕES

opções gerais

-h --help
exibe este texto de ajuda e sai
--version
exibe as informações de versão e sai
--arguments
exibe os argumentos de linha de comando expandidos
-q --quiet
modo silencioso, não exibe avisos nem erros
-v --verbose
modo detalhado, exibe os detalhes do processamento
-d --debug
modo de depuração, exibe informações de depuração
-ll --log-level [l]evel: string constant
(fatal, error, warn, info, debug, trace) usa o nível l para o logger
-lc --log-config [f]ilename: string
usa o arquivo de configuração f para o logger

opções de multiprocessamento

-s --single-process
modo de processo único
--fork
cria um processo filho via fork para cada associação (padrão)

opções de entrada

-dfp --data-files-path [p]ath: string (default: .)
caminho para os arquivos de dados de lista de trabalho. Tratamento dos arquivos de lista de trabalho:
-efr --enable-file-reject
habilita a rejeição de arquivos de lista de trabalho incompletos (padrão)
-dfr --disable-file-reject
desabilita a rejeição de arquivos de lista de trabalho incompletos

opções de processamento

-cs0 --return-no-char-set
não retorna nenhum conjunto de caracteres específico (padrão)
-cs1 --return-iso-ir-100
retorna o conjunto de caracteres específico ISO IR 100
-csk --keep-char-set
retorna o conjunto de caracteres indicado no arquivo. Outras opções de processamento:
-nse --no-sq-expansion
desabilita a expansão de sequências vazias nas mensagens de requisição C-FIND

opções de rede

-i4 --ipv4
usa somente IPv4 (padrão)
-i6 --ipv6
usa somente IPv6
-i0 --ip-auto
usa pilha dupla IPv6/IPv4. Sintaxes de transferência de rede preferidas:
+x= --prefer-uncompr
prefere o explicit VR com ordem de bytes local (padrão)
+xe --prefer-little
prefere a TS explicit VR little endian
+xb --prefer-big
prefere a TS explicit VR big endian
+xd --prefer-deflated
prefere a TS deflated explicit VR little endian
+xi --implicit
aceita somente a TS de VR implícita little endian. Controle de acesso de rede por host (tcp wrapper):
-ac --access-full
aceita conexões de qualquer host (padrão)
+ac --access-control
aplica as regras de controle de acesso por host. Representações de valor posteriores a 1993:
+u --enable-new-vr
habilita o suporte a novos VRs (UN/UT) (padrão)
-u --disable-new-vr
desabilita o suporte a novos VRs e converte para OB. Nível de compressão deflate (somente com --prefer-deflated):
+cl --compression-level [l]evel: integer (default: 6)
0=sem compressão, 1=mais rápido, 9=melhor compressão. Outras opções de rede:
-ta --acse-timeout [s]econds: integer (default: 30)
tempo limite para mensagens ACSE
-td --dimse-timeout [s]econds: integer (default: unlimited)
tempo limite para mensagens DIMSE
--max-associations [a]ssocs: integer (default: 50)
limita o número máximo de associações paralelas
--refuse
recusa a associação
--reject
rejeita a associação se não houver implementation class UID
--no-fail
não falha em caso de consulta inválida
--sleep-before [s]econds: integer
aguarda s segundos antes do find (padrão: 0)
--sleep-after [s]econds: integer
aguarda s segundos depois do find (padrão: 0)
--sleep-during [s]econds: integer
aguarda s segundos durante o find (padrão: 0)
-pdu --max-pdu [n]umber of bytes: integer (4096..131072)
define a pdu máxima recebida em n bytes (padrão: 16384)
-dhl --disable-host-lookup
desabilita a resolução de nome de host

opções de saída

-rfp --request-file-path [p]ath: string
caminho para armazenar os arquivos de requisição
-rff --request-file-format [f]ormat: string (default: #t.dump)
formato do nome dos arquivos de requisição

NOTAS

O impacto semântico das opções mencionadas acima é claro para a maioria delas. Contudo, algumas opções específicas são tão particulares que exigem descrições detalhadas, apresentadas a seguir.

As opções de conjunto de caracteres retornado destinam-se a situações em que o aplicativo wlmscpfs retornará valores de atributo que não são compostos por caracteres do repertório de caracteres padrão do DICOM. Nesses casos, por exemplo, a opção –return-iso-ir-100 pode ser usada para especificar que uma resposta a uma requisição C-FIND de gerenciamento de lista de trabalho de uma modalidade deve conter o atributo Specific Character Set do DICOM (0008,0005) com um valor correspondente, indicando o repertório de caracteres do qual foram extraídos os caracteres dos valores de atributo retornados (neste exemplo, o repertório ISO IR 100). Observe que o aplicativo wlmscpfs não garante que todos os valores retornados sejam realmente compostos por esse repertório de caracteres; o aplicativo pressupõe que esse seja o caso.

Em geral, o atributo Specific Character Set (0008,0005) só será incluído na resposta C-FIND se ela contiver algum atributo afetado pelo conjunto de caracteres, ou seja, com representações de valor PN, LO, LT, SH, ST ou UT.

Observe que uma requisição C-FIND tratada por este aplicativo pode conter o atributo Specific Character Set do DICOM (0008,0005), mas este aplicativo nunca usa o valor desse atributo para a correspondência. Além disso, a inclusão ou não do atributo Specific Character Set do DICOM (0008,0005) em uma resposta C-FIND retornada por este aplicativo é sempre determinada pela opção de conjunto de caracteres retornado indicada quando o aplicativo foi iniciado.

As opções –enable-file-reject e –disable-file-reject podem ser usadas para habilitar ou desabilitar um mecanismo de rejeição de arquivos que garante que somente arquivos de lista de trabalho completos sejam usados no processo de correspondência. Um arquivo de lista de trabalho é considerado completo se contiver todas as informações do tipo 1 necessárias que o SCP possa ter de retornar a um SCU em uma mensagem de resposta C-FIND. A Tabela K.6-1 do anexo K da parte 4 da norma DICOM relaciona todos os atributos do tipo 1 correspondentes (veja a coluna "Return Key Type").

Gravação de arquivos de requisição

Ao fornecer a opção –request-file-path, é possível gravar as requisições C-FIND recebidas em arquivos de texto. O valor da opção indica o diretório de destino onde esses arquivos serão armazenados. Todos os arquivos de requisição são armazenados no formato "dump" fornecido pela ferramenta dcmdump e são brutos, ou seja, são gravados exatamente como chegam ao wlmscpfs, sem qualquer processamento de tags aplicado pelo wlmscpfs.

A gravação de arquivos de requisição permite que os usuários preparem "interativamente" o banco de dados de lista de trabalho (no caso do wlmscpfs, os arquivos de lista de trabalho servidos a partir do diretório –data-file-path) monitorando o diretório de arquivos de requisição. Assim que um arquivo de requisição aparece, é necessário algum tempo para atualizar as entradas de lista de trabalho no banco de dados. Por esse motivo, faz sentido usar –request-file-path em combinação com a opção –sleep-before, que permite especificar uma determinada quantidade de segundos que o wlmscpfs deve aguardar antes de efetivamente começar a verificar o banco de dados de lista de trabalho. Observe que os arquivos de requisição gravados com –data-file-path não são excluídos automaticamente pelo wlmscpfs.

Se os arquivos de requisição estiverem habilitados, o wlmscpfs deve criar automaticamente nomes de arquivo dentro do diretório indicado. Por padrão, o formato é .dump, em que segue o formato YYYYMMDDhhmmssffffff, onde:

  • YYYY é o ano atual
  • MM é o mês atual
  • DD é o dia atual
  • hh é a hora atual (no formato de 24 horas)
  • mm é o minuto atual
  • ss é o segundo atual e
  • ffffff é a fração do segundo atual

Isso deve funcionar como padrão para a maioria dos aplicativos que desejam usar arquivos de requisição e garantir nomes de arquivo exclusivos. Caso se deseje alterar esse esquema de nomenclatura, é possível usar a opção –request-file-format. Ela permite especificar o padrão de nomenclatura de arquivos usado por –request-file-path.

Para maior flexibilidade, os seguintes espaços reservados podem ser usados no padrão fornecido para –request-file-format :

  • a: AE title chamador do SCU par

  • c: AE title chamado (AE title do aplicativo SCP de lista de trabalho)

  • i: ID do processo do aplicativo SCP de lista de trabalho que trata a requisição

  • p: ID do paciente, se presente; caso contrário, string vazia

  • t: timestamp no formato YYYYMMDDhhmmssffffff

O padrão (ou seja, o valor usado quando –request-file-format não é definido explicitamente) é #t.dump, resultando no formato de timestamp descrito acima.

Um exemplo de string de formato definida pelo usuário seria "request_#i_#a_#c.txt". O #i faz mais sentido quando o modo multiprocesso do wlmscpfs está habilitado por meio da opção –fork, a fim de garantir que requisições simultâneas não resultem no mesmo nome de arquivo para ambas.

Cabe observar que o espaço reservado #p usa o valor de Patient ID (0010,0020) da requisição tal como está, ou seja, se a string contiver caracteres não ASCII, o nome de arquivo calculado pelo wlmscpfs pode ficar corrompido e, assim, não poder ser gravado com sucesso, ou parecer corrompido depois de gravado. Além disso, um Patient ID vazio é usado como tal, ou seja, #p será substituído por uma string vazia.

Conformidade DICOM

O aplicativo wlmscpfs oferece suporte às seguintes SOP Classes como SCP:

VerificationSOPClass                  1.2.840.10008.1.1
FINDModalityWorklistInformationModel  1.2.840.10008.5.1.4.31

O aplicativo wlmscpfs aceita contextos de apresentação para todas as SOP Classes com suporte mencionadas acima, usando qualquer uma das seguintes sintaxes de transferência:

LittleEndianImplicitTransferSyntax    1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax    1.2.840.10008.1.2.1
BigEndianExplicitTransferSyntax       1.2.840.10008.1.2.2

O comportamento padrão do aplicativo wlmscpfs é preferir sintaxes de transferência com codificação explícita à sintaxe de transferência implícita padrão. Se o wlmscpfs estiver em execução em hardware big-endian, ele preferirá a sintaxe de transferência BigEndianExplicit à LittleEndianExplicit (e vice-versa). Esse comportamento pode ser alterado com as opções –prefer (veja acima).

Se compilado com suporte a zlib habilitado (veja a saída de –version) e se a opção –prefer-deflated for usada, a seguinte sintaxe de transferência também é aceita.

DeflatedExplicitVRLittleEndianTransferSyntax  1.2.840.10008.1.2.1.99

O aplicativo wlmscpfs não oferece suporte à negociação estendida.

Atualmente, o aplicativo wlmscpfs oferece suporte aos seguintes atributos como chaves de correspondência:

(0008,0020) StudyDate
(0008,0030) StudyTime
(0008,0050) AccessionNumber
(0008,0090) ReferringPhysicianName
(0010,0010) PatientName
(0010,0020) PatientID
(0010,0021) IssuerOfPatientID
(0010,0030) PatientBirthDate
(0010,0040) PatientSex
(0010,2297) Responsible Person
(0010,2298) Responsible Person Role
(0032,1032) RequestingPhysician
(0038,0010) AdmissionID
(0040,0100) ScheduledProcedureStepSequence
  (0008,0060) > Modality
  (0040,0001) > ScheduledStationAETitle
  (0040,0002) > ScheduledProcedureStepStartDate
  (0040,0003) > ScheduledProcedureStepStartTime
  (0040,0006) > ScheduledPerformingPhysicianName
(0040,1001) RequestedProcedureID
(0040,1003) RequestedProcedurePriority

Como chaves de retorno, o wlmscpfs oferece atualmente suporte aos seguintes atributos:

(0008,0020) StudyDate
(0008,0030) StudyTime
(0008,0050) AccessionNumber
(0008,0080) InstitutionName
(0008,0081) InstitutionAddress
(0008,1040) InstitutionalDepartmentName
(0008,0090) ReferringPhysicianName
(0008,1080) AdmittingDiagnosesDescription
(0008,1110) ReferencedStudySequence
  (0008,1150) > ReferencedSOPClassUID
  (0008,1155) > ReferencedSOPInstanceUID
(0008,1120) ReferencedPatientSequence
  (0008,1150) > ReferencedSOPClassUID
  (0008,1155) > ReferencedSOPInstanceUID
(0010,0010) PatientName
(0010,0020) PatientID
(0010,0021) IssuerOfPatientID
(0010,0030) PatientBirthDate
(0010,0040) PatientSex
(0010,1000) OtherPatientIDs (retired)
(0010,1001) OtherPatientNames
(0010,1020) PatientSize
(0010,1030) PatientWeight
(0010,1040) PatientAddress
(0010,1080) MilitaryRank
(0010,2000) MedicalAlerts
(0010,2110) ContrastAllergies
(0010,2160) EthnicGroup (retired)
(0010,21a0) SmokingStatus
(0010,21b0) AdditionalPatientHistory
(0010,21c0) PregnancyStatus
(0010,21d0) LastMenstrualDate
(0010,2297) ResponsiblePerson
(0010,2298) ResponsiblePersonRole
(0010,4000) PatientComments
(0020,000d) StudyInstanceUID
(0032,1032) RequestingPhysician
(0032,1033) RequestingService
(0032,1060) RequestedProcedureDescription
(0032,1064) RequestedProcedureCodeSequence
  (0008,0100) > CodeValue
  (0008,0102) > CodingSchemeDesignator
  (0008,0103) > CodingSchemeVersion
  (0008,0104) > CodeMeaning
(0038,0010) AdmissionID
(0038,0011) IssuerOfAdmissionID
(0038,0050) SpecialNeeds
(0038,0300) CurrentPatientLocation
(0038,0500) PatientState
(0040,0100) ScheduledProcedureStepSequence
  (0008,0060) > Modality
  (0032,1070) > RequestedContrastAgent
  (0040,0001) > ScheduledStationAETitle
  (0040,0002) > ScheduledProcedureStepStartDate
  (0040,0003) > ScheduledProcedureStepStartTime
  (0040,0004) > ScheduledProcedureStepEndDate
  (0040,0005) > ScheduledProcedureStepEndTime
  (0040,0006) > ScheduledPerformingPhysicianName
  (0040,0007) > ScheduledProcedureStepDescription
  (0040,0008) > ScheduledProtocolCodeSequence
    (0008,0100) > > CodeValue
    (0008,0102) > > CodingSchemeDesignator
    (0008,0103) > > CodingSchemeVersion
    (0008,0104) > > CodeMeaning
  (0040,0009) > ScheduledProcedureStepID
  (0040,0010) > ScheduledStationName
  (0040,0011) > ScheduledProcedureStepLocation
  (0040,0012) > PreMedication
  (0040,0020) > ScheduledProcedureStepStatus
  (0040,0400) > CommentsOnTheScheduledProcedureStep
(0040,1001) RequestedProcedureID
(0040,1002) ReasonForTheRequestedProcedure
(0040,1003) RequestedProcedurePriority
(0040,1004) PatientTransportArrangements
(0040,1005) RequestedProcedureLocation
(0040,1008) ConfidentialityCode
(0040,1009) ReportingPriority
(0040,1010) NamesOfIntendedRecipientsOfResults
(0040,1400) RequestedProcedureComments
(0040,2001) ReasonForTheImagingServiceRequest
(0040,2004) IssueDateOfImagingServiceRequest
(0040,2005) IssueTimeOfImagingServiceRequest
(0040,2008) OrderEnteredBy
(0040,2009) OrderEnterersLocation
(0040,2010) OrderCallbackPhoneNumber
(0040,2016) PlacerOrderNumberImagingServiceRequest
(0040,2017) FillerOrderNumberImagingServiceRequest
(0040,2400) ImagingServiceRequestComments
(0040,3001) ConfidentialityConstraintOnPatientDataDescription

O atributo (0008,0005) SpecificCharacterSet é um caso especial, e seu suporte pelo wlmscpfs é discutido na seção NOTAS acima.

Controle de acesso

Quando compilado em plataformas Unix com suporte a TCP wrapper, o controle de acesso baseado em host pode ser habilitado com a opção de linha de comando –access-control. Nesse caso, as regras de controle de acesso definidas nas tabelas de controle de acesso de host do sistema para o wlmscpfs são aplicadas. Os locais padrão das tabelas de controle de acesso de host são /etc/hosts.allow e /etc/hosts.deny. Mais detalhes são descritos em hosts_access(5).

REGISTRO DE LOG

O nível de detalhamento do log das diversas ferramentas de linha de comando e das bibliotecas subjacentes pode ser especificado pelo usuário. Por padrão, apenas erros e avisos são gravados no fluxo de erro padrão. Ao usar a opção –verbose, mensagens informativas, como detalhes do processamento, também são relatadas. A opção –debug pode ser usada para obter mais detalhes sobre a atividade interna, por exemplo, para fins de depuração. Outros níveis de log podem ser selecionados com a opção –log-level. No modo –quiet, apenas erros fatais são relatados. Nesses casos de erro muito graves, o aplicativo normalmente é encerrado. Para mais detalhes sobre os diferentes níveis de log, consulte a documentação do módulo "oflog".

Caso a saída do log deva ser gravada em arquivo (opcionalmente com rotação de arquivo de log), no syslog (Unix) ou no log de eventos (Windows), pode-se usar a opção –log-config. Esse arquivo de configuração também permite direcionar apenas determinadas mensagens para um fluxo de saída específico e filtrar certas mensagens com base no módulo ou aplicativo em que são geradas. Um arquivo de configuração de exemplo é fornecido em < etcdir>/logger.cfg.

LINHA DE COMANDO

Todas as ferramentas de linha de comando usam a seguinte notação para os parâmetros: colchetes delimitam valores opcionais (0-1), reticências no final indicam que múltiplos valores são permitidos (1-n), e a combinação dos dois significa de 0 a n valores.

As opções de linha de comando se distinguem dos parâmetros por um sinal '+' ou '-' à frente. Normalmente, a ordem e a posição das opções de linha de comando são arbitrárias (ou seja, podem aparecer em qualquer lugar). No entanto, se as opções forem mutuamente exclusivas, é usada a ocorrência mais à direita. Esse comportamento está em conformidade com as regras de avaliação padrão dos shells Unix comuns.

Além disso, um ou mais arquivos de comando podem ser especificados usando um sinal '@' como prefixo do nome do arquivo (por exemplo, @command.txt). Esse argumento de comando é substituído pelo conteúdo do arquivo de texto correspondente (múltiplos espaços em branco são tratados como um único separador, a menos que apareçam entre duas aspas) antes de qualquer avaliação posterior. Observe que um arquivo de comando não pode conter outro arquivo de comando. Essa abordagem simples, mas eficaz, permite agrupar combinações comuns de opções/parâmetros e evita linhas de comando longas e confusas (um exemplo é fornecido no arquivo < datadir>/dumppat.txt).

AMBIENTE

O utilitário wlmscpfs tentará carregar os dicionários de dados DICOM especificados na variável de ambiente DCMDICTPATH. Por padrão, ou seja, se a variável de ambiente DCMDICTPATH não estiver definida, o arquivo < datadir>/dicom.dic será carregado, a menos que o dicionário esteja embutido no aplicativo (padrão no Windows).

É preferível manter o comportamento padrão e usar a variável de ambiente DCMDICTPATH apenas quando dicionários de dados alternativos forem necessários. A variável de ambiente DCMDICTPATH tem o mesmo formato da variável PATH dos shells Unix, em que dois-pontos (":") separam as entradas. Em sistemas Windows, um ponto e vírgula (";") é usado como separador. O código do dicionário de dados tenta carregar cada arquivo especificado na variável de ambiente DCMDICTPATH. Ocorre um erro se nenhum dicionário de dados puder ser carregado.

Copyright (C) 1996-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.