Sintaxe geral:
<lvalue>=<expression>
#<comment>
lvalues:
Etiqueta DICOM |
Esta tem a forma, “(gggg,eeee)”. Representa o atributo de destino. Depois da expressão ser avaliada, os resultados são atribuídos a este atributo. |
USUÁRIO(fieldName) |
Campo de banco de dados personalizado no formulário USUÁRIO(fieldName) no qual fieldName é o nome de campo definido no arquivo de configuração dcfields.conf do banco de dados. |
$(varName) |
Variável temporária no formulário $(varName) no qual varName é uma cadeia exclusiva usada para identificar a variável. |
Expressões: Podem ser um Valor ou uma Função.
Valores
(gggg,eeee) |
Devolve o valor de uma etiqueta DICOM. Se a etiqueta DICOM não existir, será devolvido NULO (). São necessários os parêntesis. |
Cadeia entre aspas
|
Esta tem a forma, “<string>”. Devolve a cadeia literal <string>. A cadeia poderá conter caracteres de escape, incluindo “\n”, “\\” e “\”. |
Cadeia sem aspas |
As cadeias sem aspas podem ser usadas quando contêm apenas caracteres alfanuméricos contíguos. |
USUÁRIO(fieldName) |
Campo de banco de dados personalizado no formulário USUÁRIO(fieldName) no qual fieldName é o nome de campo definido no arquivo de configuração dcfields.conf do banco de dados. |
$(varName) |
Variável temporária no formulário $(varName) no qual varName é uma cadeia exclusiva usada para identificar a variável. Valores temporários não inicializados devolvem NULO. |
(gggg,eeee),”d”,n |
(Desativado) Devolve o campo nth no valor da etiqueta DICOM (gggg,eeee) como separado pelo delimitador d. |
Funções
Funções básicas
<cadeia vazia> |
Essa é a cadeia vazia, “”. |
NULO() |
Exclui o valor de destino. |
Funções lógicas
and(a,b) |
Devolve "verdadeiro" se tanto o valor a como o b forem não NULOS. |
é igual(a,b) |
Devolve "verdadeiro" se os valores a e b forem iguais, NULO se não forem iguais. |
if(cond,a,b) |
Devolve a se o valor da condição não for NULO, b se for NULO. |
not(a) |
Devolve "verdadeiro" se a for NULO, NULO se a não for NULO. |
or(a,b[,c...]) |
Devolve o primeiro valor não NULO. |
Funções da cadeia
concat(a,b[,c…]) |
Concatena os valores a e b (e c, etc.) Os valores NULOS são tratados como uma cadeia vazia, “”. |
contains(a,b) |
Devolve a cadeia b se a cadeia b existir na cadeia a. Senão devolve NULO. |
indexof(a, p) |
Devolve a posição inicial do padrão p na cadeia a. A primeira posição na cadeia a é 0. Devolve -1 se p não for encontrado em a. Devolve NULO se p ou a for NULO. |
split(a,d,n) |
Devolve o campo nth em a usando d como delimitador de campo. |
strlen(a) |
Devolve o número de caracteres na cadeia a ou NULO se o valor da cadeia a for NULO. |
substr(a,from[,len]) |
Devolve os caracteres de tamanho em a começando na posição de. A primeira posição é ‘0’. Se de ultrapassar o final da cadeia, é devolvida a cadeia com valor NULO. Se o tamanho for omitido, a restante cadeia é devolvida. |
Funções de data
dicomAge(d1,d2) |
Devolve o valor d1 - d2 em anos civis, meses ou dias num formato compatível com DICOM: nnnA, nnnM ou nnnD. Se d1 ou d2 for um valor de data inválido ou d2 for anterior ao d1, é devolvido o valor NULO. |
Funções aritméticas
add(n1,n2[,n3…]) |
Devolve a soma dos números inteiros. |
between(n,min,max) |
Devolve verdadeiro se a cadeia de inteiros n for maior ou igual ao mínimo e menor do que o máximo. Senão devolve NULO. |
sub(n1,n2) |
Devolve a soma n1 - n2. |
Funções de codificação
codenumber(n) |
Devolve uma cadeia numérica codificada baseada em n. Tanto n como o resultado são cadeias numéricas ascii >= 0. O resultado contém o mesmo número de dígitos que n. |
codestring(s[,x]) |
Devolve uma cadeia codificada baseada na cadeia s. Os caracteres na cadeia x, se existentes, não deverão estar presentes no resultado. |
rnd(n[,seed]) |
Devolve uma cadeia de número aleatório baseada numa semente, se existente, entre 0 e n-1. |
Na avaliação de expressões, NULO não é o mesmo que a cadeia vazia, “”. Se um atributo DICOM não existir, será NULO. Se existir, mas contiver um valor de duração 0, é a cadeia vazia, “”.
Um exemplo de uma regra de coerção para inserir um prefixo, “PFX”, antes do Número de acesso (0008,0050). Se o atributo 0008,0050 existir, mesmo que contenha um valor de tamanho 0, insira "PFX" no início do valor existente e volte a atribuí-lo ao atributo original. Se o atributo original não existir devolve NULO(), o que impede que seja adicionado ao objeto.
(0008,0050)=if( (0008,0050) , concat(“PFX”,(0008,0050)) , NULL() )
Outro exemplo é coagir um nome do paciente, (0010,0010), definido como “LASTNAME,FIRSTNAME[,MI]” numa sintaxe compatível com DICOM, “LASTNAME^FIRSTNAME[^MI]”. Note que a quebra de linha é inserida apenas para facilitar a leitura. Para funcionar, deverá ser inserido numa linha única.
(0010,0010)=concat(split((0010,0010), ”,”, 1), “^”, split((0010,0010), ”,”, 2),
if(split((0010,0010), ”,”, 3), “^”, “”), split((0010,0010), ”,”, 3) )